随着Google不再支持Eclipse开发工具,AndroidStudio将成为Android开发的主流开发工具,将Gradle文件配置信息的含义总结如下:
定义当前Module的类型(xxxx为application则Module是程序,为 library的话是库):
apply plugin: 'com.android.xxxx'
android {
compileSdkVersion xx:xx为编译的SDK版本
buildToolsVersion "xx":xx为编译的Tools版本
defaultConfig {:默认配置
applicationId "xxxxxxxx":xxxxxxxx为应用程序的包名
minSdkVersion xx:xx为支持的最低版本
targetSdkVersion xx:xx为支持的目标版本
versionCode x:x当前版本号
versionName "xx":xx为当前版本名
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner":自动化测试
}
sourceSets {:目录指向配置(这个一般是eclipse工程转AS时会出现,因为eclipse的目录结构不是这样的,而AS目录结构符合
/src/main/java的gradle目录结构,所以编译会走默认的)main {
manifest.srcFile 'AndroidManifest.xml':指定AndroidManifest文件
java.srcDirs = ['src']:指定source目录
resources.srcDirs = ['src']:指定source目录
aidl.srcDirs = ['src']:指定source目录
renderscript.srcDirs = ['src']:指定source目录
res.srcDirs = ['res']:指定资源目录
assets.srcDirs = ['assets']:指定assets目录
jniLibs.srcDirs = ['libs']:指定lib库目录
}
debug.setRoot('build-types/debug'):指定debug模式的路径
release.setRoot('build-types/release'):指定release模式的路径
}
buildTypes {:配置应用版本,一般是debug和release 两个版本,也可以创建其他版本根据需要,debug版本为开发默认就好
release {
minifyEnabled false:是否混淆
shrinkResources true:移除无用的resource文件
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' :加载默认混淆配置文件
signingConfig signingConfigs.relealse:签名
}
}
lintOptions {
// 防止在发布的时候出现因MissingTranslation导致Build Failed!
disable 'MissingTranslation'
}
//渠道Flavors,多渠道打包是配置
productFlavors {
// 百度手机助手
baidu {
}
// 安智官网
anzhi {
}
// 应用汇
appchina {
}
// 搜狗手机助手
sogou {
}
// 小米应用商店
mi {
}
// 豌豆荚
wandoujia {
}
// 木蚂蚁
mumayi {
}
// 应用宝
qq {
}
// 魅族应用商店
meizu {
}
// 优忆市场
eoemarket {
}
// 历趣
liqucn {
}
// 乐商店
lenovomm {
}
// 华为市场
huawei {
}
// PP助手
pp {
}
// 360手机
q360 {
}
// oppo市场
oppo {
}
自定义apk的名字
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
def fileName = outputFile.name.replace(".apk", "-${defaultConfig.versionName}.apk")
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
}
}
dependencies {:依赖库
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:24.2.1'
testCompile 'junit:junit:4.12'
}