禁用Android资源/图片/ PNG优化

Mar*_* B. 19 android android-build android-image android-resources

如何防止Android"构建过程"优化.png图像?

我有一个包含以下res目录的Android项目:

- /res/
- /res/drawable
- /res/drawable-hdpi
- /res/drawable-hdpi-v5
- /res/drawable-ldpi
- /res/drawable-ldpi-v5
- /res/drawable-mdpi
- /res/drawable-mdpi-v5
Run Code Online (Sandbox Code Playgroud)

这些目录包含许多.png文件.我使用PNGOUTWin优化PNG尺寸,整体尺寸减少了20%以上.当我构建.apk文件时,图像由构建过程"优化",整体大小现在比初始大小高10%,或者比我的/ PNGOUTWin优化大小高30%.

我的目标是减小.apk大小,即使它会影响最终性能,内存要求等.如何防止"构建过程"优化.png图像?

我的目标是Android 2.2及更高版本.

PS:我目前正在从Eclipse构建我的Android项目,但我稍后会切换到自动构建(Ant?).

关于JPG图像的注意事项: JPG不起作用,因为它们没有透明度.

Chr*_*isG 33

最后有一种官方的方法来禁用使用Gradle的PNG cruncher,这里还没有提到:

  1. 编辑main build.gradle以要求gradle版本1.1.3(或更新版本):

    buildscript {  
        repositories {  
            mavenCentral()  
        }  
        dependencies {  
            classpath 'com.android.tools.build:gradle:1.1.3'  
        }  
    }  
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在各个应用程序的build.gradle中,部分为android {},插入:

    aaptOptions {  
        cruncherEnabled = false  
    }  
    
    Run Code Online (Sandbox Code Playgroud)

参考:https: //code.google.com/p/android/issues/detail?id = 65335

  • 是否可以仅用于调试构建?也许它可以减少构建时间 (2认同)

pRa*_*NaY 16

指定PNG运算现在是一个BuildType属性,默认情况下在调试版本中被禁用:

android {
    …
    buildTypes {
        release {
            crunchPngs false // or true
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

注意:它可以从Android Studio 3.0 Canary 5获得.


Vin*_*tti 2

正如 Android 文档中所述:http://developer.android.com/guide/topics/graphics/2d-graphics.html#drawables

注意:放置在 res/drawable/ 中的图像资源可能会在构建过程中由 aapt 工具通过无损图像压缩自动优化。例如,不需要超过 256 色的真彩色 PNG 可以通过调色板转换为 8 位 PNG。这将产生同等质量的图像,但需要更少的内存。因此请注意,放置在该目录中的图像二进制文件可能会在构建过程中发生更改

因此,如果您想减小应用程序的大小,您应该减小 PNG 文件的颜色深度(这很有帮助),或者尽可能切换到 .JPG 文件。

  • 这个答案根本没有回答问题,我不明白它是如何被接受的 (6认同)