Począwszy od Androida 15 czcionki zmienne są renderowane na poziomie
jest bardziej wydajny i szczegółowy. Po tej aktualizacji dostawcy muszą
dodaj nowe konfiguracje czcionek zmiennych do
font_fallback.xml
zamiast fonts.xml
, ponieważ fonts.xml
jest wycofywany.
Więcej informacji znajdziesz w sekcji Obsługa czcionek zmiennych.
Na Androidzie 11 i starszych wersjach aktualizacja plików czcionek zainstalowanych na urządzeniu w AOSP (w
/system/fonts
) lub partycji dostawcy (w tagach /product/fonts
lub
/system/fonts
partycji) wymaga aktualizacji systemu od producenta OEM. Ten
ma istotny wpływ na zgodność emotikonów. W
Android 12, którego można używać z systemem FontManager
usługa zarządzania zainstalowanymi plikami czcionek i aktualizowanie plików czcionek zainstalowanych na urządzeniu
bez aktualizacji systemu.
Android 12 obejmuje 3 interakcje z procesami.
FontManagerService
, Font Updater
i Application
.
FontManagerService
to główny system zarządzania na serwerze systemu.
FontManagerService
przechowuje najnowsze ustawienia czcionek systemu dla poszczególnych użytkowników.
FontUpdater
to możliwy do podłączenia aktualizator czcionek cieszący się zaufaniem
signature|privileged
sprawdzanie uprawnień. FontUpdater
komunikuje się z
FontManagerService
, aby pobrać, zainstalować, usunąć lub zaktualizować bieżącą czcionkę systemową
ustawieniach. Interfejs FontUpdater
może przekazywać nową zawartość pliku czcionek między procesami
i komunikacji (IPC). FontManagerService
zapisuje treści w
w łatwo dostępnej na całym świecie lokalizacji przechowywania, takiej jak pliki /data/fonts
. Ten
a pamięć masowa jest chroniona. Może ją zapisać tylko FontManagerService
, przez
zasadą SELinux.
Po uruchomieniu klasa Application
przekazuje systemowe ustawienia czcionki jako
argumenty metody bindApplication
; a następnie inicjuje ustawienia czcionki
do wykorzystania w procesie aplikacji.
Obsługa czcionek zmiennych
Począwszy od Androida 15, zmienne konfiguracje czcionek będą
określona w
font_fallback.xml
w tym formacie:
<family lang="und-Ethi" supportedAxes="wght,ital">
<font>NotoSansEthiopic-VF.ttf</font>
</family>
W tym formacie czcionka zmienna ma wszystkie atrybuty czcionki statycznej
dodatkowy atrybut supportedAxes
. Atrybut supportedAxes
to
rozdzielana przecinkami lista obsługiwanych tagów osi. Na
Androida 15, można badać tylko osie wght
i ital
określone dane.
Jeśli atrybut supportedAxes
nie jest określony, węzeł font
działa jako
statyczna czcionka pojedynczego wystąpienia czcionki zmiennej określonej za pomocą parametru axis
dzieci.
Jeśli określisz atrybut supportedAxes
, system dynamicznie utworzy
dla danej wartości wagi i stylu w czasie działania.
Deweloperzy mogą używać android.graphics.fonts.SystemFonts#getAvailableFonts
Java API lub ASystemFontIterator_open
NDK API pobierający listę plików czcionek zainstalowanych w systemie. Informacje na temat:
interfejsów API dla programistów obsługujących tę aktualizację, zobacz
Ulepszony interfejs OpenType Variable Font API.
i buildVariableFamily
.
Dostosuj czcionki
Niektórzy producenci OEM instalują lub wymieniają pliki czcionek w AOSP, aby pokazać swoje marki. Android 12 obsługuje tę funkcję, ale wymagania dotyczące aktualizowania czcionek emotikonów na urządzeniach. OEM, którzy nie modyfikują ani nie ulepszają aktualizacji plików czcionek emotikonów nie trzeba korzystać z tej funkcji.
Google aktualizuje pliki czcionek, zwłaszcza pliki NotoColorEmoji
, używając GMS.
Core, więc nie modyfikuj ani nie usuwaj pliku NotoColorEmoji.ttf
z
/system
partycji i nie usuwaj jej z
/frameworks/base/data/fonts/fonts.xml
Pamiętaj, że czcionki możesz dostosowywać na trzy sposoby:
- Zastąp plik
NotoColorEmoji.ttf
czcionką emotikonu marki OEM. - Zmodyfikuj plik
NotoColorEmoji.ttf
pod kątem potrzeb rynku lokalnego. - zastępować lub modyfikować inne pliki czcionek;
Jeśli nie modyfikujesz czcionek emotikonów w AOSP, nie musisz nic robić. Jeśli Jeśli chcesz dostosować czcionki emotikonów, wykonaj te czynności sekcji.
Zastąp NotoColorEmoji.ttf czcionkami emotikonów marki OEM
Aby zastąpić plik NotoColorEmoji.ttf
plikiem z czcionkami emotikonów marki OEM:
umieść czcionkę z emotikonami tuż przed łańcuchem zastępczym czcionki:
- Umieść własną czcionkę o nazwie
OEMCustomEmoji.ttf
w partycji/system
. Zmień
/frameworks/base/data/fonts/fonts.xml
(i/frameworks/base/data/fonts/font-fallback.xml
in w Androidzie 15 i nowszych), jak w tym kodzie:<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>
Zmodyfikuj plik NotoColorEmoji.ttf pod kątem potrzeb rynku lokalnego
Aby dostosować ustawienia do potrzeb lokalnego rynku:
- Utwórz własny plik
NotoColorEmoji
o innej nazwie. np. nadaj mu nazwęModified\_NotoColorEmoji.ttf
. - Umieść go przed oryginalnym plikiem
NotoColorEmoji.ttf
.
Po wykonaniu kroku 2 zmodyfikowany glif obsługiwany przez
Programy: Modified\NotoColorEmoji.ttf
zamiast NotoColorEmoji.ttf
.
Google zaleca:
- Używaj tylko niezbędnych glifów w tej czcionce.
- Przypisz niezmodyfikowane glify do oryginalnego pliku
NotoColorEmoji.ttf
, tak aby urządzenia otrzymują wszelkie poprawki projektowe wprowadzone w przyszłych wersjach emotikonów.
Usuwanie glifów: aby usunąć glify z pliku NotoColorEmoji.ttf
, wykonaj
kroki 1 i 2 oraz wpisz glyph ID = 0
w kalendarzu.
Użyj flagi regionalnej: jeśli docelowy glif jest flagą regionu, określ
glifu jako nieznanego kodu kraju. (Użyj country code = "ZZ"
).
Utwórz glif tofu: jeśli chcesz, możesz wyraźnie określić identyfikator glifu tofu.
aby użyć jednej z nich. Jeśli podasz wartość glyphID = 0
, powiązana aplikacja zinterpretuje to jako
„glif jest niedostępny”. Na przykład, jeśli używasz tego atrybutu, atrybut
Aplikacja Paint#hasGlyph
zwraca: false
.
Zastępowanie lub modyfikowanie innych plików czcionek
Aby zastąpić lub zmodyfikować inne czcionki, dostosowanie jest podobne do na dostosowanie plików TTF do potrzeb lokalnego rynku. Nieznane pliki czcionek, które aktualizowane w AOSP w czasie działania są ignorowane i nie są aktualizowane. Google ignoruje nieznanych czcionek na urządzeniu. Dotyczy to też plików czcionek zmodyfikowanych z oryginalne czcionki w AOSP.
Choć czcionki są aktualizowane przez Google w GMS Core, ogólna aktualizacja jest otwarty dla wszystkich producentów OEM. OEM może instalować dodatkowe aktualizatory czcionek za pomocą czynności opisane w sekcjach Wymagania wstępne dotyczące Meet, Podpisywanie plików czcionek, i Aktualizacja czcionek w czasie działania.
Spełnij wymagania wstępne
Mechanizm aktualizacji czcionek korzysta z funkcji jądra systemu Linux fs-verity
. Sprawdź, czy
Twoje urządzenie jest zgodne z fs-verity
i dołącz ten certyfikat do urządzenia.
Pliki czcionek podpisu
Pliki czcionek to ryzykowne zasoby, dlatego trzeba je zweryfikować za pomocą zaufanych kluczy.
Uważnie przejrzyj wszystkie pliki czcionek, które chcesz zaktualizować, i podpisz się
klucz prywatny. Podpis musi być zgodny z fs-verity
.
Aktualizuj czcionkę w czasie działania
Aplikacja systemowa FontManager
aktualizuje czcionki. Aplikacja FontManager
udostępnia najnowszy stan czcionki systemowej i możliwość aktualizacji czcionki
pliki z podpisami. Aby wywołać aplikacje aktualizacyjne, dodaj
UPDATE_FONT signature|privileged
dla
lista dozwolonych aplikacji,
i do pliku manifestu.
Przyznaj aktualizatorowi aplikacji uprawnienia UPDATE_FONT signature|privileged
.