2014-03-06 51 views
8

当我从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。导出签名的应用程序没有“优化”PNG图像

有什么办法可以禁用未来版本的优化?

+0

此链接可以帮助你:) http://stackoverflow.com/questions/12929884/disable-android-resource-image-png优化 –

回答

6

在项目build.xml ANT文件可以覆盖-crunch任务的SDK,从而避免PNG压缩,因为你以前压缩他们:

<target name="-crunch"> 
    <echo message="Skipping PNG optimization"/> 
</target> 
+0

谢谢,但我没有使用ANT,请告诉我如何创建这个build.xml文件并使用ANT构建项目? – Minas

+1

例如,您可以将'android-support-v7-appcompat'中的一个复制到项目的根文件夹中,并使用覆盖目标对其进行调整。如果你正在使用ADT,把这个调优过的'build.xml'文件移到ANT视图,打开它来检查所有的目标,并运行'release'。 –

-1

在将它们导入项目之前,使用tinypng优化文件。

+0

我在导入前做了优化。我的问题是它再次被压缩(这使得png在这种情况下更大),所以我试图禁用它。 – Minas

+1

@Minas,你应该在你的问题中提出你的评论,然后它会完全清除问题。 – Farhan

4

谷歌最近在Android SDK构建工具推出了new PNG processor in aapt 0.9.1那修复了优化后的PNG大小增加问题。

安装此更新,现在可以为Android Studio和摇篮到PNG处理器之间有以下变化在build.gradle配置文件切换:

android { 
    ... 
    aaptOptions.useAaptPngCruncher = false 
} 

通过加入这一行,AAPT使用新的PNG处理器,用于检查“优化的”PNG文件是否小于原始PNG文件。我能够在编译的APK中减少4.8 MB,并且没有遇到任何新构建配置的错误/问题。

+0

很高兴知道!谢谢。我仍然在使用Eclipse和ant。当我切换到Android Studio&Gradle – Minas

+3

时使用此选项现在(Gradle Android插件1.0.0-rc1)该选项的名称已更改为'aaptOptions.useNewCruncher',逻辑反转,即设置'aaptOptions.useNewCruncher = false'将禁用新的PNG压缩器。 – sschuberth

+0

从Android Studio 1.0和Gradle 1.0.0开始,此选项似乎不起作用。我所有已经优化过的PNG文件仍在进行重新处理,导致PNG文件比原始PNG文件大10-15%。 –

2

更改图片文件扩展名。例如:重命名someImage.pngsomeImage.jet为我工作。你可以试试这个。

3

由于摇篮Android插件1.0.0:

android { 
... 
    aaptOptions { 
    useNewCruncher false 
    } 
.... 
}