Android ICU 编译

system/usr/icu/icudt*l.dat(android10:icudt63l.dat)

提供了最新的unicode标准,字符集转换, 以及超过300个国家的本地数据, 比如数字,时间和信息显示格式等,以及不同语言下的文本排序,日历相关的日期时间操作等.

在Android 中, ICU 源码位于 external/icu/下而编译好的icudt**l.dat文件位于external/icu/icu4c/source/stubdata下。 ICU 源码不会随着系统源码编译而自动编译,若有修改需要先编译后生成icudt**l.dat后,将其拷贝到external/icu/icu4c/source/stubdata下替换同名文件后再编译刷机验证。

1. 编译

如果在external/icu/icu4c/source/data/下进行修改,那么就需要重新编译icudt**l.dat文件。
具体编译步骤:

  1. 建立临时编译目录(推荐在编译到临时目录,不新建直接运行也可以)
    $cd external/icu/icu4c/source
    mkdir build && cd build
  2. 执行icuConfigureRun Linux命令,生成make文件
    $./…/rrunConfigureICU Linux --with–data-packaging=archive
  3. 执行make -j4命令,
    $ make clean
    $ make INCLUDE_UNI_CORE_DATA=1
    然后就可以在external/icu/icu4c/build/source/data/out/tmp/下看到新生成的icudt***l.dat文件
    $ ls external/icu/icu4c/source/build/data/out/tmp/icudt63l.dat
  4. 将生成的icudt**l.dat 推送到设备测试效果
    $adb root && adb remount && adb push external/icu/icu4c/build/source/data/out/tmp/ icu**l.dat system/usr/icu/
    $adb reboot
  5. 测试完成后更新系统源码中的icudt**l.dat,编译打包固件
    cp -f external/icu/icu4c/source/build/data/out/tmp/icudt63l.dat ./icu4c/source/stubdata/icudt63l.dat

2. 客制化

修改 设置-语言与输入法-语言设置中语言显示
例:繁體中文(台灣) -> 繁體中文(中國台灣)

diff --git a/external/icu/icu4c/source/data/region/yue.txt b/external/icu/icu4c/source/data/region/yue.txt
index bad6ec8..dcc53b9 100644
--- a/external/icu/icu4c/source/data/region/yue.txt
+++ b/external/icu/icu4c/source/data/region/yue.txt
@@ -269,7 +269,7 @@ yue{
         TR{"土耳其"}
         TT{"千里達同多巴哥"}
         TV{"吐瓦魯"}
-        TW{"台灣"}
+        TW{"中國台灣"}
         TZ{"坦尚尼亞"}
         UA{"烏克蘭"}
         UG{"烏干達"}
diff --git a/external/icu/icu4c/source/data/region/zh.txt b/external/icu/icu4c/source/data/region/zh.txt
index a5db96b..bb380e6 100644
--- a/external/icu/icu4c/source/data/region/zh.txt
+++ b/external/icu/icu4c/source/data/region/zh.txt
@@ -269,7 +269,7 @@ zh{
         TR{"土耳其"}
         TT{"特立尼达和多巴哥"}
         TV{"图瓦卢"}
-        TW{"台湾"}
+        TW{"中国台湾"}
         TZ{"坦桑尼亚"}
         UA{"乌克兰"}
         UG{"乌干达"}
diff --git a/external/icu/icu4c/source/data/region/zh_Hant.txt b/external/icu/icu4c/source/data/region/zh_Hant.txt
index 24f94fd..65b6b1c 100644
--- a/external/icu/icu4c/source/data/region/zh_Hant.txt
+++ b/external/icu/icu4c/source/data/region/zh_Hant.txt
@@ -270,7 +270,7 @@ zh_Hant{
         TR{"土耳其"}
         TT{"千里達及托巴哥"}
         TV{"吐瓦魯"}
-        TW{"台灣"}
+        TW{"中國台灣"}
         TZ{"坦尚尼亞"}
         UA{"烏克蘭"}
         UG{"烏干達"}

按照1. 编译 进行编译测试

相关阅读
Android应用开发(7)—Unicode和国际化支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值