اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release
بدلاً من aosp-main
لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
إضافة خطوط مخصّصة
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يمكنك الآن استخدام تراكب الموارد في وقت التشغيل (RRO) لتغيير الخطوط. من خلال إضافة خطوط
مخصّصة لإنشاء حزمة خطوط، يمكنك استخدام الخطوط في المظاهر واستخدام حِزم RRO لتطبيق التصاميم المخصّصة.
أكمِل المهام التالية:
يتم توفير نموذج لبنية الملفات ونماذج للملفات في ملف
custom-fonts.zip.
نزِّل هذا الملف ثم استخرِجه على الجهاز لاستخدامك الشخصي.
إنشاء حزمة خطوط
لإنشاء حِزمة خطوط:
- أضِف جميع ملفات
ttf
الخط إلى حزمة الخط في القسم
vendor
. مثلاً:
vendor/[oem]/fonts/[oem]-sans/
- أنشئ ملف
Android.mk
لحزمة الخط. مثلاً:
vendor/[oem]/fonts/[oem]-[fontname]/Android.mk
- تأكَّد من أنّه سيتم تثبيت الوحدة في قسم
product
في المجلد
etc
. لإجراء ذلك، تأكَّد من أنّ الوحدة تتضمّن العلامات التالية:
LOCAL_MODULE_CLASS := ETC
LOCAL_PRODUCT_MODULE := true
LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/fonts
يوضّح نموذج الرمز البرمجي المقدَّم أعلاه تعريفًا كاملاً لمكوّن حزمة الخط.
- أنشئ ملفًا باسم
fonts.mk
لحزمة الخطوط، ثم أضِف ملفات الخطوط
ttf
إلى PRODUCT_PACKAGES
. مثلاً:
vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk
مثلاً:
PRODUCT_PACKAGES := \
[font name].ttf \
إنشاء حزمة تراكب الجهاز
- أنشئ وحدة باسم
fonts_customization.xml
لإضافتها إلى الإصدار.
تشير هذه الوحدة إلى ملف fonts_customization.xml
الذي يحتوي على ملفّات
عائلات الخطوط وتستدعي ملفات الإنشاء لجميع حِزم الخطوط. مثلاً:
vendor/[oem]/[device]_overlay/fonts/Android.mk
- أنشئ مجموعات الخطوط:
vendor/[oem]/[device]_overlay/fonts/fonts_customization.xml
يجب أن يكون المستوى الجذر للملف علامة fonts-modification
. أضِف
عائلات الخطوط لكل حزمة خطوط ضمن هذا العنصر. بالإضافة إلى ذلك، أضِف
customizationType="new-named-family"
إلى كل مجموعة خطوط، وتأكَّد
من أنّ كل مجموعة تحتوي على سمة name
. ويُستخدَم هذا الاسم لاحقًا للوصول إلى مجموعة الخطوط. يجب إضافة هذا الملف إلى وحدة fonts_customizations.xml
التي تم تحديدها سابقًا في Android.mk
.
يحتوي العيّنة المقدَّمة أعلاه على ملف fonts_customization.xml
صالح.
- أنشئ
fonts.mk
. مثلاً:
vendor/[oem]/[device]_overlay/fonts/fonts.mk
- أضِف
fonts_customization.xml
تحت علامة PRODUCT_PACKAGES
.
- اتصل بكل حزمة من حِزم الخطوط التي تم إنشاؤها سابقًا.
$(call inherit-product-if-exists, vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk)
- أضِف وحدة الخط إلى الإصدار ضمن
PRODUCT_PACKAGES
، ثم أعِد الإنشاء.
سيتم تثبيت الخطوط على النظام.
- تأكَّد من أنّ ملفات خطوط
ttf
موجودة في المجلد
/product/fonts
على الجهاز.
- تأكَّد من أنّ
fonts_customization.xml
في /product/etc/
على
الجهاز.
استخدام مجموعة خطوط النظام الجديدة
لاستخدام مجموعة خطوط النظام الجديدة، اتّبِع الخطوات التالية:
<style name="customstyle">
<item name="android:fontFamily">customfontfamily</item>
</style>
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-08-10 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-08-10 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Add custom fonts\n\nYou can now use runtime resource overlays (RROs) to change fonts. By adding custom\nfonts to make a font package, you can use fonts in themes and use RROs to apply the\ncustomizations.\n\nComplete these tasks:\n\n- [Make a font package](/docs/automotive/hmi/car_ui/fonts#make)\n- [Create a device overlay package](/docs/automotive/hmi/car_ui/fonts#create)\n- [Use the added system fonts family](/docs/automotive/hmi/car_ui/fonts#use)\n\nA sample file structure and sample files are provided in\n[custom-fonts.zip](/static/docs/automotive/hmi/car_ui/custom-fonts.zip).\nDownload and then extract this file locally for your own use.\n\nMake a font package\n-------------------\n\nTo make a font package:\n\n1. Add all the font `ttf` files to the font package in the `vendor` partition. For example:\n\n `vendor/[oem]/fonts/[oem]-sans/`\n2. Create the `Android.mk` file for the font package. For example:\n\n `vendor/[oem]/fonts/[oem]-[fontname]/Android.mk`\n3. Make sure the module will be installed in the `product` partition in the `etc` folder. To do so, confirm the module has the following flags: \n\n ```makefile\n LOCAL_MODULE_CLASS := ETC\n LOCAL_PRODUCT_MODULE := true\n LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/fonts\n ```\n\n The sample code provided above illustrates a complete definition of a font package module.\n4. Create a file named `fonts.mk` for the font package and then add the font `ttf` files to `PRODUCT_PACKAGES`. For example:\n\n `vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk`\n\n For example: \n\n ```objective-c\n PRODUCT_PACKAGES := \\\n [font name].ttf \\\n ```\n\nCreate a device overlay package\n-------------------------------\n\n1. Make a module called `fonts_customization.xml` to be added to the build. This module points to the `fonts_customization.xml` file that contains the font families and calls the make files of all the font packages. For example:\n\n `vendor/[oem]/[device]_overlay/fonts/Android.mk`\n2. Create the font families: `vendor/[oem]/[device]_overlay/fonts/fonts_customization.xml`\n\n The root level of the file must be a `fonts-modification` tag. Add\n font families for each of the font packages under this element. In addition, add\n `customizationType=\"new-named-family\"` to every font family, and make\n sure each has a `name` attribute. This name is used later to access the\n font family. This file must be added to the `fonts_customizations.xml`\n module defined previously in `Android.mk`.\n\n The sample provided above contains a valid `fonts_customization.xml` file.\n3. Create `fonts.mk`. For example:\n\n `vendor/[oem]/[device]_overlay/fonts/fonts.mk`\n4. Add `fonts_customization.xml` under the `PRODUCT_PACKAGES` flag.\n5. Call into each of the previously created font packages.\n `$(call inherit-product-if-exists, vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk)`\n\n6. Add the font module to the build under `PRODUCT_PACKAGES` and then rebuild. The fonts will be installed on the system.\n7. Verify that the `ttf` fonts files are in the `/product/fonts` folder on the device.\n8. Verify that `fonts_customization.xml` is in `/product/etc/` on the device.\n\nUse the new system fonts family\n-------------------------------\n\nTo use the new system fonts family: \n\n```text\n\u003cstyle name=\"customstyle\"\u003e\n \u003citem name=\"android:fontFamily\"\u003ecustomfontfamily\u003c/item\u003e\n\u003c/style\u003e\n```"]]