Android 如何編譯ICU資源

2021-07-05 04:36:38 字數 2562 閱讀 7933

如何編譯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、將第一步生成的externalicu4cicubuilddataout mpicudt44l.dat複製到externalicu4cstubdata下並改名為icudt44l-all.dat,覆蓋原來的同名檔案。

2、對於gb版本,從ics工程上拷貝路徑prebuildlinux-x86icu-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

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

可能是環境變數沒有配置好,請使用絕對路徑,而不是相對路徑。

如何編譯ICU資源

如何編譯icu資源 如果只是測試修改後效果,執行步驟a即可 如果需要build後生效,則需要執行全部步驟 a.在臨時目錄中編譯icu資源 1.在external icu4c下新建臨時目錄icubuild,進入icubuild目錄 mkdir external icu4c icubuild cd ex...

ICU 2 3 如何在2 3中編譯ICU資源

android 2.3如何編譯icu資源 如果只是測試修改後效果,執行步驟a即可 如果需要build後生效,則需要執行全部步驟 a.在臨時目錄中編譯icu資源 1.在external icu4c下新建臨時目錄icubuild,進入icubuild目錄 mkdir external icu4c icu...

編譯android原始碼中的icu4c

在external icu4c studata readme.txt,裡面有修改icu4c中資源的編譯方法 具體步驟 可複製下面命令,直接執行 1 新增或者修改external icu4c data目錄下的資源 2 建立乙個臨時目錄 croot rm external icu4c stubdata ...