android - 如何正确使用资源收缩来减小APK大小?

标签 android android-gradle-plugin apk

我的主要目标是从 apk 中删除未使用的资源和库,以便减小它的大小。我发现Resource Shrinking当我浏览this时所以帖子。

所以我将我的 gradle 文件更改为:

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"
    defaultConfig {
        applicationId 'com.galleri5.android'
        multiDexEnabled true
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 12
        versionName "0.10"
    }
    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

为了检查这是否有效,我生成了 apk,apk 的大小与以前相同,没有缩小。因此,我尝试通过运行以下命令查看是否/哪些资源被删除:

./gradlew clean assembleDebug --info | grep "Skipped unused resource"

这是我得到的输出:

Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar 
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar

我没有看到资源被删除。我是否做错了什么或者我完全误解了这个工具?任何帮助将不胜感激。谢谢。

编辑 我只是检查使用上述配置运行应用程序后生成的 apk(apk-debug.apk) 的大小。当我生成签名的 apk 时是否会发生收缩,或者它在普通的 apk 中也可见吗?

最佳答案

资源缩减只会发生在您的发布版本中,因为这是您在 build.gradle 中指定的。如果您想在调试版本中进行缩小,您可以将以下闭包添加到 buildTypes 中,但通常不会这样做。

buildTypes {
    debug {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

关于android - 如何正确使用资源收缩来减小APK大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33852977/

相关文章:

android - 软键盘覆盖 EditText

java - android fragment 的最佳实践?

Android 支持库不兼容

android - LocalBroadcastManager 是否依赖于应用程序包名称?

android - 有没有办法在 Android Gradle 项目中只运行一组特定的仪器测试?

android - 应用程序未安装错误

android - 使用 Android NDK 调用嵌套函数后应用程序被挂起

java - 将Google Play服务添加到项目后,错误: Conversion to Dalvik format failed

Android Studio 发布签名 apk :app:transformClassesAndResourcesWithProguardForRelease java. io.IOException

android - 64K 方法计数超出错误,接近 62.5K 方法引用计数