當發布APK是一種負擔時,必需要進入自動化模式了。
本文使用ANT來編譯,並簽名,對齊,發布。
1 下載sun-java6-jdk
參考這裡來下載。
export JAVA_HOME=/usr/lib/jvm/java-6-sun
2 為已存在的項目產生ant的build.xml
運行命令列到當前項目根目錄下,運行如下命令:
android update project --path .
可以使用ant命令查看相關資訊和協助,如下:
$ ant $ ant debug
需要Proguard的同學把AndroidManifest.xml中的debuggable關掉(查資料時發現中外差距太大,老外一句話解決的事情,中文版要長篇大論還搞不定)。
3 出貨!出貨!指令碼:
#!/bin/bashAPP_NAME="StandardLauncher"CD="."RELEASE_APP=$CD/bin/$APP_NAME-release-signed.apkRELEASE_DIR=~/released_apks/standardLauncherPWD="xxx"#ant releaseecho "Sign apk..."cp $CD/bin/$APP_NAME-release-unsigned.apk $RELEASE_APP"$JAVA_BIN/jarsigner" -keystore "my-release-key.keystore" -storepass $PWD -keypass $PWD $RELEASE_APP "my-release-key"echo "Verigy apk...""$JAVA_BIN/jarsigner" -verify $RELEASE_APPversionName=$(aapt d badging $RELEASE_APP |grep versionName= | cut -d "=" -f4 | cut -d "'" -f2)echo "Get versionName = $versionName"echo "zipalign apk..."zipalign -f 4 $RELEASE_APP "$RELEASE_APP"_alignedcp "$RELEASE_APP"_aligned $RELEASE_DIR/"$APP_NAME"_V"$versionName"_build_$(date +%Y%m%d).apkecho "Clean up..."rm -v $RELEASE_APPrm -v "$RELEASE_APP"_alignedcd $RELEASE_DIR$RELEASE_DIR/cleanup.sh
PS 中間擷取version name的命令需要改進。