【问题标题】:Does zipalign execute automatically when a .apk is generated as signed from Android Studio?生成从 Android Studio 签名的 .apk 时,zipalign 会自动执行吗?
【发布时间】:2015-09-02 04:41:16
【问题描述】:

我想知道为 release 生成签名 .apk 的方法是否也对 apk 进行压缩对齐。在 android 页面 (http://developer.android.com/tools/publishing/app-signing.html#studio) 的方向上,尚不清楚 zipalign 是否是不同的步骤。

谢谢!

【问题讨论】:

    标签: android 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

    【讨论】:

      猜你喜欢
      • 2013-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-05
      • 2017-05-10
      相关资源
      最近更新 更多