android命令列打包、簽名+自動打包器

來源:互聯網
上載者:User

本文主要講解使用命令列打包android工程成apk檔案,我的android工程結構

1.建立key: 使用keytool.exe(位於%JAVA_HOME%\bin\keytool.exe)建立xxx.keystore,在命令列輸入:
keytool -genkey -alias debug.keystore -keyalg RSA -validity 20000 -keystore debug.keystore

說明:
-genkey 產生密鑰
-alias debug.keystore 別名
-keyalg RSA 使用RSA演算法對簽名加密
-validity 20000 有效期間限2000天
-keystore debug.keystore

如果之前建立過xxx.keystore,第一步就可以省略,以後直接使用此xxx.keystore就可以了

2.簽名:使用jarsigner.exe(位於%JAVA_HOME%\bin\jarsigner.exe)簽名
jarsigner -verbose -keystore debug.keystore -signedjar demo_signed.apk demo.apk debug.keystore

說明:
-verbose 輸出簽名的詳細資料
-keystore debug.keystore 密鑰庫位置
-signedjar demo_signed.apk demo.apk debug.keystore 正式簽名,三個參數中依次為簽名後產生的檔案demo_signed.apk,要簽名的檔案demo.apk和密鑰庫demo.keystore

3.對齊:使用zipalign.exe(位於android-sdk-windows\tools\zipalign.exe)對齊
zipalign -v 4 demo_signed.apk demo_signed_aligned.apk

說明:
zipalign能夠使apk檔案中未壓縮的資料在4個位元組邊界上對齊(4個位元組是一個效能很好的值)

如果使用IDE工具開發android,可以通過IDE匯出未簽名的apk包。因此,知道上面幾條命令就可以了。

如果你需要手動打apk包,請看下面打包過程

0.開啟cmd,cmd目錄
C:\Documents and Settings\user>

1.產生R.java檔案
建立gen目錄,如果F:\workspace\LBSDemo目錄下沒有gen目錄,運行
mkdir F:\workspace\LBSDemo\gen

運行aapt命令產生R.java檔案
aapt.exe package -f -m -J F:\workspace\LBSDemo\gen -S F:\workspace\LBSDemo\res -I H:\android-sdk-windows\platforms\android-7\android.jar -M F:\workspace\LBSDemo\AndroidManifest.xml

2.將.aidl檔案轉換成.java檔案
aidl.exe -pH:\android-sdk-windows\platforms\android-7\framework.aidl F:\workspace\LBSDemo\src\com\lbs\aidl\Remote.aidl F:\workspace\LBSDemo\gen\com\lbs\aidl\Remote.java

3.將java檔案編譯成class檔案
建立bin目錄,如果F:\workspace\LBSDemo目錄下沒有bin目錄,運行
mkdir F:\workspace\LBSDemo\bin

運行javac編譯java檔案
javac -encoding UTF-8 -target 1.5 -bootclasspath H:\android-sdk-windows\platforms\android-7\android.jar -d F:\workspace\LBSDemo\bin F:\workspace\LBSDemo\src\com\baidu\mapapi\*.java F:\workspace\LBSDemo\src\com\lbs\*.java F:\workspace\LBSDemo\src\com\lbs\util\*.java
F:\workspace\LBSDemo\gen\com\lbs\R.java F:\workspace\LBSDemo\gen\com\lbs\aidl\Remote.java -classpath F:\workspace\LBSDemo\libs\baidumapapi.jar

4.產生.dex檔案
dx.bat --dex --output=F:\workspace\LBSDemo\bin\classes.dex F:\workspace\LBSDemo\bin F:\workspace\LBSDemo\libs

5.產生資源套件檔案
aapt.exe package -f -M F:\workspace\LBSDemo\AndroidManifest.xml -S F:\workspace\LBSDemo\res -A F:\workspace\LBSDemo\assets -I H:\android-sdk-windows\platforms\android-7\android.jar -F F:\workspace\LBSDemo\bin\resources

6.產生未簽名的apk包
apkbuilder.bat F:\workspace\LBSDemo\bin\LBSDemo.apk -v -u -z F:\workspace\LBSDemo\bin\resources -f F:\workspace\LBSDemo\bin\classes.dex -rf F:\workspace\LBSDemo\src -rj F:\workspace\LBSDemo\libs -nf F:\workspace\LBSDemo\libs

7.簽名
H: && jarsigner -verbose -keystore debug.keystore -storepass android -signedjar F:\workspace\LBSDemo\bin\LBSDemo_signed.apk F:\workspace\LBSDemo\bin\LBSDemo.apk debug.keystore

簽名需要目前的目錄在keystore目錄下,否則出現下面錯誤
jarsigner: 找不到 H:\demo.keystore 的憑證鏈結。

8.對齊
zipalign -v 4 F:\workspace\LBSDemo\bin\LBSDemo_signed.apk F:\workspace\LBSDemo\bin\LBSDemo_signed_aligned.apk

自動打包工具:http://download.csdn.net/detail/chenfeng0104/5005069

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.