Ab Android 15 werden variable Schriftarten
mit besserer Effizienz und Detailgenauigkeit. Mit dieser Aktualisierung müssen Anbieter
neue Konfigurationen für Variablen
Schriftarten hinzufügen,
font_fallback.xml
statt fonts.xml
, da fonts.xml
eingestellt wird.
Weitere Informationen finden Sie unter Unterstützung für variable Schriftarten.
In Android 11 und niedriger wird das Aktualisieren der auf dem Gerät installierten Schriftartdateien in AOSP (in der
/system/fonts
) oder die Anbieterpartitionen (in der /product/fonts
- oder
/system/fonts
Partitionen) erfordert ein Systemupdate des OEMs. Dieses
hat großen Einfluss auf die Kompatibilität von Emojis. In
Mit Android 12 können Sie das FontManager
-System verwenden
Dienst zum Verwalten installierter Schriftartdateien und zum Aktualisieren von auf dem Gerät installierten Schriftartdateien
ohne Systemupdate.
Android 12 umfasst drei Prozessinteraktionen:
FontManagerService
, Font Updater
und Application
.
FontManagerService
ist das zentrale Verwaltungssystem auf dem Systemserver.
FontManagerService
speichert die neuesten nutzerspezifischen Systemschrifteinstellungen.
FontUpdater
ist ein austauschbarer Schriftart-Updater, dem ein
Berechtigungsprüfung für signature|privileged
. FontUpdater
kommuniziert mit dem
FontManagerService
, um die aktuelle Systemschriftart abzurufen, zu installieren, zu entfernen oder zu aktualisieren
Einstellungen. Das FontUpdater
kann neue Inhalte der Schriftartdatei durch Interprozess übergeben.
Kommunikationsmechanismen (IPC). Der FontManagerService
speichert den Inhalt unter
an einem weltweit lesbaren Speicherort, z. B. in den /data/fonts
-Dateien. Dieses
dass der Speicher geschützt ist. Sie kann nur vom FontManagerService
geschrieben werden, indem
SELinux-Richtlinie.
Wenn die Application
-Klasse gestartet wird, übergibt sie die Systemschrifteinstellungen als
der bindApplication
-Methode; werden die Schriftarteinstellungen
App-Prozess genutzt werden kann.
Unterstützung für variable Schriftarten
Ab Android 15 werden Konfigurationen für variable Schriftarten
angegeben in
font_fallback.xml
im folgenden Format:
<family lang="und-Ethi" supportedAxes="wght,ital">
<font>NotoSansEthiopic-VF.ttf</font>
</family>
In diesem Format verfügt eine variable Schriftart über alle Attribute einer statischen Schriftart mit
Zusätzliches supportedAxes
-Attribut. Ein supportedAxes
-Attribut ist ein
durch Kommas getrennte Liste der unterstützten Achsen-Tags. Mit
Unter Android 15 können nur die Achsen wght
und ital
angegeben ist.
Wenn das Attribut supportedAxes
nicht angegeben ist, fungiert der Knoten font
als
Statische Schriftart einer einzelnen Instanz einer variablen Schriftart, die mit axis
angegeben wird
Kinder.
Wenn das Attribut supportedAxes
angegeben ist, erstellt das System dynamisch eine
Schriftartinstanz für den angegebenen Wert für Stärke und Stil zur Laufzeit.
Entwickler können die android.graphics.fonts.SystemFonts#getAvailableFonts
verwenden
Java API oder ASystemFontIterator_open
NDK API verwenden, um eine Liste der vom System installierten Schriftartdateien abzurufen. Weitere Informationen zu
Entwickler-APIs, die dieses Update unterstützen, finden Sie unter
Verbesserte OpenType Variable Font API
und buildVariableFamily
.
Schriftarten anpassen
Einige OEMs installieren oder ersetzen Schriftartdateien in AOSP, um ihre Marken zu präsentieren. Android 12 unterstützt diese Funktion, Anforderungen, damit die Emoji-Schriftarten auf den Geräten immer aktuell sind. OEMs, die keine Änderungen oder Emoji-Schriftartdateien aktualisieren, müssen Sie diese Funktion nicht verwenden.
Google aktualisiert die Schriftartdateien, insbesondere die NotoColorEmoji
-Dateien über GMS
Hauptinhalte. Ändern oder entfernen Sie die Datei NotoColorEmoji.ttf
daher nicht aus dem
/system
-Partition an und entfernen Sie sie nicht aus
/frameworks/base/data/fonts/fonts.xml
.
Es gibt drei Möglichkeiten, wie Sie Ihre Schriftarten anpassen können:
- Ersetzen Sie die Datei
NotoColorEmoji.ttf
durch eine Emoji-Schriftart des OEMs. - Passen Sie die Datei
NotoColorEmoji.ttf
an Ihre lokalen Marktanforderungen an. - Ersetzen oder ändern Sie andere Schriftartdateien.
Wenn Sie keine Emoji-Schriftarten in AOSP ändern, müssen Sie nichts unternehmen. Wenn Emoji-Schriftarten anpassen möchten, folgen Sie der Anleitung unten .
Ersetzen Sie „NotoColorEmoji.ttf“ durch Emoji-Schriftarten des OEMs.
So ersetzen Sie die NotoColorEmoji.ttf
-Datei durch die Emoji-Schriftartdatei Ihres OEMs:
setzen Sie die Emoji-Schriftart direkt vor die Schriftart-Fallback-Kette:
- Fügen Sie Ihre eigene Schriftart mit dem Namen
OEMCustomEmoji.ttf
in die Partition/system
ein. /frameworks/base/data/fonts/fonts.xml
ändern (und/frameworks/base/data/fonts/font-fallback.xml
Zoll Android 15 und höher), wie im folgenden Code:<family lang="ko"> <font weight="400" style="normal" index="1">NotoSansCJK-Regular.ttc</font> </family> <!-- ADD FOLLOWING LINE --> <family lang="und-Zsye"> <font weight="400" style="normal">OEMCustomEmoji.ttf</font> </family> <!-- END OF MODIFICATION --> <family lang="und-Zsye"> <font weight="400" style="normal">NotoColorEmoji.ttf</font> </family> <family lang="und-Zsym"> <font weight="400" style="normal">NotoSansSymbols-Regular-Subsetted2.ttf</font> </family>
NotoColorEmoji.ttf für lokale Märkte anpassen
Führen Sie die folgenden Schritte aus, um sie an Ihre lokalen Märkte anzupassen:
- Erstellen Sie eine eigene
NotoColorEmoji
-Datei mit einem anderen Namen. zum Beispiel und nennen Sie sieModified\_NotoColorEmoji.ttf
. - Platzieren Sie es vor der ursprünglichen
NotoColorEmoji.ttf
-Datei.
Nachdem Sie Schritt 2 ausgeführt haben, wird das geänderte Symbol
Modified\NotoColorEmoji.ttf
wird anstelle des ursprünglichen NotoColorEmoji.ttf
-Elements angezeigt.
Google empfiehlt Folgendes:
- Verwenden Sie nur die erforderliche Glyphe in dieser Schriftart.
- Delegieren Sie unveränderte Glyphen an die ursprüngliche
NotoColorEmoji.ttf
-Datei, sodass erhalten deine Geräte alle Designkorrekturen, die in zukünftigen Emoji-Versionen vorgenommen werden.
Bildzeichen entfernen:Wenn Sie Bildzeichen aus der Datei NotoColorEmoji.ttf
entfernen möchten, folgen Sie
Schritt 1 und 2 und geben Sie glyph ID = 0
in Ihrer cmap an.
Flag mit „regional“ verwenden:Wenn das Zielsymbol ein regionales Flag ist, geben Sie das Flag „Regional“ an.
Glyphen-ID als unbekannter Ländercode angezeigt. (country code = "ZZ"
verwenden.)
Tofu-Glyphe erstellen:Sie können bei Bedarf explizit eine Tofu-Glyphen-ID angeben.
um eine zu verwenden. Wenn du glyphID = 0
angibst, interpretiert die zugehörige App dies als
„Glyphe ist nicht verfügbar“. Wenn Sie beispielsweise dieses Attribut verwenden,
Die App „Paint#hasGlyph
“ gibt false
zurück.
Andere Schriftartdateien ersetzen oder ändern
Um andere Schriftarten zu ersetzen oder zu ändern, erfolgt die Anpassung ähnlich wie bei die TTF-Dateien an die lokalen Marktanforderungen angepasst. Unbekannte Schriftartdateien, die während der Laufzeit im AOSP aktualisiert werden, werden ignoriert und nicht aktualisiert. Google ignoriert unbekannte Schriftarten auf Ihrem Gerät. Dazu gehören auch Schriftartdateien, Originalschriftarten in AOSP.
Obwohl die Schriftart in GMS Core von Google aktualisiert wird, führt die allgemeine für alle OEMs zur Verfügung. OEMs können zusätzliche Schriftart-Updater installieren, indem sie die Schritte unter Voraussetzungen für Videokonferenzen, Schriftartdateien signieren und Schriftarten für die Laufzeit aktualisieren.
Voraussetzungen für Meet
Der Mechanismus zur Aktualisierung von Schriftarten verwendet die Linux-Kernelfunktion fs-verity
. Prüfen Sie, ob
Ihr Gerät ist fs-verity
-konform und das Zertifikat muss mit Ihrem Gerät verknüpft sein.
Schriftartdateien signieren
Da Schriftartdateien riskante Ressourcen sind, müssen sie mit vertrauenswürdigen Schlüsseln verifiziert werden.
Überprüfen Sie sorgfältig alle Schriftartdateien, die aktualisiert werden sollen, und unterschreiben Sie mit Ihrem
privaten Schlüssel enthält. Die Signatur muss mitfs-verity
kompatibel sein.
Schriftart für Laufzeit aktualisieren
Die FontManager
-System-App aktualisiert die Schriftarten. Die FontManager
App
bietet den aktuellen Status der installierten Systemschrift und kann die Schriftart aktualisieren
Dateien mit Signaturen. Um Update-Apps aufzurufen, füge den
UPDATE_FONT signature|privileged
Berechtigung für Ihr
Zulassungsliste für Apps,
und an dein Manifest.
Dem Updater deiner App die Berechtigung „UPDATE_FONT signature|privileged
“ erteilen
.