shrinkResources设置为true,但未删除所有未使用的资源(特别是drawable)

时间:2015-12-17 14:30:43

标签: android gradle apk shrinkresources

我将shrinkResources设置为true,如下所示:

releasepro {
    minifyEnabled true
    shrinkResources true
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    applicationIdSuffix ".pro"
}

但这只是删除了一些未使用的资源。我知道gradle做了一些猜测,并留下了不确定未使用的资源。有没有办法100%删除所有未使用的资源?

我读过在另一个线程中将shrinkMode设置为strict。这会有帮助吗?我无法尝试,因为我无法确定设置它的位置。查看示例和文档,但遗憾的是无法访问正确的页面。

有没有办法确保100%删除未使用的资源?

2 个答案:

答案 0 :(得分:5)

R.raw.Keep(xml文件)

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
    tools:shrinkMode="strict" />

别忘了从.java源文件中引用此资源。有关详细信息,请参阅this

如果您担心apk文件的大小,那么缩小图像文件的良好做法也是如此。 即将RGB通道转换为索引通道,这可以节省多达50%的空间。

使用此网站缩小图片media4x.com

答案 1 :(得分:1)

  

要关闭安全检查,请将shrinkMode设置为“strict”,如以下keep.xml文件所示:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
    tools:shrinkMode="strict" />

来自:http://tools.android.com/tech-docs/new-build-system/resource-shrinking