Android ICU data 文件编译

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

    详细内容可以访问:

        http://userguide.icu-project.org/

    在android 中, ICU 源码位于 external/icu/下。

    本文介绍在android下, 对icu data做了修改后,如何生成.dat文件。

    如何在icu/icu4c/source/data下修改/增加了文件,那么就需要重新build .dat文件。 这个.dat的原始文件在icu4c/source/stubdata下,名字为icudt.dat, 其中是两个数字,表明icu版本数, 是一个字符,表明该.dat文件的内部格式。例如android M上.dat文件名为icudt55l.dat.

    具体编译步骤:

    1.修改icu4c/souce/data下文件

    2.在终端中进入目录icu4c/source,:

       cd icu4c/source

    3. config 编译选项, 其中Linux代表linux, 终端中输入:

       ./runConfigureICU Linux --with-data-packaging=archive

       注:如果仅仅希望生成包含icu data的icudtxxx.dat 文件,可以使用编译选项:--with-data-packaging=archive, 即终端中输入:

       ./runConfigureICU Linux --with-data-packaging=archive

    4. 终端中输入,:

        make INCLUDE_UNI_CORE_DATA=1

        然后就可以在icu4c/source/data/out/tmp下看到新生成的icudtxxx.dat 文件

        注:必须添加INCLUDE_UNI_CORE_DATA=1, 这样相应的一些资源文件才能被加入.dat文件内, 比如uprops.icu,否则可能导致开机时找不到相应资源死机。跟着各编译选项相关的文件可参看icu4c/source/data/Makefile.in。

     

   5. push icudtxxx.dat到手机/system/usr/icu


在android l and android M 上,新加入了icu4j, 如果修改了icu4c下的data文件,那么也要重新生成icu4j/main/shared下的两个jar文件icudata.jar 和icutzdata.jar.

下面介绍如何生成icudata.jar 和icutzdata.jar,在以上五步的基础上:

  6. cd data (external/icu/icu4c/source/data)

  7. make ICU4J_ROOT=../../../icu4j icu4j-data-install

就可以看到在icu4j/main/shared重新生成了两个jar文件icudata.jar 和icutzdata.jar


  

关于详细内容也可以参看

android源码中的external/icu/icu4c/readme.html

android源码中的external/icu/icu4c/source/data/icu4j-readme.txt

http://userguide.icu-project.org/icudata

你可能感兴趣的:(framework,android,ICU,data)