实际上,现在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了