生成从 Android Studio 签名的 .apk 时,zipalign 会自动执行吗?
Posted
技术标签:
【中文标题】生成从 Android Studio 签名的 .apk 时,zipalign 会自动执行吗?【英文标题】:Does zipalign execute automatically when a .apk is generated as signed from Android Studio? 【发布时间】:2015-09-02 04:41:16 【问题描述】:我想知道为 release 生成签名 .apk 的方法是否也对 apk 进行压缩对齐。在 android 页面 (http://developer.android.com/tools/publishing/app-signing.html#studio) 的方向上,尚不清楚 zipalign 是否是不同的步骤。
谢谢!
【问题讨论】:
【参考方案1】:您可以在 build.gradle 文件中定义构建类型。
buildTypes
debug
storeFile file("debug.keystore")
release
zipAlignEnabled true
调试 apk 时使用调试配置,创建发布 apk 时使用发布配置。
如果您在发布时将 zipAlignEnabled 设置为 true,则 apk 将被压缩对齐。如果不指定,则发布时默认值为 true,apk 将自动进行 zipalign。对于调试,默认值为 false。
详细了解构建类型和您可以在此处设置的其他可能属性:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Types
【讨论】:
所以我已经从 android studio 生成了一个带有密码和 KeyStrore 的签名 .apk ,发布的 .apk 已保存在一个路径中,所以如果我是正确的 .apk 是 singed 和 zipaligned 吗? 是的。如果您在导出 apk 时在向导中选择“发布”作为构建类型。 我刚刚完成了构建 --> 生成 singed apk 并按照向导进行操作!我想我选择了 release !那么我准备好发布应用了吗? 是的!你应该在这里阅读整个过程:developer.android.com/tools/publishing/app-signing.html#studio【参考方案2】:Android 构建工具可以为您处理这个问题。 Android Studio 会自动对齐您的 APK。
使用以下命令确认existing.apk的对齐方式:
zipalign -c -v <alignment> existing.apk
是一个定义字节对齐边界的整数。这必须始终为 4(提供 32 位对齐),否则它实际上什么都不做。
标志:
-f : 覆盖现有的 outfile.zip -v :详细输出 -p : outfile.zip 应该对 infile.zip 中的所有共享对象文件使用相同的页面对齐方式 -c : 确认给定文件的对齐方式
Zipalign
【讨论】:
以上是关于生成从 Android Studio 签名的 .apk 时,zipalign 会自动执行吗?的主要内容,如果未能解决你的问题,请参考以下文章