Android APK如何簽名

2021-09-07 05:56:45 字數 2371 閱讀 9669

android專案以它的包名作為唯一標識,如果在同一裝置上安裝兩個相同的應用,後面安裝的應用就會覆蓋前面安裝的應用。為了避免這種情況的發生,我們需要對作為產品發布的應用進行簽名。

簽名其實有兩個作用:

(1) 確定發布者的身份。防止別人用相同包名來替換你已安裝的程式。

(2) 確保應用的完整性。簽名會對應用包中的每個檔案進行處理,以確保程式包中的檔案不會被替換。

在應用的開發和除錯階段,eclipse的adt外掛程式或ant工具會自動生成除錯證書,對android應用簽名。但是,如果要正式發布乙個android應用的話,就必須使用合適的數字證書來給應用程式簽名,不能使用adt外掛程式或ant工具生成的除錯證書來發布。

這有又兩種方式對android應用簽名:

1.在eclipse中對android應用簽名

(2) 如果系統還沒有數字證書,可以選擇"create new keystore",按如圖格式填寫數字證書的儲存路徑和密碼。

(3) 填寫數字證書的詳細資訊。

(4)指定生成簽名後的apk安裝包的儲存路徑。

簽名證書製作完後,以後就可以直接使用該數字證書簽名了。

(1)選擇前面建立的keystore,輸入建立keystore時的指定密碼。

(2)選擇前面建立時的別名yq的key,並輸入建立該key時指定的密碼,生成簽名後的apk包。

2.使用命令對apk包簽名

在某些場合下, 我們可能需要對乙個「未簽名」的apk包進行簽名,則可通過「命令」來對android應用進行手動簽名。

(1) 建立keystore庫。jdk的安裝目錄下的bin子目錄下提供了keytool.exe來生成數字證書。

在命令視窗輸入:

keytool -genkeypair -alias yqkey.keystore -keyalg rsa -validity 100 -keystore yqkey.keystore

說明:-genkeypair:指定生成數字證書。

-alias:指定生成數字證書的別名。

-keyalg:指定生成數字證書的演算法。使用rsa演算法。

-validity:指定生成的數字證書的有效期。

-keystore:指定所生成的數字證書的儲存路徑。

回車後,接下來將會以互動的方式讓我們輸入數字證書keystore的密碼、作者、公司等詳細資訊。

該步驟只要做一次即可,一旦數字證書建立成功後,只要在該證書的有效期內,可以移植重複使用該證書。

(3) 使用jarsigner命令對未簽名的apk安裝包進行簽名。jdk的安裝目錄下的bin子目錄下提供了jarsigner.exe工具進行簽名。在命令視窗輸入:

jarsigner -verbose -keystore crazyit.keystore -signedjar demo_yqkey.apk demo.apk yqkey.keystore

說明:-verbose:指定生成詳細輸出。

-keystore:指定數字證書的儲存路徑。

-signedjar:該選項的三個引數分別分簽名的apk包、未簽名的apk包、數字證書別名。

回車後,接下來將會以互動的方式讓我們輸入數字證書keystore的密碼。

(4) 使用zipalign.exe工具優化apk安裝包。zipalign.exe是android自帶的乙個檔案整理工具,它可用於優化apk安裝包,從而提公升android應用與系統之間的互動效率,提公升應用程式的執行速度。在命令列視窗輸入:

zipalign -f -v 4 demo_yqkey.apk

demo_yqkey_zip.apk

說明:-f:指定強制覆蓋已有檔案。

-v:指定生成詳細輸出。

demo_yqkey.apk和demo_yqkey_zip.apk,分別制定整理前的apk和整理後生成的apk。

生成的demo_yqkey_zip.apk檔案,就是簽名完成且經過優化的apk安裝包,該安裝包可以對外發布了。

android apk簽名原理

public signature getpackagesignature return null public void getsinginfo catch exception e private void parsesignature byte signature catch certificat...

android apk打包簽名機制

最近在進行做應用公升級時簽名衝突方面的問題,突然覺的有必要將apk簽名的機制,簡單整理一下,對於所有的android應用開發者應該都明白,在生產apk檔案時,都必須對該檔案進行簽名,而所謂的簽名其實也就是通過一種加密演算法,來實現資料保護。如何針對乙個apk檔案進行簽名 1 首先你要生成一對公私鑰 ...

Android apk重新簽名打包

執行以下步驟前很重要的一步驟 刪除要重新簽名的apk檔案裡的meta inf資料夾 jarsigner verbose keystore c users future desktop test your key name.keystore storepass key的密碼 keypass key的密...