La version Android augmentera. Android 11 est sur le point de sortir. Il semble que le numéro original japonais "Reiwa" soit enfin pris en charge par l'API standard sur Android 11.
Je vais d'abord énoncer la conclusion.
--Sur Android 11 (R), il semble que le numéro original japonais "Reiwa" soit enfin pris en charge par l'API standard. --Depuis le niveau d'API 24, l'API standard Android a déjà intégré ICU. ――Mais les niveaux d'API entre 24 et 29 ne prennent pas en charge "Rewa". Ce n'est que "Heisei".
À propos, le nom de code du nom du bonbon a disparu de "Q".
KitKat, sucette, guimauve, nougat, oreo, tarte. Parfois, avec un mélange de marques déposées. Les enfants Android étaient enthousiasmés par ce que seraient les bonbons qui commençaient par "Q", mais Google a déclaré: "J'ai arrêté de nommer les bonbons."
Android 10 est "Q". Le 11 qui sortira bientôt est "R".
Prend en charge "Reiwa" avec "R" sur Android ... Pas question! Est-ce que "R" est le R de "Reiwa"? !! Quoi?
Et à part ce numéro de version 10 ou 11, et le nom de code, le numéro important pour le développeur est "[niveau API](https://developer.android.com/guide/topics/manifest/uses-sdk-" élément? hl = ja) ". Android 8.0 est Oreo et a un niveau d'API de 26. Cependant, en ce qui concerne Android 8.1, c'est aussi Oreo, mais le niveau d'API est de 27. C'est compliqué!
Et quel est le numéro de niveau API attribué à "R" ...? Je l'ai écrit vers la fin de cet article, alors restez à l'écoute. (Sumimasen)
http://site.icu-project.org/home
C'est une abréviation pour «International Components for Unicode». Quoi qu'il en soit, diverses API utiles sont enregistrées. Logiciels open source.
La classe com.ibm.icu.util.JapaneseCalendar
correspond au yuan japonais.
Du premier numéro original "Daiga" à nos jours. Je n'ai pas vérifié le maniaque de la façon de gérer les dynasties du Nord et du Sud.
L'étrangeté de Honnoji
import java.util.Locale;
import com.ibm.icu.text.DateFormat;
import com.ibm.icu.text.DateFormatSymbols;
import com.ibm.icu.text.SimpleDateFormat;
import com.ibm.icu.util.GregorianCalendar;
import com.ibm.icu.util.JapaneseCalendar;
public class Honnoujinohen {
public static void main(String[] args) {
JapaneseCalendar jpCalendar = new JapaneseCalendar();
DateFormatSymbols dfs = new DateFormatSymbols(jpCalendar, Locale.JAPANESE);
DateFormat dateFormat = new SimpleDateFormat("Gyy année MM mois jj jour", dfs);
dateFormat.setCalendar(jpCalendar);
//"Honnouji no Hen" 2 juin 1582
int year = 1582;
int month = 6;
int day = 2;
String s = dateFormat.format(new GregorianCalendar(year, month - 1, day).getTime());
System.out.println(s);
}
}
Résultat d'exécution
02, 10 juin Tensho
C'est insupportable pour les fans de théâtre d'Okawa et les femmes expérimentées. Kirin arrive. Était-ce le numéro original qui écrivait "Le paradis a raison"? Oh, la turbulence d'Ojin. Réforme de Tenpo. La prison d'Ansei. Vous pouvez parcourir les temps dans votre cerveau simplement en pensant au problème d'origine.
Cette ICU est compatible avec "Reiwa" à partir de la version 64.2 publiée le 17 avril 2019.
Dans l'API standard Android, ICU a été importé à partir du niveau d'API 24 (Android 7.0 Nougat).
Le package a changé simplement parce qu'il a été importé. Par exemple, la classe JapaneseCalendar
ci-dessus est ʻandroid.icu.util.JapaneseCalendar`.
Et. enfin. Au niveau API d'Android 11 (R),
python
public static final int REIWA
Sera ajouté! Modèle d'énumération de jour de pluie! !! !! Non! !! !! Je ne sais pas, car l'IBM ICU est un modèle d'énumération int en premier lieu! !! !!
J'ai créé une application comme celle-ci.
"Kenbu no Shinsei" est une nouvelle politique que l'empereur Daigo a lancée le 17 juillet 1333 après avoir vaincu le shogunat de Kamakura, mais ce jour-là, le problème original est toujours "Motohiro", n'est-ce pas? Je pense que je vais passer le prochain examen de mi-session du 2e semestre.
De Heisei à Reiwa.
L'environnement de développement est le suivant.
Android Studio 3.6.1 Build #AI-192.7142.36.36.6241897, built on February 27, 2020 Runtime version: 1.8.0_212-release-1586-b04 amd64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o Windows 10 10.0 GC: ParNew, ConcurrentMarkSweep Memory: 1237M Cores: 8 Registry: ide.new.welcome.screen.force=true Non-Bundled Plugins:
Doit être créé au niveau de l'API d'Android 11 (R). Effectuez les opérations suivantes dans le fichier de paramètres Gradle (partiellement omis).
build.gradle
android {
compileSdkVersion 'android-R'
buildToolsVersion "29.0.2"
defaultConfig {
applicationId "com.example.gengou"
minSdkVersion 24
}
compileOptions {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}
}
Au moment d'écrire ces lignes, aucun numéro n'a été attribué au niveau d'API Android 11 (R). Il semble que ce soit toujours une version préliminaire. On estime qu'il sera probablement «30» lorsque la version officielle sera publiée.
«minSdkVersion» doit être au moins «24». Parce que, comme mentionné ci-dessus, ICU a été intégré dans l'API standard Android à partir du niveau d'API 24.
Activity
MainActivity.java
package com.example.gengou;
import android.icu.text.DateFormat;
import android.icu.text.DateFormatSymbols;
import android.icu.text.SimpleDateFormat;
import android.icu.util.GregorianCalendar;
import android.icu.util.JapaneseCalendar;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.Locale;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText year = findViewById(R.id.year);
EditText month = findViewById(R.id.month);
EditText day = findViewById(R.id.day);
TextView gengo = findViewById(R.id.gengou);
findViewById(R.id.button).setOnClickListener(v -> {
int y = Integer.parseInt(year.getText().toString());
int m = Integer.parseInt(month.getText().toString());
int d = Integer.parseInt(day.getText().toString());
JapaneseCalendar jpCalendar = new JapaneseCalendar();
DateFormatSymbols dfs = new DateFormatSymbols(jpCalendar, Locale.JAPANESE);
DateFormat dateFormat = new SimpleDateFormat("Gyy année MM mois jj jour", dfs);
dateFormat.setCalendar(jpCalendar);
String s = dateFormat.format(new GregorianCalendar(y, m - 1, d).getTime());
gengo.setText(s);
});
}
}
Même si l'API standard Android prend en charge Reiwa! Au lieu de l'utiliser, l'ICU d'IBM répond au décret, quelque chose est bouleversant! Vous pensez peut-être cela, mais j'aimerais faire une telle chose pour les raisons suivantes.
minSdkVersion
doit être au moins 24 dans les paramètres Gradle, sinon le paquet ʻandroid.icu` ne peut pas être utilisé avant Reiwa Unun.
――Mais je veux que mon application soit compatible avec les versions Android 6, 5 et 4!Alors c'est comme ça que ça se fait.
build.gradle
dependencies {
implementation 'com.ibm.icu:icu4j:64.2'
}
Ajoutez-le en tant que bibliothèque dépendante et c'est SyncNow. Spécifiez «64.2» ou supérieur qui prend en charge la réconciliation.
L'instruction ʻimport` ressemble à ceci pour éviter les conflits de nom.
Faites attention au colis
import com.ibm.icu.text.DateFormat;
import com.ibm.icu.text.DateFormatSymbols;
import com.ibm.icu.text.SimpleDateFormat;
import com.ibm.icu.util.GregorianCalendar;
import com.ibm.icu.util.JapaneseCalendar;
import java.util.Locale;
Seul Locale
est un package java.util` stable.
Avec cela, même Android 6, 5 et 4 peut prendre en charge la réconciliation.
Soyez assuré que l'ICU n'a pas le numéro original de "Kobun".
c'est tout.
Recommended Posts