爲了保證每一個應用程序開發商合法ID,防止部分開放商可能經過使用相同的Package Name來混淆替換已經安裝的程序,咱們須要對咱們發佈的APK文件進行惟一簽名,保證咱們每次發佈的版本的一致性(如自動更新不會由於版本不一致而沒法安裝)。android
在這裏介紹兩種簽名的方法以下:算法
一、在命令行對apk簽名:後端
建立key,須要用到keytool.exe (位於C:\Program Files\Java\jdk1.6.0_10\bin目錄下),使用產生的key對apk簽名用到的是jarsigner.exe (位於C:\Program Files\Java\jdk1.6.0_10\bin目錄下),把上兩個軟件所在的目錄添加到環境變量path後,打開cmd輸入加密
C:\Documents and Settings\mzba>keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore命令行
相關說明:debug
-genkey 產生密鑰設計
-alias demo.keystore 別名 demo.keystore開發
-keyalg RSA 使用RSA算法對簽名加密get
-validity 40000 有效期限4000天
-keystore demo.keystore
C:\Documents and Settings\mzba>jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore
相關說明:
-verbose 輸出簽名的詳細信息
-keystore demo.keystore 密鑰庫位置
-signedjar demor_signed.apk demo.apk demo.keystore 正式簽名,三個參數中依次爲簽名後產生的文件demo_signed,要簽名的文件demo.apk和密鑰庫demo.keystore.
注意事項:android工程的bin目錄下的demo.apk默認是已經使用debug用戶簽名的,因此不能使用上述步驟對此文件再次簽名。正確步驟應該是:在工程點擊右鍵->Anroid Tools-Export Unsigned Application Package導出的apk採用上述步驟簽名。