Android 新增自定義的.ttf字型檔檔案到系統
由於專案需要,需要將第三方提供的.ttf字型檔檔案編譯至系統原始碼中,在百度上找了好久,都沒有找到想要的,最後還是Google解決了問題,這裡作下記錄。
其實Reference 中介紹的方法,已經非常簡單明瞭,無需贅述,但這裡還是將自己的實踐記錄一下,順便備註一下需要注意的地方,方便自己以後查閱學習。
Step1:
Copy custom font .ttf into frameworks/base/data/fonts
很簡單,就是copy待新增的 Xxx.ttf 檔案到 ../LINUX/android/frameworks/base/data/fonts 目錄下
Step2:
Modify framworks/base/data/fonts/Android.mk ,Add your custom font into list of ‘font_src_files’
修改同目錄下的Android.mk檔案,將Xxx.ttf檔案新增到‘font_src_files ’,具體如下:
font_src_files := \
Roboto-Regular.ttf \
….
AndroidClock_Solid.ttf \
Xxx.ttf \
這裡要注意的是,‘font_src_files’在Android.mk檔案中有多處定義,要注意比對,不要找錯位置,一般在上面那段程式碼上面會有一段如下的註釋:
# Build the rest of font files as prebuilt.
# $(1): The source file name in LOCAL_PATH.
# It also serves as the module name and the dest file name.
相信如果看明白了這段註釋,也就該大概知道新增在這裡的原因了吧。
Step3:
Modify frameworks/base/data/fonts/fonts.mk ,Add your custom font into list of PRODUCT_PACKAGES
修改同目錄下的fonts.mk檔案,在PRODUCT_PACKAGES末尾新增Xxx.ttf檔案,如下:
PRODUCT_PACKAGES := \
DroidSansFallback.ttf \
…
AndroidClock_Solid.ttf \
Xxx.ttf \
Step4:
Rebuild 整個工程
注意這裡最好是全編,我在作的時候,單編沒有成功生效,但是在全編之後成功生效。
Step5:
Check 是否成功
Rebuild 之後,如果編譯成功,在out/target/product/msm8610/system/fonts 會有Xxx.ttf檔案,反之則可能並未成功。
注意:/product 下的/msm8610 這個目錄跟平臺有關,不同的平臺會是不同的目錄,例如有可能是
out/target/product/generic/system/fonts 等。
致此,就將新增自定義.ttf字型檔檔案到系統的過程走完了。要注意的是,這些步驟僅僅只是將.ttf檔案編譯進了系統,至於怎麼使用,那就是另外一回事了。