《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的依赖

posted @ 2018-03-21 16:02  嘉禾世兴  阅读(183)  评论(0编辑  收藏  举报