AndroidStudio的Gradle文件各部分配置的含义
2016-11-09 11:18
295 查看
随着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目录结构符合
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'
}
定义当前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'
}
相关文章推荐
- android studio修改配置文件(.android .gradle .AndroidStudio)位置
- Androidstudio中gradle配置资源文件
- PHP.INI配置文件叙述(一)------session部分的含义及配置
- AndroidStudio中build.gradle文件详细配置说明
- .gradle、.AndroidStudio缓存文件配置
- log4j配置文件基本含义说明1
- mysql配置文件my.cnf详解[部分]
- 终结者:详述Log4j配置文件中代码的含义
- lvs 配置文件部分解析
- 在 ServiceModel 客户端配置部分中,找不到引用协定“WebServiceTest.WebServiceSoap”的默认终结点元素。这可能是因为未找到应用程序的配置文件,或者是因为客户端元素
- Gradle文件配置(签名)
- mysql配置文件my.cnf详解[部分]
- AndroidStudio 配置SVN以及设置必要的忽略文件
- apache2.2 到 2.4后配置文件需要更改的部分
- android manifest和gradle配置的部分详解
- MDT2010 配置无人职守安装(1)—— RULE 配置文件_(2)——BootStrap.ini 部分配置文件
- 从Eclipse到AndroidStudio(四)Gradle基本配置
- Spring 配置文件部分详解
- AndroidStudio NDK Gradle配置
- linux学习入门 基础部分(5)[用户理解 用户涉及到的系统配置文件 用户管理《建立,删除,查看,更改》 权力下放 忘记密码。