分享一個自動編譯,打包,簽名 android apk 的小指令碼

yangxi_001發表於2014-03-13

編譯,簽名,打包你的android程式成為apk,在eclipse上是件很簡單的事情,那我們為什麼還要自動化指令碼呢?

1. eclipse 實現這些功能的機制也是靠的這些命令。

2. 自動化指令碼更靈活,我們可以指定打包的簽名檔案,直接將生成好的apk重新命名並拷貝到某個位置。

3. 更快速,速度遠遠快於eclipse,對於不斷除錯程式的程式設計師來說,減少等待時間,保持好心情更能提高工作效率。

此工具在apidemo根目錄下執行成功,理論上在其他工程下也可執行。

使用前請將簽名檔案拷貝到相同目錄下,並在指令碼中替換android.jar 和簽名檔案以及密碼資訊。

#.java檔案到指定的路徑
aapt package -f -m -J gen -S res -I \
/home/ckt/AndroidLibs/android-sdks/platforms/android-16/android.jar \
-M AndroidManifest.xml 

#. 編譯原始碼
find src -name *.java > src.list #將src下的檔案路徑存在src.list檔案中
find gen -name *.java > gen.list #將gen下的檔案路徑存在gen.list檔案中
javac -target 1.5 -bootclasspath \
/home/ckt/AndroidLibs/android-sdks/platforms/android-16/android.jar \
-d bin @src.list @gen.list

#.  生成dex檔案
dx --dex --output=bin/classes.dex bin 

#.  生成資源包
aapt package -f -A assets -S res -I \
/home/ckt/AndroidLibs/android-sdks/platforms/android-16/android.jar \
-M AndroidManifest.xml -F bin/apidemo

#.  編譯沒簽名的apk檔案
apkbuilder apidemo.apk -v -u -z bin/apidemo -f bin/classes.dex -rf src 

#.  對的apk進行簽名
jarsigner -keystore kuaizu.keystore -storepass 123456-keypass 123456 \
-signedjar apidemo_signed.apk apidemo.apk kuzu.key

相關文章