当我从eclipse导出apk时,它会压缩所有png图像。例如,apk中的一个4.6 KB png变为2.15 KB。但是我更喜欢在构建apk之前使用tinypng来优化png文件,这会产生更小的文件。使用tinypng,相同的4.6 KB png变为746 B. 在构建apk时,压缩在我的746 B png上运行,使其达到1.6 KB。
有没有办法为将来的构建禁用此优化?
答案 0 :(得分:6)
在您的项目build.xml
ANT文件中,您可以覆盖SDK的-crunch
任务,从而避免PNG压缩,就像您之前压缩它们一样:
<target name="-crunch">
<echo message="Skipping PNG optimization"/>
</target>
答案 1 :(得分:4)
Google最近在Android SDK Build Tools中引入了new PNG processor in aapt 0.9.1,修复了aapt优化后增加PNG大小的问题。
通过此更新,Android Studio和Gradle现在可以在PNG处理器之间切换,并在build.gradle
配置文件中进行以下更改:
android {
...
aaptOptions.useAaptPngCruncher = false
}
通过添加此行,aapt使用新的PNG处理器,在其中检查“优化的”PNG文件是否小于原始PNG文件。我在编译好的APK中减少了4.8 MB,并且没有遇到任何新构建配置的错误/问题。
答案 2 :(得分:3)
自Gradle Android插件1.0.0:
android {
...
aaptOptions {
useNewCruncher false
}
....
}
答案 3 :(得分:2)
更改图像文件扩展名。例如:将 someImage.png 重命名为 someImage.jet 为我工作。你可以试试这个。
答案 4 :(得分:-1)
在将文件导入项目之前使用tinypng优化文件。