微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > 如何在2.3中编译ICU资源

如何在2.3中编译ICU资源

时间:10-02 整理:3721RD 点击:
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过程中出现如下错误。是环境变量没有配置或者配置失败。


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出错)。

谢谢分享

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top