一直想搞清楚Android apk是怎麼編譯打包並且簽名發佈Application的??今天花了幾個小時,並在網上查資料,終於把apk編譯簽名打包整個流程弄清楚了。
PS:因爲android程序一共有三種方式完成編譯打包任務,參看連接:Android編譯,打包、簽名詳細教程 我採用的是在Eclipse+ADT方式下,並在cmd中編寫簽名工作的,希望能幫助大家;
1.Eclipse下打包unsigned apk
在Eclipse,選中對應的Project,右擊選擇Android Tools——Export unsigned application package
2. Eclipse下打包signed apk
在Eclipse,選中對應的Project,右擊選擇Android Tools——Export signed application package
Next
選擇已有的簽名文件keystore,注意要知道密碼;如果沒有keystore,在練習中可以自己試着編一個keystore,參看apk簽名設置文本 X:\csdn博客文章\apk打包練習
創建簽名文件mySign.keystore步驟:PS:keystore是由jdk自帶的工具keytool生成的。
1. 進入cmd命令行,cd到jdk/bin目錄下;
2. 然後輸入:
命令:keytool -genkey -alias asaiAndroid.keystore -keyalg RSA -validity 20000 -keystore asaiAndroid.keystore 生成的mySign.keystore就在jdk/bin目錄中。
解釋:-alias 後面跟的是別名這裏是 asaiAndroid.store
-keyalg 是加密方式這裏是RSA
-validity 是有效期 這裏是20000
-keystore 就是要生成的keystore的名稱 這裏是asiAndroid.keystore
然後按回車鍵 ,按回車後首先會提示你輸入的密碼:這個在簽名時要用的,要記住,然後會再確認你的密碼。 之後會依次叫你輸入姓名、組織單位、組織名稱、城市區域、省份名稱、國家代碼
設置完信息,最後再次輸入原來的密碼進行確認,再輸入yes/no確定完成簽名,並生成mySign.keystore簽名文件;
附:cmd下查找文件:
開始爲unsigned.apk簽名 步驟:PS:unsigned.apk mySigned.keystore必須在同個文件夾下,因爲沒有配置keytool的環境變量,所以暫時需要的文件均放在jdk/bin文件目錄下;使用jarsigner
命令:jarsigner -verbose -keystore mySign.keystore-signedjar AndroidTest_signed.apk AndroidTest.apk mySign.keystore生成的Lotteryonline_signed.apk就在jdk/bin目錄中
解釋:-keystore: keystore的名稱
AndroidTest_signed.apk: 簽名後的APK
AndroidTest.apk: 簽名前的APK
然後按回車:會要求輸入剛纔設置的密碼,輸入後按回車就開始簽名了。
PS:第一次簽名失敗的原因:AndroidTest.apk沒有和mySign.keystore同在jdk/bin目錄中;
後記:
Apk包結構簡介:轉 http://www.eoeandroid.com/forum.php?mod=viewthread&tid=100000
追記:
keytool -genkey命令解釋:
cmd下啓動android emulator:
前提:配置android-sdk tools環境變量
命令:android avd (任意目錄)