【Android】Android4.4添加新语言和字库

一、修改编译配置文件

目的:让PRODUCT_LOCALES := 后面有我们需要添加的语言。

一般原生安卓代码是修改这两个文件

Android/build/target/product/languages_full.mk
Android/build/target/product/languages_small.mk

二、添加系统资源文件

上面添加好了但是还发现Resources.getSystem().getAssets().getLocales()没有我们添加的语言,这时候需要检查一下在Android/frameworks/base/core/res/res/目录添加values-xxx相应的资源

三、添加字库

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  

完成上面三步之后在文件系统下的/system/fonts/就有添加的字库了,也可以通过mm命令然后在out/下检查。

四、字库资源载入

Android4.0+ 和之前版本方式不一样

Modify frameworks/base/data/fonts/fallback_fonts.xml,Add your custom font like below :

    
        
            Himalaya.ttf
        
    

五、可能遇到的问题

1、在setting里面没有语言选项。

  • languages_full.mk没有添加到语言
  • framework res和settings res没有需添加语言的资源
  • 语言的名称不是规定的。如缅甸语的名称是my_MM,可以在维基查找。
  • ICU文件没有相应语言

2、在settings的语言栏有选项,但是空的。

  • 检查安卓文件系统下system/etc/fallback_fonts.xml下面是否有添加新的字库
  • 检查安卓文件系统下system/fonts/是否有新的字库文件

六、参考文章:

  • Android系统应用开发(四)系统语言以及添加字体库
  • android添加新语言之缅甸语
  • Unicode字符检查

你可能感兴趣的:(【Android】Android4.4添加新语言和字库)