keystore签名
Apk的签名文件,有keystore的和jks的,不过用法是一样的。
签名命令:
jarsigner -verbose -keystore my.keystore -signedjar
-mysigned.apk my.apk myAlias
或者
jarsigner -verbose -keystore my.jks -signedjar
-mysigned.apk my.apk myAlias
以上命令的说明:
-verbose:指定生成详细输出
-keystore:指定数字证书存储路径
-signedjar:该选项的三个参数为 签名后的apk包 未签名的apk包 数字证书别名
x509pem+pk8 签名
有的时候需要做自动化的打包工具,就需要这种签名方式,利用安卓自带的签名工具signapk.jar来签名。
把signapk.jar和x509pem,pk8文件放到一个文件夹,然后运行命令:
Java -jar signapk.jar myapk.x509.pem myapk.pk8 myapkdemo.apk myapkdemo_signed.apk
keystore(jks)转x509pem+pk8
如果我们需要公钥和私钥这种形式的文件,可以从keystore或者jks中提取出来,需要ks2x509.jar这个jar包,命令如下:
java -jar ks2x509.jar my.keystore myAlias password1 password2
参数分别为:签名文件,别名,两个密码
Apk优化
Android SDK中包含了一个用于优化APK的工具zipalign,优化后的apk可以提高与系统的交互效率,Android小组强烈建议开发者在发布新Apps之前使用zipalign优化工具。
这个工具的位置在build-tools里面
优化APK:
zipalign -v 4 MyDemo.apk MyDemo_new.apk
检查APK是否优化过:
zipalign -c -v 4 MyDemo_new.apk