Android 如何编译ICU资源

前言
         欢迎大家我分享和推荐好用的代码段~~
声明
         欢迎转载,但请保留文章原始出处:
         CSDN
http://www.csdn.net
         雨季o莫忧离:http://blog.csdn.net/luckkof

正文

 

如何编译ICU资源

如果只是测试修改后效果,执行步骤A即可;如果需要build后生效,则需要执行全部步骤

A.     在临时目录中编译ICU资源

1.  在external/icu4c下新建临时目录icubuild,进入icubuild目录

$mkdir external/icu4c/icuBuild

$cd external/icu4c/icuBuild

2.  执行icuConfigureRun Linux命令,生成make文件

       $.././runConfigureICU Linux

3.  执行make -j2命令,

       $make -j2

对于GB版本,如果make -j2出错,需要用mtk提供的文件(Android 2.3 make-j2 ERROE.rar)替换(需要备份原文件)。

4.  将生成的external/icu4c/icuBuild/data/out/tmp/icudt44l.dat push到手机测试

$adb remount

$adb push external/icu4c/icuBuild/data/out/tmp/icudt44l.dat system/usr/icu/

$adb reboot

        ICS对应的是icudt46l.dat

        JB以及以后版本是icudt48l.dat

B.     COPY所需文件

1、将第一步生成的external\icu4c\icubuild\data\out\tmp\icudt44l.dat复制到external\icu4c\stubdata下并改名为icudt44l-all.dat,覆盖原来的同名文件。

 2、对于GB版本,从ICS工程上拷贝路径prebuild\linux-x86\icu-4.4文件夹,放到相应的路径下

 ICS版本是icudt46l.dat和icudt46l-all.dat

  JB及以上是icudt48l.dat和icudt48l-all.dat

C.      配置环境变量

重新配置环境变量(如果不配置正确会导致执行脚本出错)。以我的系统为例,配置过程如下:

    1.   在终端中进入/proj/mtk71491/Desktop/GB/alps目录即:

      $cd /proj/mtk71491/Desktop/GB/alps

    2.   然后执行脚本(等价于./ build/envsetup.sh):

      $source build/envsetup.sh

    3.   配置环境变量(注意“=”前后不要有空格)。

$export ANDROID_EABI_TOOLCHAIN=/proj/mtk71491/Desktop/GB/alps/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/JB2以及以上不执行此步

$export LD_LIBRARY_PATH=/proj/mtk71491/Desktop/GB/alps/prebuilt/linux-x86/icu-4.4/(JB以及上以跳过这一步

$export ANDROID_BUILD_TOP=/proj/mtk71491/Desktop/GB/alps/

执行完没有任何提示说明配置成功。

D.     执行脚本,重新生成.dat文件

执行脚本,如果遇到文档印尼语错误请用MTK提供的脚本(icu_dat_generator.rar)替换后再执行,如下所示:

    1.   进入/proj/mtk71491/Desktop/GB/alps/external/icu4c/studdata目录

      $cd external/icu4c/studdata

    2.   执行脚本

      $./icu_dat_generator.py 4.4 (ICS及以后版本执行$./icu_dat_generator.py)

如果该脚本执行成功,则会更新一遍stubdata下的icudt44l-**.dat这些文件,如果看到这些文件的修改时间变成了最新的时间,就说明已经重新生成真正最后起 作用的是icudt44l-large.dat这个文件。

ICS版是icudt46l-default.dat

JB以及以上是icudt48l-default.dat 

E.      重新编译工程

    一般修改后都是重新编译工程来测试效果,使用remake android命令即可.

F.      如果执行./icu_dat_generator.py报以下错误

Traceback (most recent call last):

File "./icu_dat_generator.py", line 296, in <module>

main()

File "./icu_dat_generator.py", line 261, in main

icu_version = re.sub(r"([^0-9])", "", os.path.basename(input_files[0]))

IndexError: list index out of range 

可能是环境变量没有配置好,请使用绝对路径,而不是相对路径。


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。