Android学习笔记
疯狂Android讲义
文章目录
- Android学习笔记
- 疯狂Android讲义
- 第1章 Android 应用和开发环境
- 1.8 使用Android 9 来签名APK
- 1.8.1 使用Android studio对Android应用进行签名
- 1.8.2 使用Android 9的命令对APK签名
第1章 Android 应用和开发环境
1.8 使用Android 9 来签名APK
Android项目以它的包名作为唯一标识。如果在同一台手机上安装两个包名相同的应用,后面安装的应用就可以覆盖前面安装的应用。为了避免这种情况发生,Android要求对作为产品发布的应用进行签名。
签名的作用:
- 确定发布者的身份。由于应用开发者可以通过使用相同包名来替换已经安装的程序,因此使用签名可以避免发生这种情况。
- 确保应用的完整性。签名会对应用包中的每个文件进行处理,从而确保程序包中的文件不会被替换。
签名后的APK就可以上传到各大应用商店,既可供广大用户免费使用,也可用于盈利。
在应用的开发、调试阶段,Android Studio或 Gradle 工具会自动生成调试证书对Android应用签名,因此部署、调试前面两个示例并没有经过签名。需要指出的是,如果要正式发布一个Android应用,必须使用合适的数字证书来给应用程序签名,不能使用Android Studio或 Gradle工具生成的调试证书来发布。
1.8.1 使用Android studio对Android应用进行签名
Android studio会在指定路径下生成一个签名后的APK安装包
1.8.2 使用Android 9的命令对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
- sign:指定使用apksigner命令执行签名。
- –ks:指定数字证书的存储路径。
- –ks-key-alias:指定数字证书的别名。
- –out<文件名>:指定签名后的 APK 文件的文件名。
- 最后一个参数则代表未签名的APK 文件。
apksigner 还提供了verify子命令来验证签名是否有效。
V3了…