这套模版,汇集了常见的gradle配置,大家可以根据自己需要,选择性使用
apply plugin: 'com.android.application'
android {
//SDK和编译工具版本
compileSdkVersion 27
buildToolsVersion '28.0.3'
defaultConfig {
//兼容的设备版本
minSdkVersion 23
targetSdkVersion 27
//应用ID和版本
applicationId 'com.easing.test'
versionCode 1
versionName '1.1.1.935'
//开启注解处理器
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath = true
}
}
//Java语法版本,默认为Java7,很多时候需要用到Java8的特性
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
//支持的CPU指令集,用到jni时需要设置
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a'
}
}
//第三方库配置
greendao {
schemaVersion 2019051201
}
//加载指定位置的so库,用到jni时需要设置
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
//编译jni目录生成so文件
//如果编译的so文件已经放到libs文件夹下,需要注释此配置,否则会出现so库冲突
externalNativeBuild {
ndkBuild {
path 'src/jni/Android.mk'
}
}
//签名配置
signingConfigs {
aodun {
keyAlias 'aodun'
keyPassword 'aodun2012'
storeFile file('aodun.jks')
storePassword 'aodun2012'
}
}
//打包配置
buildTypes {
debug {
debuggable true
zipAlignEnabled true
shrinkResources false
minifyEnabled false
//混淆配置
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
//使用签名
signingConfig signingConfigs.aodun
//APK名称
applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "animal-v${defaultConfig.versionName}-debug-${releaseTime()}.apk"
}
}
//定义配置变量,编译后可以在代码中通过BuildConfig类使用
buildConfigField "String", "releaseDate", '"2019年05月12日"'
buildConfigField "String", "releaseContent", '"修改了应用主页图标"'
//替换manifest中的变量
manifestPlaceholders = [
appName : "animal-debug",
dbVersion: 2019051201
]
}
release {
debuggable true
zipAlignEnabled true
shrinkResources true
minifyEnabled true
//混淆配置
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules-.pro'
//使用签名
signingConfig signingConfigs.aodun
//APK名称
applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "animal-v${defaultConfig.versionName}-release-${releaseTime()}.apk"
}
}
//定义配置变量,编译后可以在代码中通过BuildConfig类使用
buildConfigField "String", "releaseDate", '"2019年05月12日"'
buildConfigField "String", "releaseContent", '"修改了应用主页图标"'
//替换manifest中的变量
manifestPlaceholders = [
appName : "animal-debug",
dbVersion: 2019051201
]
}
}
//多渠道打包,使用不同配置
productFlavors {
xiaomi {
applicationId "com.easing.test.xiaomi"
versionCode 1
versionName "1.1.1"
manifestPlaceholders = [
channel: "xiaomi"
]
}
huawei {
applicationId "com.easing.test.huawei"
versionCode 2
versionName "2.1.1"
manifestPlaceholders = [
channel: "huawei"
]
}
}
//禁用Lint代码警告,可以屏蔽一些非必要的代码警告
lintOptions {
disable 'NewApi'
}
//展开aar资源,用到aar库时需要设置
repositories {
flatDir {
dirs 'libs'
}
}
}
//全局排除冲突库
configurations {
compile.exclude group: 'com.android.support'
compile.exclude group: 'com.android.support', module: 'design'
}
//库依赖
dependencies {
//排除单个引用的部分库
api project(':android-commons') {
exclude group: 'com.android.support', module: 'design'
}
api files('libs/easy-rtsp-to-rtmp.aar')
api files('libs/baidumap-overlayutil.jar')
api 'org.greenrobot:greendao:3.2.2'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
}
//定义方法
def releaseTime() {
return new Date().format("MMdd")
}