下面使用的工具都在 \Java\jdk1.7.0_17\bin 下,如果你已經(jīng)配置了java環(huán)境變量,就可以直接在命令行下使用了,如果沒(méi)有的話,你需要在命令行下將工作目錄切換到 Java\jdk1.7.0_17\bin 執(zhí)行
生成證書(shū)
如果有證書(shū)可以略過(guò)這一步,直接進(jìn)入下一步
keytool -genkey -v -alias CERT -keyalg RSA -keysize 2048 -validity 10000 -keystore CERT.keystore
參數(shù)說(shuō)明:
CERT.keystore ---- 證書(shū)保存的文件名
CERT ---- 證書(shū)的別名
10000 ---- 10000天的有效期
2048 ---- 默認(rèn)為1024 bits,Android 建議使用2048 bits或更高
證書(shū)生成后使用如下命令可以查看證書(shū)的信息:
keytool -list -alias CERT -keystore CERT.keystore
給APK文件簽名
jarsigner -verbose -keystore CERT.keystore to_sign.apk CERT
參數(shù)說(shuō)明:
CERT.keystore ---- 證書(shū)保存的文件名
CERT ---- 證書(shū)的別名
to_sign.apk ------待簽名的apk文件
簽名過(guò)程需要輸入證書(shū)的密碼,按要求輸入即可
待簽名的apk文件根根目錄下如果有文件夾“META-INFO”,請(qǐng)先刪除(重新簽名就需要這樣做)。
如果不想創(chuàng)建過(guò)程輸出太多信息,可以刪除“-verbose” 。
上述簽名會(huì)直接覆蓋原來(lái)的文件,如果不想被覆蓋而簽名為另外的新文件 signed.akp,只需將 to_sign.apk 改為 -signedjar to_sign.apk signed.akp 即可。
簽名后可以使用如下命令驗(yàn)證是否簽名成功:
jarsigner -verify to_sign.apk
如果需要查看更詳細(xì)的驗(yàn)證信息,可使用:
jarsigner -certs -verbose -verify to_sign.apk
優(yōu)化APK
如果不需要,這一步可以不做,但推薦執(zhí)行
使用 zipalign 工具優(yōu)化已簽名的apk文件
zipalign -v 4 unaligned.apk aligned.apk
到此結(jié)束