Android Studio利用Gradle删除没有使用到的资源文件

我们在打包的时候默认会把没有用到的资源(比如图片)也打包成app,徒增了应用的大小。现在我们可以利用Gradle来优雅的去除没有用到的资源文件了!

就是在gradle中配置shrinkResources true。这个东西依赖于minifyEnabled,所以minifyEnabled也要为true才行。

 

官方推荐在正式版中这么写:

android {
        buildTypes {
            release {
                minifyEnabled true
                shrinkResources true
            }
        }
    }

如果你觉得debug包也太大,可以按照下面的方式写:

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

  我通过测试确实可以大大减少应用的大小,但也发现了一个问题,很多没有用到的类还是会被打包进去。比如你用了lib,lib里有很多很多类,你可能就用到了一个类,但却把lib中的所有类都打包了进去,很不合理。而且因为去除无效代码的功能要依赖于混淆,混淆又是一个耗时的操作,还是没有彻底解决打包慢的问题。

你可能感兴趣的:(Android Studio利用Gradle删除没有使用到的资源文件)