android - 从命令行构建 APK 后运行 zipalign 和 zopfli 重新压缩以使其更小

标签 android android-gradle-plugin zipalign zopfli

Google Developers' article 中所述, 现在可以通过运行 zipalign -z 使用 zopfli 重新压缩 APK 文件.在我的例子中,5.1 MB 的 APK 文件减少了 200 KB。

通常我使用自定义 shell 脚本构建 APK,方法是运行 gradle assembleRelease .

我要运行 zipalign -z <the final apk>在上面的命令之后。然而,zipalign位于 build-tools/<build tools version>目录,我无法找到它,除非拉出 <build tools version>来自 build.gradle文件并手动构建路径。

是否可以运行 zipalign使用 gradle自动运行 zipalign 的命令在正确的build-tools目录而不需要我重新构建路径?

例如 gradle runBuildTools zipalign -z $FINAL_APK $FINAL_APK.out 这样的命令

最佳答案

article您链接到的已使用 gradle 任务更新,以将 zopfli 压缩添加到 assembleRelease 任务的末尾。

//add zopfli to variants with release build type
android.applicationVariants.all { variant ->
  if (variant.buildType.name == 'release') {
    variant.outputs.each { output ->
        output.assemble.doLast {
            println "Zopflifying... it might take a while"
            exec {
                commandLine output.zipAlign.zipAlignExe,'-f','-z', '4', output.outputFile.absolutePath , output.outputFile.absolutePath.replaceAll('\\.apk$', '-zopfli.apk')
            }
        }
    }
  }
}

关于android - 从命令行构建 APK 后运行 zipalign 和 zopfli 重新压缩以使其更小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35570114/

相关文章:

android - 数据绑定(bind)失败并出现 NoSuchMethodError

android - 无法从github运行演示android项目

linux - 无法使用 apktool kali linux 重建 apk

android - 用于从 android 检索包含整数数组的参数的 mySql 代码

android - AndroidX Core v1.5.0-alpha02 中的 WindowInsetsCompat

Android:视频编码 H.264 和设置帧率不起作用

android - 在不同的 Activity 中通过 Android 应用程序使用 mysql lite 和 Web 服务或其他请求

android - 我无法解析符号 'maps' java android

android - 应用程序不断停止(仅在Azure DevOps的apk上)?

android - 为属性 'inputFile' 指定的 app-debug-unaligned.apk 不存在