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 如何获取签名 android签字功能_学习

Android 如何获取签名 android签字功能_学习_02

Android 如何获取签名 android签字功能_Android 如何获取签名_03

Android 如何获取签名 android签字功能_android_04

Android 如何获取签名 android签字功能_android_05

Android 如何获取签名 android签字功能_Android 如何获取签名_06

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

Android 如何获取签名 android签字功能_Android_07

Android 如何获取签名 android签字功能_Android 如何获取签名_08

Android 如何获取签名 android签字功能_学习_09

1.8.2 使用Android 9的命令对APK签名

通过命令对一个未被签名的APK包进行签名

  1. 创建Key store库。
keytool -genkeypair -alias crazyit -keyalg RSA -validity 400 -keystore crazyit.jks

Android 如何获取签名 android签字功能_android_10

Android 如何获取签名 android签字功能_Android 如何获取签名_11

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

Android 如何获取签名 android签字功能_android studio_12

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

Android 如何获取签名 android签字功能_android_13

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 文件。

Android 如何获取签名 android签字功能_Android 如何获取签名_14

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

Android 如何获取签名 android签字功能_android studio_15

V3了…