از 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
اشاره میکند که شامل خانوادههای فونت است و فایلهای make تمام بستههای فونت را فراخوانی میکند. به عنوان مثال: 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>
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و 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```"]]