이제 런타임 리소스 오버레이(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>