Android Studio 生成签名的APK

简介: 生成签名打开项目以后,点击项目,选择 Build 菜单, 然后选择 Generate Signed APK. 如下图所示:打开生成对话框:选择 Create new... 按钮, 生成新的Key, 弹出新生成对话框:首先选择 Key 存储的路径.可能是有BUG, 在弹出的选择 keystore file 对话框中,需要先输入 File name, 如 ``, 文件后缀名 保持默认的 jks 不变。

生成签名

打开项目以后,点击项目,选择 Build 菜单, 然后选择 Generate Signed APK. 如下图所示:

打开生成对话框:

选择 Create new... 按钮, 生成新的Key, 弹出新生成对话框:

首先选择 Key 存储的路径.

可能是有BUG, 在弹出的选择 keystore file 对话框中,需要先输入 File name, 如 ``, 文件后缀名 保持默认的 jks 不变。然后再改变保存的路径(否则输入不了名字).

最后的路径可能是这样的: E:\CODE_ALL\02_GIT_ALL\cncounter-android\key_store\cncounter-android-key.jks

接着输入密码, 建议不要太简单,也不要太复杂。 此处示例的密码为:

cncounter-android

为了简单起见, 所有密码都设置为同一个:

cncounter-android

有效时间默认25年,以支撑你的整个APP周期。

Country Code (XX) 应该是 CN, 如下图所示:

然后点击OK, 回到生成界面。

勾选上记住密码,然后点击下一步.

如果弹出输入密码保护,可以选择留空,不使用这种保护。

点击OK,进入下一步:

选择 release 是发布版本,选择 debug 是调试版本。 此处, 选择 release , 然后点击完成按钮即可。

然后会告诉你生成完毕,可以选择查看:

生成的APK如下所示:

下次需要生成,只需要从 Build 菜单, 选择 Generate Signed APK 即可。 如下图所示:

因为上次选择了记住密码,所以这里不需要记住密码。

然后继续即可。

自动签名

在 Android Studio 中, 可以通过配置在构建过程中自动签名 release 版本的APK:

1. 选择 project 浏览视图, 在 app 上点击鼠标右键, 选择 Open Module Settings 菜单, 如下图所示:

2. 在打开的 Project Structure 窗口中, 选择 Modules 下面的 app 模块.

3. 切换到 Signing 标签页.

4. 选择 keystore 文件, 输入此配置的 name(当然, 也可以通过加号创建多个配置), 以及其他必须的信息,比如各种密码.

5. 然后切换到 Build Types 选项卡.

6. 选择 release build.

7. 然后在右边的 Signing Config, 选择上面创建的配置项.

8. 点击 OK 即可.

然后就可以了。 你的 debug 版本也可以采用同样的方式配置,但是建议使用 debug专用的 keystore 进行签名。

多个项目成员进行开发都采用同一个 debug 的store, 而 release 版本的 keystore 则只允许部分人员使用。

优化对齐

在 Android SDK 中包含一个名为 “zipalign” 的工具,它能够对打包后的 app 进行优化。 其位于 SDK 的 build-tools 目录下, 例如: D:\Develop\Android\sdk\build-tools\23.0.2\zipalign.exe 。

如果你将路径 D:\Develop\Android\sdk\build-tools\23.0.2 添加到 Path 之中,则可以直接使用 zipalign.exe ; 否则需要指定全路径。

用法示例

将 infile.apk 对齐,并保存为 outfile.apk:

zipalign [-f] [-v] <alignment> infile.apk outfile.apk

验证 existing.apk 是否对齐:

zipalign -c -v <alignment> existing.apk

占位符 <alignment> 是指字节对齐边界的一个整数。apk 文件的对齐字节数必须是 4 (也就是 4*8 = 32-bit 的对齐)。其他数字无效。

标志:

-f : 强制覆盖已存在的输出文件
-v : 输出详细日志(verbose output)
-c : 校验时使用, 验证指定的文件是否对齐

下面是使用示例:

首先,进入到 apk 文件所在的目录(否则全路径命令行就会很长):

e:
cd E:\CODE_ALL\02_GIT_ALL\cncounter-android\app\build\outputs\apk

然后找到你的 zipalign 程序路径

D:\Develop\Android\sdk\build-tools\23.0.2\zipalign.exe -c -v 4 app-release-unaligned.apk

可以看到类似下面这样的输出,失败信息:

  209814 res/mipmap-hdpi-v4/ic_launcher.png (BAD - 2)
  212824 res/mipmap-mdpi-v4/ic_launcher.png (OK)
  246707 res/xml/pref_data_sync.xml (OK - compressed)
  248751 resources.arsc (BAD - 3)
  459180 classes.dex (OK - compressed)
 1218706 META-INF/MANIFEST.MF (OK - compressed)
 1229010 META-INF/CERT.SF (OK - compressed)
 1239389 META-INF/CERT.RSA (OK - compressed)
Verification FAILED

可以看到校验失败,因为我们校验的是一个未对齐(unaligned)的 apk。

下面,我们来进行对齐(注意,不支持换行):

