01_Android應用開發環境_05_簽名android應用程序

背景:算法

Android項目以他的包爲惟一標識,若是一臺設備上安裝了兩個包名相同的應用,後安裝的應用就會覆蓋前面安裝的應用。工具

目的:優化

爲了不覆蓋的狀況,Android要求對做爲成品的應用進行簽名。插件

做用:3d

  • 肯定發佈者身份。
  • 確保應用的完整性。
在Eclipse的ADT插件或Ant工具會自動生成調試證書對Android應用簽名。若是要正式發佈一個Android應用,必須使用合適的數字證書來給應用程序簽名,不能使用ADT或者Ant工具生成的調試證書來發布。

在Eclipse中對Android應用簽名調試

一、右擊項目,Android Tools→Export Singned Application Package… blog

二、若是系統中沒有數字證書,能夠在窗口中選擇"Create new keystore"單擊按鈕,填寫數字證書的存儲路徑和密碼。 ip

image

三、填寫完成後Next,Eclipse將會彈出讓用戶填寫數字證書的詳細信息。 get

image

四、Next,指定生成簽名後的APK安裝包的存儲路徑。 it

image

五、Finish。這樣就會在指定目錄下生成一個簽名後的APK安裝包。

一旦數字證書製做完成,之後就能夠最直接使用該證書籤名了。

使用命令對APK進行簽名

一、建立keysrore庫,JDK的安裝目錄下面的BIN中有一個keytool.exe工具生成數字證書。

keytool -genkeypair    -alias    -keyalg   -validity   -keystore 

  • -genkeypair:指定生成數字證書
  • -alias:指定生成數字證書別名
  • -kayalg:指定生成數字證書的算嗎,使用RSA算法
  • -validity:指定生成的數字證書的有效期
  • -keystore:指定所生成的數字證書的存儲路徑
輸入命令後回車,接着安裝交互式界面輸入相關參數。

二、生成爲簽名的apk,Android Tools→Export Unsigned Application Package…

三、使用jarsigner命令對未簽名的APK進行簽名,JDK的Bin子目錄下面

jarsigner -verbose -keystore -signedjar

說明:

  • -verbose:指定生成詳細輸出
  • -keystore:指定數字證書存儲路徑
  • -singedjar:有三個參數分別是簽名後apk包、未簽名的APK包、數字證書的別名。
  • 回車,以交互的方式輸入數字證書keystore的密碼。

四、使用zipalign.exe工具優化APK安裝包。

zipalign -f -v 4 a.apk a_zip.apk

  • -f:指定強制覆蓋已有文件
  • -v:指定生成詳細輸出
  • 4:指定檔案整理所基於的字節數,一般指定爲4,也就是基於32爲進行整理。
  • a.apk、a_zip.apk:分別指定整理前的APK和整理後生成的APK。
相關文章
相關標籤/搜索