編輯:關於Android編程
正文
如何編譯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
可能是環境變量沒有配置好,請使用絕對路徑,而不是相對路徑。
Socket是TCP/IP協議上的一種通信,在通信的兩端各建立一個Socket,從而在通信的兩端之間形成網絡虛擬鏈路。一旦建立了虛擬的網絡鏈路,兩端的程序就可以通過虛擬鏈
前幾天看見開源項目效果好贊,看了下代碼,實現大致就是在原界面之上覆蓋一成自定義的View,獲取到點擊的那個View的內容(Bitmap),然後在覆蓋的那個自定義View的
前言其實仔細想一下原理還是挺簡單的。無非是當我們滑動到最後一頁,再向後滑動時定位到第一頁;當我們滑動到第一頁,再向前滑動時定位到最後一頁。但是,相信很多朋友都遇到過這個問
最近項目上需要實現藍牙傳輸apk的一個功能,能夠搜索周圍的藍牙手機並分享文件。從需求上講android手機自帶的藍牙傳輸模塊就可以滿足需要了,實現也很簡單。不過讓人頭疼的