android Gradle 深入须知

来源:互联网 发布:pg dump 导出数据库 编辑:程序博客网 时间:2024/05/21 01:32

Android studio 开发基本的build.gradle的简单都会能配置上去。我也会基本的gradle脚本。

那么你真的了解这个吗?

apply plugin: 'com.android.application'android {    compileSdkVersion 26    buildToolsVersion "26.0.0"    defaultConfig {        applicationId "energy.trinabess.com.appplugin"        minSdkVersion 14        targetSdkVersion 26        versionCode 1        versionName "1.0"        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }}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:26.+'    compile 'com.android.support.constraint:constraint-layout:1.0.2'    testCompile 'junit:junit:4.12'}

反正我一想想吧,我是懵逼了,我是没有真正弄懂这是什么意思呢!

AS是用Gradle脚本来做相关配置的,Gradle脚本到底是什么东西呢?

开始Gradle之前请务必保证自己已经初步了解了Groovy脚本。

Groovy网上的教程一堆一堆的,可自行百度学习。还需要特定的了解Groovy闭包相关问题。

Gradle核心是基于Groovy的领域特定语言(DSL【需要翻墙】,具体概念参见《Groovy脚本基础全攻略》)。Gradle核心是Groovy,Groovy本质又是Java! AS中可以直接看到相关Java代码。

例如:

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:26.+'    compile 'com.android.support.constraint:constraint-layout:1.0.2'    testCompile 'junit:junit:4.12'    compile 'com.qihoo360.replugin:replugin-plugin-lib:2.2.0'}

对应Groovy的Java代码如下:

    void dependencies(Closure configureClosure);

Closure 闭包是上面{}的东西。

Groovy编译之后的东西还是字节码,可直接运行到JVM上去,JVM是不知道他到底是什么写的。

所以呢,我们在写gradle脚本的时候,需要弄懂Gradle DSL相关基础的哦。

原创粉丝点击