1. 程式人生 > >使用命令列簽名Android應用程式

使用命令列簽名Android應用程式

在Android程式開發基於完成後,需要對未簽名的應用進行簽名後才可釋出。這樣做的目的是能夠更安全的保護你的應用程式。這裡,就說一下不使用IDE,基於命令列的方式對APK檔案進行簽名。 

第一步:生成RSA金鑰對 
keytool -genkeypair -alias magick.keystore -keyalg RSA -validity 400 -keystore magick.keystore 

-genkeypair 指定生成金鑰對 
-alias 金鑰對的別名 
-keyalg 金鑰對用於的演算法,這裡用的是RSA 
-validity 金鑰對的有效期,單位為天 
-keystore 金鑰對儲存的檔名 


輸入後,根據提示輸入相應的內容就好了。 

第二步:生成未簽名的apk檔案 
這個就隨便生成一下了,比如在ant debug後,會生成一個 403Bible-debug.apk 檔案,這個是採用除錯簽名的,一般未簽名的檔案是含有unsigned的。 

第三步:對未簽名的apk進行簽名 
jarsigner -verbose -keystore magick.keystore -signedjar Magick.apk Magick_unsigned.apk magick.keystore 

-verbose 輸出簽名詳細資訊 
-keystore 指定金鑰對的儲存路徑 
-signedjar 後面三個引數分別是 簽名後的APK包 未簽名的APK包 和 金鑰對的別名 


簽名時,會要求輸入金鑰對的密碼,這個是你在生成金鑰時輸入的密碼 

第四部:優化apk包 
這一步是可選的,用來將apk包進行整理,以適應裝置的讀取等 
zipalign -f -v 4 Magick.apk Magick_zip.apk 

-f 強制覆蓋已有的檔案 
-v 輸出詳細內容 
4 指定檔案整理的位元組數,一般為4,及32位。如果以後android的裝置有64位的,可能要改成8吧。 
Magick.apk 是未整理的apk檔名 
Magick_zip.apk 是整理後的apk檔名 

至此使用命令列對android應用的釋出以及優化就算完成了。