החל מ-Android 15, גופנים של משתנים עוברים עיבוד
זמן ריצה יעיל יותר ורמת פירוט גבוהה יותר. בעקבות העדכון הזה, הספקים
להוסיף הגדרות גופנים חדשות של משתנים אל
font_fallback.xml
במקום fonts.xml
, כי fonts.xml
נמצא בתהליך הוצאה משימוש.
מידע נוסף זמין במאמר תמיכה בגופנים משתנים.
ב-Android מגרסה 11 ומטה, מתבצע עדכון של קובצי גופנים שהותקנו במכשיר ב-AOSP (
מחיצת /system/fonts
) או מחיצות הספק (ב-/product/fonts
או
/system/fonts
מחיצות) נדרש עדכון מערכת מה-OEM (יצרן הציוד המקורי). הזה
לדרישה הזו יש השפעה משמעותית על התאימות של סמלי האמוג'י. לחשבון
Android 12 אפשר להשתמש במערכת FontManager
שירות לניהול קובצי גופנים שהותקנו ולעדכון קובצי גופנים שהותקנו במכשיר
ללא עדכון מערכת.
ב-Android 12 יש שלוש אינטראקציות בתהליך;
FontManagerService
, Font Updater
וגם Application
.
FontManagerService
היא מערכת הניהול המרכזית בשרת המערכת.
ב-FontManagerService
נשמרים הגדרות הגופן העדכניות של המערכת לכל משתמש.
FontUpdater
הוא כלי לעדכון גופנים שאפשר להשתמש בו, והוא מהימן על ידי
בדיקת ההרשאות signature|privileged
. FontUpdater
מתקשר עם
FontManagerService
כדי לקבל, להתקין, להסיר או לעדכן את גופן המערכת הנוכחי
הגדרות. הFontUpdater
יכול להעביר תכנים חדשים של קובצי גופנים באמצעות בין תהליכים
ומנגנוני תקשורת (IPC). התוכן נשמר ב-FontManagerService
מיקום אחסון שקריא לכולם, כמו בקובצי /data/fonts
. הזה
האחסון נשמר. אפשר לכתוב אותה על ידי FontManagerService
רק, עד
מדיניות SELinux.
כשהכיתה Application
מופעלת, היא מעבירה את הגדרות הגופן של המערכת בתור
ארגומנטים של השיטה bindApplication
; לאחר מכן הוא מאתחל את הגדרות הגופן
לשימוש בתהליך האפליקציה.
תמיכה בגופנים של משתנים
החל מ-Android 15, הגדרות של גופנים משתנים
צוין ב-
font_fallback.xml
בפורמט הבא:
<family lang="und-Ethi" supportedAxes="wght,ital">
<font>NotoSansEthiopic-VF.ttf</font>
</family>
בפורמט הזה, גופן משתנה כולל את כל המאפיינים של גופן סטטי עם
מאפיין supportedAxes
נוסף. מאפיין supportedAxes
הוא
רשימה מופרדת בפסיקים של תגי צירים נתמכים. ב-
Android 15, רק את הצירים wght
ו-ital
יכולים להיות
שצוין.
אם לא צוין המאפיין supportedAxes
, הצומת font
יפעל
גופן סטטי של מופע יחיד של גופן משתנה שצוין ב-axis
לילדים.
אם מציינים את המאפיין supportedAxes
, המערכת יוצרת באופן דינמי
מופע font של ערך המשקל והסגנון הנתונים בזמן ריצה.
מפתחים יכולים להשתמש ב-android.graphics.fonts.SystemFonts#getAvailableFonts
Java API או ASystemFontIterator_open
NDK API כדי לקבל רשימה של קובצי גופנים שהותקנו על ידי המערכת. לקבלת מידע על
בממשקי API למפתחים שתומכים בעדכון הזה:
API משופר של OpenType Variable Font
ו-buildVariableFamily
.
התאמה אישית של הגופנים
חלק מיצרני ה-OEM מתקינים או מחליפים קובצי גופנים ב-AOSP כדי להציג את המותגים שלהם. מערכת Android 12 תומכת בפונקציונליות הזו, אבל מוסיפה דרישות כדי לעדכן את הגופן של האמוג'י במכשירים. יצרני ציוד מקורי שלא מבצעים שינויים או כדי לעדכן את קובצי הגופן של האמוג'י, אין צורך להשתמש בתכונה הזו.
Google מעדכנת את קובצי הגופנים, במיוחד את קובצי NotoColorEmoji
באמצעות GMS
חשוב לא לשנות או להסיר את הקובץ NotoColorEmoji.ttf
המחיצה /system
, ואין להסיר אותה ממנה
/frameworks/base/data/fonts/fonts.xml
שימו לב לשלוש הדרכים הבאות שבאמצעותן ניתן להתאים אישית את הגופנים:
- מחליפים את הקובץ
NotoColorEmoji.ttf
בגופן אמוג'י של ה-OEM (יצרן הציוד המקורי). - עליכם לשנות את הקובץ
NotoColorEmoji.ttf
בהתאם לצורכי השוק המקומי שלכם. - החלפה או שינוי של קובצי גופנים אחרים.
אם לא משנים את הגופן של האמוג'י ב-AOSP, אין צורך לעשות כלום. אם המיקום ברצונך להתאים אישית את הגופן של האמוג'י, צריך לפעול לפי ההוראות הבאות .
מחליפים את NotoColorEmoji.ttf בגופני אמוג'י ממותגי ה-OEM
כדי להחליף את הקובץ NotoColorEmoji.ttf
בקובץ גופנים עם מיתוג של ה-OEM (יצרן הציוד המקורי):
מציבים את גופן האמוג'י ממש לפני שרשרת החלופות של הגופנים:
- מציבים גופן משלכם, שנקרא
OEMCustomEmoji.ttf
, במחיצה/system
. שינוי של
/frameworks/base/data/fonts/fonts.xml
(וגם/frameworks/base/data/fonts/font-fallback.xml
אינץ' Android מגרסה 15 ואילך) כמו בקוד הבא:<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 לצורכי השוק המקומי
כך מתאימים את עצמנו לצורכי השוק המקומי:
- ליצור קובץ
NotoColorEmoji
משלכם בשם אחר. לדוגמה, נותנים לה את השםModified\_NotoColorEmoji.ttf
. - צריך להציב אותו לפני קובץ
NotoColorEmoji.ttf
המקורי.
לאחר ביצוע שלב 2, הגליף שהשתנה נתמך על ידי
Modified\NotoColorEmoji.ttf
מוצג במקום NotoColorEmoji.ttf
המקורי.
Google ממליצה על הדברים הבאים:
- יש בגופן הזה רק את הגליף הנדרש.
- צריך לתת גישה לגליפים שלא בוצעו בהם שינויים לקובץ
NotoColorEmoji.ttf
המקורי כדי המכשירים שלך יקבלו תיקוני עיצוב שיבוצעו בגרסאות עתידיות של אמוג'י.
הסרת גליפים: כדי להסיר גליפים מהקובץ NotoColorEmoji.ttf
, פועלים לפי
שלבים 1 ו-2, ומציינים glyph ID = 0
ב-cmap.
שימוש בדגל אזורי: אם הגליף המטורגט הוא דגל אזורי, יש לציין את
מזהה הגליף כקוד מדינה לא ידוע. (שימוש ב-country code = "ZZ"
).
יצירת גליף טופו: אפשר לציין באופן מפורש מזהה גליף של טופו אם רוצים
כדי להשתמש בבינה מלאכותית. כשמציינים את הערך glyphID = 0
, האפליקציה הקשורה מפרשת את הערך הזה כ-
"הגליף לא זמין". לדוגמה, אם משתמשים במאפיין הזה,
האפליקציה Paint#hasGlyph
מחזירה false
.
החלפה או שינוי של קובצי גופנים אחרים
כדי להחליף או לשנות גופנים אחרים, ההתאמה האישית דומה לזו של לשנות את קובצי ה-TTF בהתאם לצרכים של השוק המקומי. קובצי גופנים לא ידועים שהם שמתעדכנים ב-AOSP בזמן הריצה, המערכת מתעלמת מהם והם לא מתעדכנים. Google מתעלמת גופנים לא ידועים במכשיר. הנתון כולל קובצי גופנים ששונו מ- את הגופנים המקוריים ב-AOSP.
למרות שעדכוני הגופנים מתבצעים על ידי Google ב-GMS Core, עדכון הגופן הכללי המנגנון פתוח לכל יצרני ה-OEM. יצרני ציוד מקורי יכולים להתקין עדכוני גופנים נוספים באמצעות השלבים שמפורטים בקטע דרישות מוקדמות לפגישה, חתימה על קובצי גופן, וביצוע עדכונים לגופנים בסביבת זמן ריצה.
עמידה בדרישות מוקדמות
מנגנון עדכון הגופנים משתמש בתכונת הליבה של Linux fs-verity
. מוודאים ש-
המכשיר שלך תואם ל-fs-verity
וכולל את האישור במכשיר.
חתימה על קובצי גופנים
מאחר שקובצי גופנים הם משאבים מסוכנים, צריך לאמת אותם באמצעות מפתחות מהימנים.
בודקים בקפידה את כל קובצי הגופנים שאמורים לעדכן, וחותמים באמצעות
מפתח פרטי. החתימה חייבת להיות תואמת ל-fs-verity
.
ביצוע עדכונים לגבי הגופנים בסביבת זמן הריצה
אפליקציית המערכת FontManager
מבצעת עדכוני גופנים. האפליקציה FontManager
מספק את הסטטוס העדכני ביותר של גופן המערכת המותקן ואפשרות לעדכן את הגופן.
קבצים עם חתימות. כדי להתקשר לעדכון אפליקציות, צריך להוסיף את
הרשאת UPDATE_FONT signature|privileged
ל
רשימת היתרים של אפליקציות,
וגם במניפסט.
עליך לספק את ההרשאה UPDATE_FONT signature|privileged
למעדכן של האפליקציה
מותאמת אישית.