![2dde5a7c8260f86fa42a17dcbb97471a.gif](https://i-blog.csdnimg.cn/blog_migrate/a11d513857badca565f423814cdfe790.gif)
码个蛋(codeegg)第 652 次推文
作者:厘米姑娘
原文:https://www.jianshu.com/p/1274c1f1b6a4
上次的Gradle这么差还来面腾讯?还有印象没?由于文章干货太满,限于公众号的篇幅留了个关子。今天就把下面部分奉献给大家。老鼠拉大锨--大头在后台!
六.Android Gradle插件
1.概述
Android Gradle插件继承于Java插件,具有Java插件的所有特性,也有自己的特性,看下官方介绍:
可以很容易地重用代码和资源
可以很容易地创建应用的衍生版本
可以很容易地配置、扩展以及自定义构建过程
和IDE无缝整合
2.插件分类
App应用工程:生成可运行apk应用;id: com.android.application
Library库工程:生成aar包给其他的App工程公用;id: com.android.library
Test测试工程:对App应用工程或Library库工程进行单元测试;id: com.android.test
3.项目结构
|-example
| |-build.gradle
| |-example.iml
| |-libs
| |-proguard-rules.pro 混淆配置文件
| |-src
| |-androidTest
| |-java Android单元测试代码
| |-main
| |-java App主代码
| |-res 资源文件
| |-AndroidManifest.xml 配置文件
| |-test
| |-java 普通单元测试代码
4.内置任务
Java插件内置任务:如build、assemble、check等
Android特有的常用任务:
connectedCheck任务:在所有连接的设备或者模拟器上运行check检查
deviceCheck任务:通过API连接远程设备运行checks
lint任务:在所有ProductFlavor上运行lint检查
install、uninstall任务:在已连接的设备上安装或者卸载App
signingReport任务:打印App签名
androidDependencies任务:打印Android 依赖
5.应用实例
//应用插件,Android Gradle属于Android发布的第三方插件
buildscript{
repositories{
jcenter
}
dependencies{
classpath 'com.android.tcols.build:gradle:1.5.0'
}
}
apply plugin:'com.android.application'
//自定义配置入口,后续详解
android{
compileSdkVersion 23 //编译Android工程的SDK版本
buildToolsVersion "23.0.1" //构建Android工程所用的构建工具版本
defaultConfig{
applicationId "org.minmin.app.example"
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes{
release{
minifyEnabled false
proguardFiles getDefaultPraguardFile('proguard-andrcid.txt'), 'proguard-rules.pro'
}
}
}
//配置第三方依赖
dependencies{
compile fileTree(dir:'libs', include:['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcorpat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
}
a.defaultConfig
作用:用于定义所有的默认配置,是一个ProductFlavor,若ProductFlavor没有被特殊定义,默认使用defaultConfig块指定的配置
常用配置:
![670b897234ace12cd3bda9f47b6c3f96.png](https://i-blog.csdnimg.cn/blog_migrate/376df75f1a710290bf57682c6ab67550.jpeg)
b.buildTypes
作用:是构建类型,在Android Gradle中内置了debug和release两个构建类型,差别在于能否在设备上调试和签名不同
每一个BuildType都会生成一个SourceSet以及相应的assemble任务
常用配置:
![37cead8ccc6055a4625695de5fed640d.png](https://i-blog.csdnimg.cn/blog_migrate/ef6d636bfa63aaa4e46379b8b44a0e9b.jpeg)
c.signingConfigs
作用:配置签名设置,标记App唯一性、保护App
可以对不同构建类型采用不同签名方式:debug模式用于开发调试,可以直接使用Android SDK提供的默认debug签名证书;release模式用于发布,需要手动配置
常用配置:
![63c58bf0155057c74fa3f022121188b0.png](https://i-blog.csdnimg.cn/blog_migrate/426f0857a08dd8dfe4c72018649eac5d.jpeg)
android {
signingConfigs {
release{
storeFile file('myFile.keystore')
storePassword 'psw'
keyAlias 'myKey'
keyPassword 'psw'
}
}
}
d.productFlavors
作用:添加不同的渠道、并对其做不同的处理
常用配置:
![bdb2c5a1d4ab1392f064ecb809bbd950.png](https://i-blog.csdnimg.cn/blog_migrate/96b09e07afce4e9630982b6568a2dd4d.jpeg)
//定义baidu和google两个渠道,并声明两个维度,优先级为abi>version>defaultConfig
android{
flavorDimensions "abi