[JAVA] Android 11 unterstützt Reiwa standardmäßig

Die Android-Version wird hochgehen. Android 11 steht kurz vor der Veröffentlichung. Es scheint, dass die japanische Originalausgabe "Reiwa" endlich von der Standard-API auf Android 11 unterstützt wird.

Fazit

Ich werde zuerst die Schlussfolgerung ziehen.

[Leise] Codename oder API-Ebene

Der Codename für den Namen der Süßigkeit ist übrigens aus "Q" verschwunden.

KitKat, Lutscher, Marshmallow, Nougat, Oreo, Pie. Gelegentlich mit einer Mischung aus eingetragenen Marken. Die Android-Kinder waren begeistert von den Süßigkeiten, die mit "Q" begannen, aber Google sagte: "Ich habe aufgehört, Süßigkeiten zu benennen."

Android 10 ist "Q". Die 11, die bald veröffentlicht wird, ist "R".

Unterstützt "Reiwa" mit "R" auf Android ... Auf keinen Fall! Ist das "R" das R von "Reiwa"? !! Was?

Abgesehen von dieser Versionsnummer 10 oder 11 und dem Codenamen ist die für Entwickler wichtige Nummer "API-Ebene. Element? hl = ja) ". Android 8.0 ist Oreo und hat eine API-Stufe von 26. Wenn es um Android 8.1 geht, ist es auch Oreo, aber die API-Stufe ist 27. Es ist kompliziert!

Und wie lautet die API-Level-Nummer, die "R" zugewiesen ist ...? Ich habe es gegen Ende dieses Artikels geschrieben, also bleibt dran. (Sumimasen)

IBMs ICU-Bibliothek

http://site.icu-project.org/home

Es ist eine Abkürzung für "International Components for Unicode". Auf jeden Fall werden verschiedene nützliche APIs aufgezeichnet. Quelloffene Software.

Japanische Kalenderklasse auf der Intensivstation

Die Klasse com.ibm.icu.util.JapaneseCalendar entspricht dem japanischen Yuan. Von der ersten Originalausgabe "Daiga" bis heute. Ich habe nicht überprüft, wie man mit der Nord- und Süddynastie umgeht.

Die Seltsamkeit von 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 Jahr MM Monat dd Tag", dfs);
        dateFormat.setCalendar(jpCalendar);

        //"Honnouji no Hen" 2. Juni 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);
    }
}

landmark_honnouji_fire.png

Ausführungsergebnis


02. Juni, 10. Tensho

Es ist unerträglich für Okawa-Drama-Fans und erfahrene Frauen. Kirin kommt. War es die ursprüngliche Ausgabe, die "Heaven is right" schrieb? Oh, die Turbulenzen von Ojin. Reform von Tenpo. Anseis Gefängnis. Sie können durch die Zeiten in Ihrem Gehirn laufen, indem Sie nur an das ursprüngliche Problem denken.

Diese Intensivstation ist kompatibel mit "Reiwa" aus Version 64.2, die am 17. April 2019 veröffentlicht wurde.

Android Standard API

In der Android-Standard-API wurde die Intensivstation von API-Level 24 (Android 7.0 Nougat) importiert. Das Paket hat sich geändert, nur weil es importiert wurde. Die oben genannte Klasse "JapaneseCalendar" lautet beispielsweise android.icu.util.JapaneseCalendar.

Und. schließlich. Auf der API-Ebene von Android 11 (R)

python


public static final int REIWA

Wird hinzugefügt werden! Regentag int enum Muster! !! !! Nein! !! !! Ich weiß es nicht, weil die IBM ICU in erster Linie ein int enum Muster ist! !! !!

Beispiel App

Ich habe so eine App gemacht.

Screenshot_1585201324.png

"Kenbu no Shinsei" ist eine neue Politik, die Kaiser Daigo am 17. Juli 1333 nach dem Sieg über das Kamakura-Shogunat begann, aber an diesem Tag ist die ursprüngliche Ausgabe immer noch "Motohiro", nicht wahr? Ich denke, ich werde die nächste Zwischenprüfung für das 2. Semester ablegen.

nigaoe_godaigo_tennou.png

Screenshot_1585200766.png

Von Heisei nach Reiwa.

Screenshot_1585200774.png

Die Entwicklungsumgebung ist wie folgt.

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:

Gradle-Einstellungen

Muss auf API-Ebene von Android 11 (R) erstellt werden. Nehmen Sie in der Gradle-Einstellungsdatei Folgendes vor (teilweise weggelassen).

build.gradle


android {
    compileSdkVersion 'android-R'
    buildToolsVersion "29.0.2"

    defaultConfig {
        applicationId "com.example.gengou"
        minSdkVersion 24
    }

    compileOptions {
        sourceCompatibility = 1.8
        targetCompatibility = 1.8
    }
}

Zum Zeitpunkt dieses Schreibens sind der Android 11 (R) API-Ebene keine Nummern zugewiesen. Es scheint, dass es immer noch eine Vorschau-Version ist. Es wird geschätzt, dass es wahrscheinlich "30" sein wird, wenn die offizielle Version veröffentlicht wird.

minSdkVersion muss mindestens 24 sein. Wie oben erwähnt, wurde die Intensivstation ab API-Ebene 24 in die Android-Standard-API integriert.

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 Jahr MM Monat dd Tag", dfs);
            dateFormat.setCalendar(jpCalendar);
            String s = dateFormat.format(new GregorianCalendar(y, m - 1, d).getTime());
            gengo.setText(s);
        });
    }
}

Unterstützt die Abstimmung mit der IBM ICU anstelle der Android-Standard-API

Obwohl die Android-Standard-API Reiwa unterstützt! Anstatt es zu benutzen, reagiert die Intensivstation von IBM auf das Dekret, etwas ist überwältigend! Sie mögen das denken, aber ich würde so etwas aus den folgenden Gründen tun.

So wird es gemacht.

Gradle-Einstellungen

build.gradle


dependencies {
    implementation 'com.ibm.icu:icu4j:64.2'
}

Fügen Sie es als abhängige Bibliothek hinzu und es ist SyncNow. Geben Sie "64.2" oder höher an, das die Abstimmung unterstützt.

Programm

Die Anweisung import sieht folgendermaßen aus, um Namenskonflikte zu vermeiden.

Achten Sie auf das Paket


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;

Nur "Locale" ist ein stabiles "java.util" -Paket. Damit können auch Android 6, 5 und 4 die Abstimmung unterstützen.

[Bonus] Offensichtlich.

Seien Sie versichert, dass die Intensivstation nicht die ursprüngliche Ausgabe von "Kobun" hat.

Screenshot_1585202068.png

das ist alles.

Recommended Posts

Android 11 unterstützt Reiwa standardmäßig
Wie man eine Ansicht auf Android "aushöhlt"
Beispiel für die Anzeige von (Head-up-) Benachrichtigungen auf Android
So erkennen Sie Mikrofonkonflikte unter Android
Was tun, wenn TextToSpeech unter Android 11 nicht funktioniert?
Stand April 2018 So installieren Sie Java 8 auf einem Mac
[Android Studio] Ich möchte eine Maven-Bibliothek unter Android verwenden
Ich möchte die Protokollausgabe unter Android vereinfachen