實際上,現在Android開發IDE自帶簽名功能,但是有時我們還是可能遇到自己簽名apk的場景的,比如你有一個未簽名的apk,但是你要adb install到device上,這時我們在adb install之前就必須對該apk進行簽名處理才能install成功,這篇文章就簡單的介紹下apk簽名流程吧。
1、生成簽名證書
簽名需要簽名證書,簽名證書類型實際上是有很多的,如jks、keystore等,這裏以生成keystore爲例來生成一個yjing.keystore簽名證書文件。
本文利用JDK 下的keytool工具來生成keystore文件,相信配置好Android開發環境的童鞋應該都不會遇到keytool工具找不到的問題,這裏直接使用命令
keytool -genkey -alias keyAlias -keyalg RSA -validity 20000 -keystore yjing.keystore
以上命令各參數含義如下:
-genkey 生成文件
-alias 別名
-keyalg 加密算法
-validity 有效期(天)
-keystore 文件名
就這樣,我們生成了一個yjing.keystore的簽名文件,實際上在簽名過程中需要填寫一些基本信息,這個隨便填填就行了,然後在簽名成功後會發現有如下提示
可以看到keytool工具現在已經推薦使用JKS的簽名證書了,這個不管,反正我們已經拿到yjing.keystore了(我生成的yjing.keystore文件在C://users/對應用戶名下)。
2、對apk進行簽名
對apk簽名還是利用JDK下的jarsigner工具來進行,我們通過如下命令來簽名
jarsigner -verbose -keystore yjing.keystore -signedjar signed.apk unsigned.apk keyAlias
這裏也說說參數吧
-verbose 輸出簽名的詳細信息
-keystore 密鑰庫位置 後面跟簽名證書文件路徑
-signedjar 表示進行簽名操作
signed.apk 生成的簽名文件(不是當前路徑時,需添加路徑)
unsigned.apk 表示未簽名文件
yjing.keystore 簽名證書文件
keyAlias 生成簽名時候的別名
通過以上命令也就能成功生成簽名apk文件signed.apk了