2025년 3월 27일부터 AOSP를 빌드하고 기여하려면 aosp-main
대신 android-latest-release
를 사용하는 것이 좋습니다. 자세한 내용은 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
속성이 있는지 확인합니다. 이 이름은 나중에 글꼴 모음에 액세스하는 데 사용됩니다. 이 파일을 앞서 Android.mk
에 정의한 fonts_customizations.xml
모듈에 추가해야 합니다.
위에 제공된 샘플에는 유효한 fonts_customization.xml
파일이 포함되어 있습니다.
fonts.mk
를 만듭니다. 예를 들면 다음과 같습니다.
vendor/[oem]/[device]_overlay/fonts/fonts.mk
PRODUCT_PACKAGES
플래그 아래에 fonts_customization.xml
을 추가합니다.
- 이전에 생성한 각 글꼴 패키지를 호출합니다.
$(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 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-08-10(UTC)
[[["이해하기 쉬움","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(UTC)"],[],[],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```"]]