使用Gradle精简资源
在前面,笔者提到了minifyEnabled指令,该指令用于对Android App进行混淆。其实,minifyEnabled指令不仅可以对代码进行混淆,而且该指令还可以对代码进行优化、精简。同时配合shrinkResources指令,还可以清除项目工程中无效的资源文件,从而进一步精简APK文件。但有一点需要注意的是,shrinkResources指令是依赖于minifyEnabled指令的,只有当minifyEnabled指令启用时,shrinkResources指令才能生效,示例代码如下所示。
- android {
- ……
- buildTypes {
- release {
- minifyEnabled true
- shrinkResources true
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
- }
- }
- }
另外,在Android Studio中,IDE也提供了一个快捷指令来直接进行资源精简。使用快捷键“Command+Shift+A”就可以调出快捷指令输入框,输入“remove unused resources”即可执行该指令,其效果与shrinkResources类似,如图4.38所示。
图4.38 Remove Unused Resources
使用这两种方式来进行资源清理,可以很大程度地减少垃圾资源的占用。但要注意的是这两种检测资源的方式属于静态检测,一些动态加载的资源是无法检测的,注意不要误删。
