由于APK文件只是一个具有不同扩展名和少量meta参数的Zip文件,因此似乎有办法更改文件的压缩级别。
只是为了验证Eclipse没有以最高压缩级别导出,我试图通过winrar将压缩级别设置为自己打包APK的内容,并且我得到了减少占20% 约1 MB。
我无法在不删除metadata的情况下找到安全重新打包APK的简单方法。我试过7zip,aapt,apktool。
答案 0 :(得分:3)
您可以使用以下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。