D:\Develop\Android\sdk\build-tools\23.0.2\zipalign.exe  -f -v 4 app-release-unaligned.apk cnc-v0.1.20151216.apk

输出内容大致如下所示:

  225300 res/mipmap-xxxhdpi-v4/ic_launcher.png (OK)
  247015 res/xml/pref_data_sync.xml (OK - compressed)
  249060 resources.arsc (OK)
  459489 classes.dex (OK - compressed)
 1219015 META-INF/MANIFEST.MF (OK - compressed)
 1229319 META-INF/CERT.SF (OK - compressed)
 1239698 META-INF/CERT.RSA (OK - compressed)
Verification succesful

提示对齐成功,我们可以验证一下:

D:\Develop\Android\sdk\build-tools\23.0.2\zipalign.exe -c -v 4 cnc-v0.1.20151216.apk

提示的内容大致如下:

  248574 res/xml/pref_notification.xml (OK - compressed)
  249060 resources.arsc (OK)
  459489 classes.dex (OK - compressed)
 1219015 META-INF/MANIFEST.MF (OK - compressed)
 1229319 META-INF/CERT.SF (OK - compressed)
 1239698 META-INF/CERT.RSA (OK - compressed)
Verification succesful

OK. 此时算是可以交付给用户下载的版本了。

对齐之后的 apk 文件最好不要修改。

如果需要了解更多,请参考官方链接。

官方链接:http://developer.android.com/intl/zh-cn/tools/publishing/app-signing.html

简单优化:Zipalign http://www.cnblogs.com/xirihanlin/archive/2010/04/12/1710164.html

日期: 2015年11月28日

作者: 铁锚 http://blog.csdn.net/renfufei



目录
相关文章
|
2月前
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
91 1
|
2月前
|
安全 Java Android开发
【Android P】OTA升级包定制,移除不需要更新的分区,重新打包签名
如何解压OTA升级包、编辑升级包内容(例如移除不需要更新的分区)、重新打包、签名以及验证OTA文件的过程。
108 2
【Android P】OTA升级包定制,移除不需要更新的分区,重新打包签名
|
24天前
|
XML IDE 开发工具
🔧Android Studio高级技巧大公开!效率翻倍,编码不再枯燥无味!🛠️
【9月更文挑战第11天】在软件开发领域,Android Studio凭借其强大的功能成为Android开发者的首选IDE。本文将揭示一些提升开发效率的高级技巧,包括自定义代码模板、重构工具、高级调试技巧及多模块架构。通过对比传统方法,这些技巧不仅能简化编码流程,还能显著提高生产力。例如,自定义模板可一键插入常用代码块;重构工具能智能分析并安全执行代码更改;高级调试技巧如条件断点有助于快速定位问题;多模块架构则提升了大型项目的可维护性和团队协作效率。掌握这些技巧,将使你的开发之旅更加高效与愉悦。
47 5
|
2月前
|
编解码 Android开发
【Android Studio】使用UI工具绘制,ConstraintLayout 限制性布局,快速上手
本文介绍了Android Studio中使用ConstraintLayout布局的方法,通过创建布局文件、设置控件约束等步骤,快速上手UI设计,并提供了一个TV Launcher界面布局的绘制示例。
37 1
|
2月前
|
Java Android开发 Windows
使用keytool查看Android APK签名
本文介绍了如何使用Windows命令行工具和keytool查看APK的签名信息,并提供了使用AOSP环境中的signapk.jar工具对APK进行系统签名的方法。
70 0
使用keytool查看Android APK签名
|
2月前
|
Android开发
Android Studio: 解决Gradle sync failed 错误
本文介绍了解决Android Studio中出现的Gradle同步失败错误的步骤,包括从`gradle-wrapper.properties`文件中获取Gradle的下载链接,手动下载Gradle压缩包,并替换默认下载路径中的临时文件,然后重新触发Android Studio的"Try Again"来完成同步。
388 0
Android Studio: 解决Gradle sync failed 错误
|
2月前
|
Java Android开发 芯片
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
本文介绍了如何将基于全志H713芯片的AOSP Android源码导入Android Studio以解决编译和编码问题,通过操作步骤的详细说明,展示了在Android Studio中利用代码提示和补全功能快速定位并修复编译错误的方法。
48 0
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
|
2月前
|
API 开发工具 Android开发
Android Studio:解决AOSP自编译framework.jar引用不到的问题
在Android Studio中解决AOSP自编译framework.jar引用问题的几种方法,包括使用相对路径、绝对路径和通过`${project.rootDir}`动态获取路径的方法,以避免硬编码路径带来的配置问题。
43 0
Android Studio:解决AOSP自编译framework.jar引用不到的问题
|
2月前
|
Java 开发工具 Android开发
Android Studio利用Build.gradle导入Git commit ID、Git Branch、User等版本信息
本文介绍了在Android Studio项目中通过修改`build.gradle`脚本来自动获取并添加Git的commit ID、branch名称和用户信息到BuildConfig类中,从而实现在编译时将这些版本信息加入到APK中的方法。
44 0
|
5月前
|
Android开发 开发者
Android Split APK介绍
【2月更文挑战第5天】