gradleAndroid studio【idea】

Android中gradle使用教程

2019-07-30  本文已影响24人  Y小圆脸

在我们编写Android代码的时候,引入第三方库,配置Android插件,打包apk命名,配置仓库地址,都需要在build.gradle中编写相应代码,我们可能对dependencies中做第三方依赖,发版本更改versionCode与versionName知道如何处理,但是具体详细使用该如何呢?那就让我们一起来探究吧。

背景

gradle语法是基于Groovy语言,Groovy是一种敏捷的动态语言,既可以面向对象编程,又可以用作纯粹的脚本语言,其运行在JVM上,能够与java代码很好的结合,也能扩展现有代码。

Gradle wrapper

当我们打开gradle-wrapper.properties文件,查看配置信息:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

通过配置项我们可以发现,当前项目使用的gradle版本,配置目录,它会根据以上配置目录下载到user/.gradle/wrapper/dists目录下,
Gradle Wrapper作用是允许你在没有安装 Gradle 的机器上执行 Gradle 构建,对客户端计算机零配置,减少兼容性问题。

build.gradle

build.gradle文件分别在项目目录下和对应module目录都存在,它们的存在承担不同的功能。

buildscript {
    
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.0'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

在project目录下的文件主要是配置仓库地址,配置插件,当我们新建项目时,可能我们会疑惑为什么会有两个repositories配置项,它们有什么区别吗?下面我们来解惑。

首先,buildscript 声明是gradle脚本自身需要使用的资源,包含插件所在的仓库地址,插件依赖。例如:

classpath 'com.android.tools.build:gradle:3.2.0

这是我们Android执行task任务所必需的插件地址。

当我们看完project下的build.gradle文件,那我们再来看看项目入口module下的build.gradle文件。

apply plugin: 'com.android.application'

android {

     compileSdkVersion 28
     defaultConfig{
        applicationId "com.bestpay.android.myapplication"
        minSdkVersion 15
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
     }

     buildTypes {
        release {
            minifyEnabled true
            zipAlignEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug{
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    signingConfigs {
        keyAlias '******'
        keyPassword '******'
        storeFile file('Key.jks')
        keyPassword '******'
    }
    productFlavors{
        
    }

}

dependencies{
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
}

通过以上代码,我们查看Android主要设置。

接下来我们来查看这些属性使用方式:

sourceSets

Android studio默认创建(app/src/main)作为代码,资源配置目录,也可以制定给其他目录为配置项


图1
    sourceSets{
        main{
            res.srcDirs = ['src/custom/res','src/main/res']
            java.srcDirs = ['src/main/java']
            manifest.srcFile 'src/main/AndroidManifest.xml'
            assets.srcDirs=['src/custom/assets']
        }
    }

gradle.properties

这个是一个本地文件,存储一些个人配置,例如gradle运行是否并行,gradle的jvmargs大小、是否开启daemon

local.properties

本地文件,存储个人信息,sdk,ndk路径等。

setting.gradle

通过include相应module名称。

Android自带Task命令

打开Android studio右侧面板,查看gradle命令,让我们来查看具体命令使用场景。


图2 图3

Android gradle插件与gradle版本关系

当我们在根build.gradle引入gradle任务执行得插件时,插件对应gradle最低版本,以下是具体对应关系:

图4

参考文献:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Why-Gradle-

上一篇下一篇

猜你喜欢

热点阅读