Android APK如何簽名

來源:互聯網
上載者:User

標籤:

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

簽名其實有兩個作用:

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

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

在應用的開發和調試階段,Eclipse的ADT外掛程式或ANT工具會自動產生調試認證,對Android應用簽名。但是,如果要正式發布一個Android應用的話,就必須使用合適的數位憑證來給應用程式簽名,不能使用ADT外掛程式或ANT工具產生的調試認證來發布。

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

1.在Eclipse中對Android應用簽名

(1) 右擊Android項目,Android Tools-->Export Signed Application Package...

(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的密碼、作者、公司等詳細資料。

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

(2) 產生未簽名的APK安裝包。在Eclipse中右擊Android項目,Android Tools-->Export Unsigned Application Package...

(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:指定產生詳細輸出。

4:指定檔案整理所基於的位元組數,通常指定為4,也就是基於32位進行整理。

Demo_yqkey.apk和Demo_yqkey_zip.apk,分別制定整理前的APK和整理後產生的APK。

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

Android APK如何簽名

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.