《Gradle权威指南》--Android Gradle插件
No1:
Android Gradle插件分类
App插件id:com.android.application
Library插件id:com.android.library
Test插件id:com.android.test
No2:
除了插件id之外,如果是第三方的插件,还要配置它们的依赖classpath。Android Gradle插件就是属于第三方插件,它托管在Jcenter上。
buildscript{ repositories{ jcenter() } dependencies{ classpath 'com.android.tools.build:gradle:1.5.0' } }
注:buildscript{}这部分配置可以写到根工程build.gradle脚本文件中,这样所有的子工程就不用重复配置了
No3:
apply plugin:'com.android.application' android{ compileSdkVersion 23 buildToolsVersion "23.0.1" }
android{}是Android插件提供的一个扩展类型,可以让我们自定义Android Gradle工程。compileSdkVersion是编译所依赖的Android SDK的版本,这里是API Level;buildToolsVersion是构建该Android工程所用构建工具的版本
No4:
proguard-rules.pro是一个混淆配置文件
No5:
compileSdkVersion
public void compileSdkVersion(int apiLevel){ compiledSdkVersion("android-"+apiLevel); } public void compileSdkVersion(String version){ checkWritability(); this.target = version; } ------------------------ public void setCompileSdkVersion(int apiLevel){ compileSdkVersion(apiLevel); } public void setCompileSdkVersion(String target){ compileSdkVersion(target); } ------------------------ android.compileSdkVersion = 23 //or android.compileSdkVersion = 'android-23'
No6:
buildToolsVersion
public void buildToolsVersion(String version){ checkWritability(); buildToolsRevision = FullRevision.parseRevision(version); } @Override public String getBuildToolsVersion(){ return buildToolsRevision.toString(); } public void setBuildToolsVersion(String version){ buildToolsVersion(version); }
No7:
defaultConfig
defaultConfig{ applicationId "org.flysnow.app.example74" minSdkVersion 14 targetSdkVersion 23 versionCode 1 versionName "1.0" }
defaultConfig是默认的配置,它是一个ProductFlavor.
applicationId:配置的包名
minSdkVersion:最低支持的Android系统的API Level
targetSdkVersion:表明我们是基于哪个android版本开发的
versionCode:表明我们的app应用内部版本号,一般用于控制app升级
versionName:表明我们的app应用的版本名称,用户可以看到,就是我们发布的版本
No8:
buildTypes
buildTypes{ release{ minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro' } }
buildTypes是一个NamedDomainObjectContainer类型,是一个域对象。
realease会帮我们自动创建一个对应的BuildType
minifyEnabled是否为该构建类型启用混淆
proguardFiles,当启用混淆时,所使用的proguard的配置文件,配置如何进行混淆
getDefaultProguardFile是android扩展的一个方法,可以获取你的android sdk目录下默认的proguard配置文件
No9:
android gradle任务
connectedCheck:在所有的连接的设备或者模拟器上运行check检查
deviceCheck:通过API连接远程设备运行checks
lint:在所有的ProductFlavor上运行lint检查
install和uninstall类的任务可以直接在我们已连接的设备上安装或者卸载你的app
singingReport:打印app的签名
androidDependencies:打印android的依赖