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



正如谷歌开发者文章中提到的,现在可以通过运行 zipalign -z 来使用 zopfli 重新压缩 APK 文件。就我而言,在 200 MB APK 文件上观察到 5.1 KB 的减少。

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

我想在上述命令之后运行zipalign -z <the final apk>。但是,zipalign位于build-tools/<build tools version>目录中,除非从build.gradle文件中提取<build tools version>并手动构造路径,否则我找不到它。

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

例如,命令,如 gradle runBuildTools zipalign -z $FINAL_APK $FINAL_APK.out

您链接到的文章已使用 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')
            }
        }
    }
  }
}

最新更新