一、問題
同一套Android代碼,希望通過配置檔案的形式,制作成不同包名的多個package(多包名,多版本号,多市場logo,多廣告商)。
二、解決方法
使用Ant編譯
三、Ant安裝和使用
1. 環境:Ubuntu 10.04
2. 安裝工具
1) 安裝jdk 1.6及android-sdk-linux-r15(見android sdk相關文檔)
2) 安裝ant 1.83版本
由于android-sdk-linux-r15需要ant 1.8.0以上版本,在ubuntu 10.04上使用apt-get自動安裝的版本太低,是以使用源碼包安裝方法
a) 下載下傳
ant最新版(目前為1.8.3)
下載下傳junit-4.9.jar包,ant編譯時需要此包
b) 安裝
$ tar xvzf ../tgz/apache-ant-1.8.3-src.tar.gz
$ cd apache-ant-1.8.3
$ cp /usr/lib/jvm/java-6-sun/lib/junit-4.9.jar lib/optional/
$ export JAVA_HOME=/usr/lib/jvm/java-6-sun
$. build.sh
$. build.sh install
3. 建立工程
1) 列出目标平台ID
$ $ANDROID_SDK_DIR/tools/android list targets
2) 建立新的android工程(效果同使用eclipse建立android工程一緻)
$ $ANDROID_SDK_DIR/tools/android create project –k 包名 –a項目名 –t 目标平台ID –p 路徑
3) 編譯工程
$ ant debug
此時在bin目錄下生成相應的apk檔案
(jar包和so庫都放在libs目錄下即可被打入apk包,位置同android源碼編譯中位置一緻)
4) 在虛拟機中安裝并運作
$ $ANDROID_SDK_DIR/tools/android list avd
列出所有的AVD
$ $ANDROID_SDK_DIR/tools/emulator –avd 指定AVD名稱
操作模拟器時,鍵盤F2對應菜單鍵,Home鍵對應裝置的Home鍵
$ $ANDROID_SDK_DIR/platform-tools/adb install xxx.apk
在虛拟機中打開應用即可
4. 對原有工程用ant編譯
1) 建立ant編譯腳本build.xml
$ $ANDROID_SDK_DIR/tools/android update project --name 項目名 –t目标平台ID –p 路徑
2) 編譯工程
a) 編譯debug版本
$ ant debug
生成帶debug簽名的apk
b) 生成release版本
$ ant release
生成帶未簽名的apk,之後手動簽名即可
編輯build.properties檔案,其中指定簽名相關資源,可自動簽名
5. 将一套代碼通過簡單配置自動生成多個apk包(此處隻介紹最簡單的方法)
1) 原理
使用 ant –f參數指定運作腳本,在該腳本中修改代碼,資源,腳本的内容,然後再運作ant編譯出相應的apk,原理和手動替換資源一樣。