您的位置:首页 > 其它

【ICU】【2.3】如何在2.3中编译ICU资源

2016-06-21 17:01 417 查看

【ICU】【2.3】如何在2.3中编译ICU资源

Android 2.3如何编译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出错,请用附件中提供的对应文件(Android 2.3

make-j2 ERROE.rar解压后得到)替换(需要备份原文件)

$make -j2

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

$adb remount

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

$adb reboot

B. COPY所需文件

1. 将第一步生成的external/icu4c/icuBuild/data/out/tmp/icudt44l.dat复制到

external/icu4c/stubdata下并改名为icudt44l-all.dat,覆盖原来的同名文件

2. 从ICS工程上拷贝路径prebuild\linux-x86\icu-4.4文件夹,放到相应的路径下

C. 配置环境变量

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

/proj/MTK71491/Desktop/GB,配置过程如下:

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

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

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

$source build/envsetup.sh

3. 配置环境变量(注意“=”前后不要有空格),执行完没有任何提示说明配置成功。

$export

ANDROID_EABI_TOOLCHAIN=/proj/mtk71491/Desktop/GB/alps/prebuilt/linuxx86/

toolchain/arm-eabi-4.4.3/bin/

$export LD_LIBRARY_PATH=/proj/mtk71491/Desktop/GB/alps/prebuilt/linuxx86/

icu-4.4/

$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

如果该脚本执行成功,则会更新一遍stubdata下的icudt44l-**.dat这些文件,如果看到这些文

件的修改时间变成了最新的时间,就说明已经重新生成,真正最后起作用的是icudt44llarge.

dat这个文件。

E. 重新编译工程

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

F. 编译过程常见的问题

(1)、执行脚本$./icu_dat_generator.py 4.4过程中出现如下错误。

icupkg: unable to open input file

"/media/android/mtk_compile/15_separate/alps/external/icu4c/tmp/coll/my.res">

原因:修改了icudt44l-large.txt配置文件,而没有在对应的文件下加入icu资源。如在配置文件新

增coll/my.res,但在external\icu4c\data\coll下没添加my.txt文件。

(2)、执行脚本$./icu_dat_generator.py 4.4过程中出现如下错误。

Item coll/in.res depends on missing item coll/id.res

Item coll/in_ID.res depends on missing item coll/id_ID.res

Item curr/in.res depends on missing item curr/id.res

Item curr/in_ID.res depends on missing item curr/id_ID.res

Item in.res depends on missing item id.res

原因:icu_dat_generator.py脚本无法处理一些比较特殊的icu资源,更换新的脚本就行(可参考添

加文档)。

(3)、执行脚本$./icu_dat_generator.py 4.4过程中出现如下错误。是环境变量没有配置或者配置失败。



5.6tp-2.png (364.18 KB, 下载次数: 0 )

下载附件  保存到相册

2016-5-6 10:21 上传

G. 上传.dat文件到SVN

如果你使用svn或类似软件进代码管理,那么就要将你修改的结果上传到服务器上,使服务器

remake或build之后可以看到修改效果。需要上传那些文件呢?请将studdata目录下的.dat文件

全部上传。

提示:请不要将替换的.c和.cpp文件上传,这可能会导致build出错。如果是在本机进行Build,

请将之前替换的两只.c和.cpp文件还原,否则可能会Build出错。

说明:实际上脚本的作用就是将icudt44l-all.dat解压后,根据txt文件内容重新生成icudt44l-

**.dat这些文件,在build的时候Android.mk文件会直接将icudt44l-large.dat文件改名后复制到

最终out目录中,所以上传到服务器只需要将生成的这些.dat文件传上去,其它在本机修改的都不用(如果传上

去可能会build出错)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  手机 终端 MTK 测试 ICU