由于 APK 文件只是一个 Zip 文件,具有不同的扩展名和一些元参数,因此似乎有一种方法可以更改文件的压缩级别。
只是为了验证 Eclipse 没有以最高压缩级别导出,我尝试自己打包 APK 的内容,压缩级别设置为通过 winrar,我减少了 20%,
大约 1 MB .
在不删除元数据的情况下,我找不到任何简单的方法来安全地重新打包 APK 。我试过 7zip、aapt、apktool。
您可以使用以下 ant 任务重新打包 apk:
<target name="-post-package">
<exec executable="${z7zip}">
<arg value="x"/>
<arg value="-o${out.dir}/TempApk"/>
<arg value="${out.packaged.file}"/>
</exec>
<delete file="${out.packaged.file}" verbose="${verbose}"/>
<exec executable="${z7zip}" dir="${out.dir}/TempApk">
<arg value="a"/>
<arg value="-tzip"/>
<arg value="-mx9"/>
<arg value="-r"/>
<arg value="${out.packaged.file}"/>
<arg value="*.*"/>
</exec>
<delete dir="${out.dir}/TempApk" verbose="${verbose}" />
它使用 7zip。7zip 的路径应该在 local.properties 中:
z7zip=C:\\Program Files\\7-Zip\\7z.exe
它提供了大约 15% 的更好压缩。当然,您可以使用任何其他工具或手动执行这些命令行来重新打包您的 apk。