Gradle for Android
详细看http://wuxiaolong.me/2016/03/30/gradle4android1/
特此记录之
apply plugin: ‘com.android.application’,表示该module是一个app module,应用了com.android.application插件,如果是一个android library,那么这里写apply plugin: ‘com.android.library’
compileSdkVersion:基于哪个SDK编译,这里是API LEVEL
buildToolsVersion:基于哪个构建工具版本进行构建的。
defaultConfig:默认配置,如果没有其他的配置覆盖,就会使用这里的。
applicationId:配置包名的
versionCode:版本号
versionName:版本名称
buildTypes是构建类型,常用的有release和debug两种,可以在这里面启用混淆,启用zipAlign以及配置签名信息等。
dependencies:不属于Android专有的配置了,它定义了该module需要依赖的jar,aar,jcenter库信息。
根目录的build.gradle ----定义在这个工程下的所有模块的公共属性
全局设置:
如果有很多项目,可以设置全局来统一管理版本号或依赖库,根目录下build.gradle下:
ext {
compileSdkVersion =23
buildToolsVersion ="23.0.2"
minSdkVersion =14
targetSdkVersion =23
}
app/build.gradle
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig {
applicationId "com.wuxiaolong.gradle4android"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
}
可以在根目录下建个config.gradle,然后只需在根目录下build.gradle最顶部加上下面一行代码,然后同步下,意思就是所有的子项目或者所有的modules都可以从这个配置文件里读取内容。
applyfrom:"config.gradle"
config.gradle
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
android {
compileSdkVersion rootProject.ext.android.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig {
applicationId"com.wuxiaolong.gradle4android"
minSdkVersion rootProject.ext.android.minSdkVersion
targetSdkVersion rootProject.ext.android.targetSdkVersion
versionCode1
versionName"1.0"
}
...
dependencies{
compilefileTree(dir:'libs',include: ['*.jar'])
testCompile'junit:junit:4.12'
compilerootProject.ext.dependencies.appcompatV7
compilerootProject.ext.dependencies.design
}
自定义BuildConfig
实际开发中服务器可能有正式环境和测试环境,gradle可以通过buildConfigField来配置。
defaultConfig{
buildConfigField'String','API_SERVER_URL','"http://wuxiaolong.me/"'
}
buildConfigField 一共有3个参数,第一个是数据类型,和Java的类型是对等的;第二个参数是常量名,这里是API_SERVER_URL;第三个参数就是你要配置的值。
如何在代码取得这个常量值:
Log.d("wxl","API_SERVER_URL="+ BuildConfig.API_SERVER_URL);