Android Studio利用Gradle删除没有使用到的资源和代码文件
来源:互联网 发布:儿童编程机构 编辑:程序博客网 时间:2024/05/16 06:31
一、打包时忽略无用资源
我们在打包的时候默认会把没有用到的资源(比如图片)也打包成app,徒增了应用的大小。现在我们可以利用Gradle来优雅的去除没有用到的资源文件了!
就是在gradle中配置shrinkResources true。这个东西依赖于minifyEnabled,所以minifyEnabled也要为true才行。
官方推荐在正式版中这么写:
android { buildTypes { release { minifyEnabled true shrinkResources true } } }
buildTypes { debug { minifyEnabled true shrinkResources true } release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }
二、打包时忽略无用的代码
我目前的需求是很多工具类都在一个lib中,但我平常只用到lib中的几个类,所以希望生成apk的时候自动拍出lib中没有用到的类。于是我想到了下面的办法:
我首先在debug模式下配置一下,在debug时也进行混淆,并且自定义了混淆的配置文件debug-proguard-rules.pro
buildTypes { debug { minifyEnabled true // 是否混淆 shrinkResources true // 是否去除无效的资源文件 proguardFiles getDefaultProguardFile('proguard-android.txt'),'debug-proguard-rules.pro' } release { minifyEnabled true // 是否混淆 shrinkResources true // 是否去除无效的资源文件 // 混淆的配置文件 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }
此外,你混淆的时候也会对你的代码进行优化,比如我写了下面一个判断intent的方法:
public static boolean isBundleEmpty(Intent intent) { if (intent != null) { if (intent.getExtras() == null){ return true; } } return false; }
public static boolean a(Intent paramIntent) { return (paramIntent == null) && (paramIntent.getExtras() == null); }
1 0
- Android Studio利用Gradle删除没有使用到的资源和代码文件
- Android Studio利用Gradle删除没有使用到的资源和代码文件
- Android Studio利用Gradle删除没有使用到的资源和代码文件
- Android Studio利用Gradle删除没有使用到的资源和代码文件
- Android Studio利用Gradle删除没有使用到的资源和代码文件
- Android Studio利用Gradle删除没有使用到的资源和代码文件
- Android Studio利用Gradle删除没有使用到的资源文件
- Android Studio删除工程里面无用的代码和资源
- 利用Android studio 删除项目中无用资源文件
- Android Studio删除无用的资源文件
- Android Studio删除无用的资源文件
- Android Studio 利用Gradle来混淆代码
- Gradle 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
- Gradle 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
- Gradle 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
- android studio 如何清理没有用到的资源文件
- 使用Android Studio 查找并删除无用的资源文件(包括drawable里面)
- android删除未使用的资源文件
- 广播的分类,注册,本地广播
- SharedPreferences
- TMS320C6455之DDR2内存控制器
- mapreduce的结果写入到mysql中
- 按回车键是动态生成的input文本框焦点自动移动到下一个
- Android Studio利用Gradle删除没有使用到的资源和代码文件
- 2016年重大事件记录
- php中curl、fsocket、file_get_content三个函数的使用比较
- 每多变幻
- PHP超时处理全面总结
- DatePicker学习
- 状态模式(设计模式_18)
- PHP 发邮件email
- 合法练习黑客技术?这15个网站也许可以帮到你