一、修改編譯配置文件
目的:讓PRODUCT_LOCALES := 后面有我們需要添加的語言。
一般原生安卓代碼是修改這兩個(gè)文件
Android/build/target/product/languages_full.mk
Android/build/target/product/languages_small.mk
二、添加系統(tǒng)資源文件
上面添加好了但是還發(fā)現(xiàn)Resources.getSystem().getAssets().getLocales()沒有我們添加的語言,這時(shí)候需要檢查一下在Android/frameworks/base/core/res/res/目錄添加values-xxx相應(yīng)的資源
三、添加字庫
Step1:
Copy custom font .ttf into frameworks/base/data/fonts
Step2:
Modify framworks/base/data/fonts/Android.mk ,Add your custom font into list of ‘font_src_files’
Step3:
Modify frameworks/base/data/fonts/fonts.mk ,Add your custom font into list of PRODUCT_PACKAGES
完成上面三步之后在文件系統(tǒng)下的/system/fonts/就有添加的字庫了,也可以通過mm命令然后在out/下檢查。
四、字庫資源載入
Android4.0+ 和之前版本方式不一樣
Modify frameworks/base/data/fonts/fallback_fonts.xml,Add your custom font like below :
<family>
<fileset>
<file>Himalaya.ttf</file>
</fileset>
</family>
五、可能遇到的問題
1、在setting里面沒有語言選項(xiàng)。
- languages_full.mk沒有添加到語言
- framework res和settings res沒有需添加語言的資源
- 語言的名稱不是規(guī)定的。如緬甸語的名稱是my_MM,可以在維基查找。
- ICU文件沒有相應(yīng)語言
2、在settings的語言欄有選項(xiàng),但是空的。
- 檢查安卓文件系統(tǒng)下system/etc/fallback_fonts.xml下面是否有添加新的字庫
- 檢查安卓文件系統(tǒng)下system/fonts/是否有新的字庫文件