Android 15'ten itibaren değişken yazı tipleri şu seviyede oluşturulur:
daha yüksek verimlilik ve ayrıntı düzeyiyle çalışma zamanı. Bu güncellemeyle birlikte tedarikçi firmaların
yeni değişken yazı tipi yapılandırmaları
font_fallback.xml
yerine fonts.xml
; çünkü fonts.xml
kullanımdan kaldırılıyor.
Daha fazla bilgi için Değişken yazı tipleri için destek başlıklı makaleye bakın.
Android 11 ve önceki sürümlerde, cihaza yüklenmiş yazı tipi dosyalarının AOSP'de güncellenmesi (
/system/fonts
bölümü) veya tedarikçi firma bölümlerini (/product/fonts
veya
/system/fonts
bölümleri) için OEM'den sistem güncellemesi yapılması gerekir. Bu
gereksiniminin emoji uyumluluğu üzerinde önemli bir etkisi vardır. İçinde
Android 12'de FontManager
sistemini kullanabilirsiniz
yüklü yazı tipi dosyalarını yönetme ve cihazda yüklü yazı tipi dosyalarını güncelleme hizmeti
sistem güncellemesi gerekmez.
Android 12'de üç süreç etkileşimi bulunur:
FontManagerService
, Font Updater
ve Application
.
FontManagerService
, sistem sunucusundaki merkezi yönetim sistemidir.
FontManagerService
, kullanıcı başına en son sistem yazı tipi ayarlarını depolar.
FontUpdater
, bir
signature|privileged
izin kontrolü. FontUpdater
,
Mevcut sistem yazı tipini almak, yüklemek, kaldırmak veya güncellemek için FontManagerService
Ayarlar'da devre dışı bırakabilirsiniz. FontUpdater
, yeni yazı tipi dosyası içeriklerini çeşitli işlemler arasında iletebilir.
iletişim (IPC) mekanizmaları ile başlar. FontManagerService
içerikleri şuraya kaydeder:
herkesin okuyabileceği bir depolama konumu (ör. /data/fonts
dosyalarında) Bu
korunuyor. Yalnızca FontManagerService
tarafından,
SELinux politikası.
Application
sınıfı başlatıldığında, sistem yazı tipi ayarlarını
bindApplication
yönteminin bağımsız değişkenleri; yazı tipi ayarlarını ilk kullanıma hazırlar.
tarafından kullanılmak üzere tasarlanmıştır.
Değişken yazı tipleri desteği
Android 15'ten itibaren, değişken yazı tipi yapılandırmaları
belirtilen
font_fallback.xml
şu biçimi kullanarak:
<family lang="und-Ethi" supportedAxes="wght,ital">
<font>NotoSansEthiopic-VF.ttf</font>
</family>
Bu biçimde bir değişken yazı tipi,
ek bir supportedAxes
özelliği. supportedAxes
özelliği,
desteklenen eksen etiketlerinin virgülle ayrılmış listesi. Entegre
Android 15'te, yalnızca wght
ve ital
eksenleri kullanılabilir
belirtiliyor.
supportedAxes
özelliği belirtilmezse font
düğümü
axis
ile belirtilen değişken yazı tipinin tek bir örneğinin statik yazı tipi
supportedAxes
özelliği belirtilirse sistem,
çalışma zamanında belirtilen ağırlık ve stil değeri için yazı tipi örneği.
Geliştiriciler, android.graphics.fonts.SystemFonts#getAvailableFonts
hizmetini kullanabilir.
Java API veya ASystemFontIterator_open
NDK API'yi kullanarak sistem tarafından yüklenen yazı tipi dosyalarının listesini alın. Daha fazla bilgi için
bu güncellemeyi destekleyen geliştirici API'leri için bkz.
İyileştirilmiş OpenType Değişken Yazı Tipi API'si
ve buildVariableFamily
.
Yazı tiplerini özelleştir
Bazı OEM'ler, markalarını göstermek için AOSP'ye yazı tipi dosyalarını yükler veya değiştirir. Android 12 bu işlevi destekler ancak gereklilikler arasındadır. veya emoji yazı tipi dosyalarının bu özelliği kullanması gerekmez.
Google, yazı tipi dosyalarını, özellikle de NotoColorEmoji
dosyalarını GMS aracılığıyla günceller.
Çekirdek bu nedenle, NotoColorEmoji.ttf
dosyasını
/system
bölümünü kaldırın ve şuradan kaldırmayın:
/frameworks/base/data/fonts/fonts.xml
.
Yazı tiplerini özelleştirebileceğiniz üç yöntemi göz önünde bulundurun:
NotoColorEmoji.ttf
dosyasını, OEM markalı bir emoji yazı tipiyle değiştirin.NotoColorEmoji.ttf
dosyasını yerel pazar ihtiyaçlarınıza göre değiştirin.- Diğer yazı tipi dosyalarını değiştirin veya düzenleyin.
AOSP'de emoji yazı tiplerini değiştirmiyorsanız herhangi bir işlem yapmanız gerekmez. Eğer emoji yazı tiplerini özelleştirmek istiyorsanız aşağıdaki bölümlerini kontrol edin.
NotoColorEmoji.ttf'yi OEM markalı emoji yazı tipleriyle değiştirme
NotoColorEmoji.ttf
dosyasını, OEM markalı emoji yazı tipleri dosyanızla değiştirmek için:
emoji yazı tipini, yazı tipi yedek zincirinin hemen önüne yerleştirin:
/system
bölümüneOEMCustomEmoji.ttf
adlı kendi yazı tipinizi yerleştirin./frameworks/base/data/fonts/fonts.xml
(ve/frameworks/base/data/fonts/font-fallback.xml
inç Android 15 ve sonraki sürümler) aşağıdaki koddaki gibidir:<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'yi yerel pazar ihtiyaçlarına göre değiştirin
Yerel pazar ihtiyaçlarınıza göre özelleştirmek için aşağıdaki adımları izleyin:
- Farklı bir adla kendi
NotoColorEmoji
dosyanızı oluşturun; örneğin,Modified\_NotoColorEmoji.ttf
olarak adlandıralım. - Dosyayı, orijinal
NotoColorEmoji.ttf
dosyasının öncesine yerleştirin.
2. adımı gerçekleştirdikten sonra, değiştirilmiş glif
Orijinal NotoColorEmoji.ttf
yerine Modified\NotoColorEmoji.ttf
gösteriliyor.
Google aşağıdakileri önerir:
- Bu yazı tipinde yalnızca gerekli karakterler bulunmalıdır.
- Değiştirilmemiş glifleri orijinal
NotoColorEmoji.ttf
dosyasına dağıtarak cihazınız gelecekteki emoji sürümlerinde yapılacak tasarım düzeltmelerini alır.
Glifleri kaldır: NotoColorEmoji.ttf
dosyasındaki glifleri kaldırmak için aşağıdaki adımları uygulayın:
ve charitanızda glyph ID = 0
değerini belirtin.
Bölgesel bayrak kullan: Hedef glif bölgesel bir bayraksa
bilinmeyen bir ülke kodu olarak glif kimliği. (country code = "ZZ"
kullanın.)
Tofu glifi yapma: İsterseniz doğrudan bir tofu glif kimliği belirtebilirsiniz.
ne kadar kolay olduğunu göstereceğim. glyphID = 0
değerini belirttiğinizde, ilgili uygulama bunu
"glif kullanılamıyor". Örneğin, bu özelliği kullandığınızda
Paint#hasGlyph
uygulaması false
döndürüyor.
Diğer yazı tipi dosyalarını değiştirme veya düzenleme
Diğer yazı tiplerini değiştirmek veya değiştirmek için yapılan özelleştirme, TTF dosyalarını yerel pazar ihtiyaçları için değiştirme. Aşağıdakilerin bilinmeyen yazı tipi dosyaları: çalışma zamanında AOSP'de güncellenenler yoksayılır ve güncellenmez. Google yoksayar bilinmeyen yazı tiplerini etkinleştirin. Bu, AOSP'deki orijinal yazı tipleri.
Yazı tipi güncellemeleri Google tarafından GMS Core'da yapılmış olsa da genel yazı tipi güncellemesi tüm OEM'lere açıktır. OEM'ler aşağıdaki bağlantıyı kullanarak ek yazı tipi güncelleyicileri yükleyebilir: Meet ön koşulları, Yazı tipi dosyalarını imzalama bölümündeki adımlar Çalışma zamanında yazı tipi güncellemeleri yapma başlıklı makaleleri inceleyin.
Ön koşulları karşılayın
Yazı tipi güncelleme mekanizması, fs-verity
Linux çekirdek özelliğini kullanır. Şunları doğrulayın:
Cihazınız fs-verity
ile uyumlu ve sertifikayı cihazınıza ekleyin.
Yazı tipi dosyalarını imzalayın
Yazı tipi dosyaları riskli kaynaklar olduğundan güvenilir anahtarlarla doğrulanmaları gerekir.
Güncellenecek tüm yazı tipi dosyalarını dikkatlice inceleyin ve
gizli anahtardır. İmzafs-verity
uyumlu olmalıdır.
Çalışma zamanı yazı tipi güncellemeleri yapın
Yazı tipi güncellemeleri, FontManager
sistem uygulaması tarafından yapılır. FontManager
uygulaması
en son yüklenen sistemin yazı tipi durumunu ve yazı tipini güncelleme özelliğini sağlar
dosyalar. Güncelleme uygulamalarını aramak için
UPDATE_FONT signature|privileged
izni
uygulama izin verilenler listesi,
manifest dosyanıza ekleyin.
Uygulamanızın güncelleyicisine UPDATE_FONT signature|privileged
iznini verin
işlevini kullanın.