Android项目以它的包名作为唯一标识。如果在同一台手机上安装两个包名相同的应用,后面安装的应用就可以覆盖前面安装的应用。为了避免这种情况发生,Android要求对作为产品发布的应用进行签名。
签名的作用:
签名后的APK就可以上传到各大应用商店,既可供广大用户免费使用,也可用于盈利。
在应用的开发、调试阶段,Android Studio或 Gradle 工具会自动生成调试证书对Android应用签名,因此部署、调试前面两个示例并没有经过签名。需要指出的是,如果要正式发布一个Android应用,必须使用合适的数字证书来给应用程序签名,不能使用Android Studio或 Gradle工具生成的调试证书来发布。






Android studio会在指定路径下生成一个签名后的APK安装包



通过命令对一个未被签名的APK包进行签名
创建Key store库。
keytool -genkeypair -alias crazyit -keyalg RSA -validity 400 -keystore crazyit.jks


生成一个未签名的APK安装包


使用Android 9 的apksinner.bat命令进行签名


apksigner sign --ks crazyit.jks --ks-key-alias crazyit --out HelloWorld_crazyit.apk app-debug.apk

apksigner 还提供了verify子命令来验证签名是否有效。

V3了…