Home » Android » android – Export signed app without "optimizing" png images

android – Export signed app without "optimizing" png images

Posted by: admin June 15, 2020 Leave a comment

Questions:

When I export an apk from eclipse, it compresses all of the png images. For example, one 4.6 KB png became 2.15 KB inside the apk. However I prefer to optimize png files using tinypng before the apk is built, which makes much smaller files. The same 4.6 KB png became 746 B using tinypng.
When building the apk, compression ran on my 746 B png making it 1.6 KB.

Is there any way to disable this optimization for future builds?

How to&Answers:

In your project build.xml ANT file you can override the -crunch task of the SDK, thus avoiding PNG compression, as you previously compressed them:

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

Answer:

Google recently introduced a new PNG processor in aapt 0.9.1 in the Android SDK Build Tools that fixes this issue of increased PNG sizes after aapt optimization.

With this update, it is now possible for Android Studio and Gradle to switch between the PNG processors with the following change in your build.gradle configuration file:

android {
    ...
    aaptOptions.useAaptPngCruncher = false
}

By adding this line, aapt uses the new PNG processor in which it checks to see if the “optimized” PNG files are smaller than the original PNG files. I was able to reduce 4.8 MB in my compiled APK and have not encountered any bugs/issues with the new build configuration.

Answer:

Since Gradle Android plugin 1.0.0:

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

Answer:

Change the image file extension. For example: renaming someImage.png to someImage.jet worked for me. You can try this.

Answer:

Optimize the files using tinypng before importing them into the project.