Gradle for Android(二)全局设置、自定义BuildConfig、混淆
来源:互联网 发布:软件开发过程文档 编辑:程序博客网 时间:2024/05/16 16:22
系列博客
Gradle for Android(一)基本配置、依赖管理
Gradle for Android(三)多渠道打包、配置签名信息
全局设置
如果有很多项目,可以设置全局来统一管理版本号或依赖库,根目录下build.gradle下:
123456
ext {compileSdkVersion = 23buildToolsVersion = "23.0.2"minSdkVersion = 14targetSdkVersion = 23}
app/build.gradle
1234567891011
android {compileSdkVersion rootProject.ext.compileSdkVersionbuildToolsVersion rootProject.ext.buildToolsVersiondefaultConfig {applicationId "com.wuxiaolong.gradle4android"minSdkVersion rootProject.ext.minSdkVersiontargetSdkVersion rootProject.ext.targetSdkVersionversionCode 1versionName "1.0"}
可以在根目录下建个config.gradle,然后只需在根目录下build.gradle最顶部加上下面一行代码,然后同步下,意思就是所有的子项目或者所有的modules都可以从这个配置文件里读取内容。
1
apply from: "config.gradle"
config.gradle
12345678910111213141516
ext {android = [compileSdkVersion: 23,buildToolsVersion: "23.0.2",minSdkVersion : 14,targetSdkVersion : 22,]dependencies = [appcompatV7': 'com.android.support:appcompat-v7:23.2.1',design : 'com.android.support:design:23.2.1']}
app/build.gradle
1234567891011121314151617181920
android {compileSdkVersion rootProject.ext.android.compileSdkVersionbuildToolsVersion rootProject.ext.buildToolsVersiondefaultConfig {applicationId "com.wuxiaolong.gradle4android"minSdkVersion rootProject.ext.android.minSdkVersiontargetSdkVersion rootProject.ext.android.targetSdkVersionversionCode 1versionName "1.0"}...dependencies {compile fileTree(dir: 'libs', include: ['*.jar'])testCompile 'junit:junit:4.12'compile rootProject.ext.dependencies.appcompatV7compile rootProject.ext.dependencies.design}
自定义BuildConfig
实际开发中服务器可能有正式环境和测试环境,gradle可以通过buildConfigField来配置。
123
defaultConfig {buildConfigField 'String','API_SERVER_URL','"http://wuxiaolong.me/"'}
buildConfigField 一共有3个参数,第一个是数据类型,和Java的类型是对等的;第二个参数是常量名,这里是API_SERVER_URL;第三个参数就是你要配置的值。
如图路径下就有个常量API_SERVER_URL,如何在代码取得这个常量值:
1
Log.d("wxl", "API_SERVER_URL=" + BuildConfig.API_SERVER_URL);
启用proguard混淆
一般release发布版本是需要启用混淆的,这样别人反编译之后就很难分析你的代码,而我们自己开发调试的时候是不需要混淆的,所以debug不启用混淆。对release启用混淆的配置如下:
12345678910
android {buildTypes {release {minifyEnabled true//是否启动混淆shrinkResources true //是否移除无用资源文件,shrinkResources依赖于minifyEnabled,必须和minifyEnabled一起用proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}}
minifyEnabled为true表示启用混淆,proguardFile是混淆使用的配置文件,这里是module根目录下的proguard-rules.pro文件
关于作者
点击查看
完整配置
https://github.com/WuXiaolong/Gradle4Android
0 0
- Gradle for Android(二)全局设置、自定义BuildConfig、混淆
- Gradle for Android(二)全局设置、自定义BuildConfig、混淆
- Gradle for Android(二)全局设置、自定义BuildConfig、混淆
- Gradle for Android(二)全局设置、自定义BuildConfig、混淆
- 全局设置、自定义BuildConfig
- Gradle全局变量设置、自定义BuildConfig
- Gradle自定义BuildConfig
- BuildConfig:Gradle自定义你的BuildConfig
- BuildConfig:Gradle自定义你的BuildConfig
- BuildConfig:Gradle自定义你的BuildConfig
- BuildConfig:Gradle自定义你的BuildConfig
- Android Studio - 使用Gradle自定义你的BuildConfig
- Gradle自定义你的BuildConfig
- Gradle自定义你的BuildConfig
- Gradle自定义你的BuildConfig
- GRADLE自定义你的BUILDCONFIG
- Gradle for Android(二)
- Android Gradle BuildConfig的妙用
- 99%的人都理解错了HTTP中GET与POST的区别
- webstorm上svn的安装使用
- Android onTouch 事件
- 推荐系统实践学习笔记(二):代码实现
- org.hibernate.TransientObjectException解决办法
- Gradle for Android(二)全局设置、自定义BuildConfig、混淆
- 详解Android中Intent的使用方法
- java 学习 001 --java sdk 环境配置
- ios开发——iPhone屏幕尺寸、分辨率及适配
- Linux记录锁
- 微信公众号推送模板消息
- 关于css样式总结
- android 字符串截取
- 经常使用到的20个正则表达式