在Android程序开发基于完成后,需要对未签名的应用进行签名后才可发布。这样做的目的是能够更安全的保护你的应用程序。这里,就说一下不使用IDE,基于命令行的方式对APK文件进行签名。
第一步:生成RSA密钥对
keytool -genkeypair -alias magick.keystore -keyalg RSA -validity 400 -keystore magick.keystore
-genkeypair 指定生成密钥对
-alias 密钥对的别名
-keyalg 密钥对用于的算法,这里用的是RSA
-validity 密钥对的有效期,单位为天
-keystore 密钥对存储的文件名
输入后,根据提示输入相应的内容就好了。
第二步:生成未签名的apk文件
这个就随便生成一下了,比如在ant debug后,会生成一个 403Bible-debug.apk 文件,这个是采用调试签名的,一般未签名的文件是含有unsigned的。
第三步:对未签名的apk进行签名
jarsigner -verbose -keystore magick.keystore -signedjar Magick.apk Magick_unsigned.apk magick.keystore
-verbose 输出签名详细信息
-keystore 指定密钥对的存储路径
-signedjar 后面三个参数分别是 签名后的APK包 未签名的APK包 和 密钥对的别名
签名时,会要求输入密钥对的密码,这个是你在生成密钥时输入的密码
第四部:优化apk包
这一步是可选的,用来将apk包进行整理,以适应设备的读取等
zipalign -f -v 4 Magick.apk Magick_zip.apk
-f 强制覆盖已有的文件
-v 输出详细内容
4 指定档案整理的字节数,一般为4,及32位。如果以后android的设备有64位的,可能要改成8吧。
Magick.apk 是未整理的apk文件名
Magick_zip.apk 是整理后的apk文件名
至此使用命令行对android应用的发布以及优化就算完成了。
相关文章
- Android应用程序的代码混淆和签名
- 【转】使用命令行方式创建和启动android模拟器
- 如何在不强制消费应用程序使用Dagger的情况下构建基于Dagger的Android库?
- 使用 Android Studio 开发工具创建一个 Android 应用程序,显示一行文字“Hello Android”,并将应用程序的名称更改为“FirstApp”。
- iOS错误“嵌入式二进制文件未使用与父应用程序相同的证书进行签名”
- 分发(和更新)仅在内部使用的企业Android应用程序
- 是否可以使用Python为iOS和Android编写跨平台应用程序?
- Android中使用am命令实现在命令行启动程序详解
- 使用命令行创建Android模拟器
- 使用命令行在 Android 设备截图