📜  Android | build.gradle

📅  最后修改于: 2021-05-10 16:50:01             🧑  作者: Mango

Gradle是一个构建系统(开源),用于自动化构建,测试,部署等。“ Build.gradle”是可以使任务自动化的脚本。例如,在实际构建过程发生之前,可由Gradle构建脚本执行将某些文件从一个目录复制到另一个目录的简单任务。

为什么需要Gradle?

每个Android项目都需要gradle才能从中生成apk 。Java.xml文件。简而言之,gradle获取所有源文件(Java和XML)并应用适当的工具,例如,将Java文件转换为dex文件,然后将它们全部压缩为一个实际使用的称为apk的文件。

有两种类型的build.gradle脚本

  • 顶级build.gradle
  • 模块级build.gradle

顶级build.gradle

它位于项目根目录中,其主要函数是定义将应用于项目中所有模块的构建配置。它实现为:

// Top-level build file where you can add configuration
// options common to all sub-projects/modules.
  
buildscript
{
  
    repositories
    {
        google()
            jcenter()
    }
    dependencies
    {
        classpath 'com.android.tools.build:gradle:3.0.1'
  
        // Do not place the application dependencies here; 
        // they belong to individual module build.gradle files
    }
}
  
allprojects
{
    repositories
    {
        google()
            jcenter()
    }
}
  
task clean(type
           : Delete)
{
    delete rootProject.buildDir
}

顶级build.gradle支持各种构建配置,例如:

  1. buildscript:此块用于配置Gradle的存储库和依赖项。
    [注意:此处不包括依赖项。(这些将包含在模块级别的build.gradle中)]
    • 依赖关系: buildscript中的此块用于配置Gradle在项目过程中需要构建的依赖关系。
      classpath 'com.android.tools.build:gradle:3.0.1'
      

      此行将插件添加为gradle 3.0.1的类路径依赖项。

  2. allprojects:这是可以配置第三方插件或库的块。对于新创建的项目,默认情况下android studio包括JCenter和Google的maven存储库。
  3. 任务clean(type:Delete):每次运行项目时,此块都用于删除目录。这样,当有人修改某些配置文件(例如,需要完全清理的settings.gradle期间)时,项目将保持干净。

模块级build.gradle

Gradle脚本位于项目的project / module目录中,是定义所有依赖项和声明sdk版本的位置。该脚本在项目中具有许多功能,其中包括其他构建类型,以及在main / app清单或顶级build.gradle文件中的替代设置。它实现为:

// The first line in this file indicates
// the Android plugin is applied for Gradle to
// this build
  
apply plugin : 'com.android.application'
  
android
{
    compileSdkVersion 26 defaultConfig
    {
        applicationId "example.mehakmeet.geeksforgeeks"
        minSdkVersion 19
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
    }
    buildTypes
    {
        release
        {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
  
dependencies
{
    implementation fileTree(include
                            : [ '*.jar' ], dir
                            : 'libs')
        implementation 'com.android.support:appcompat-v7:26.1.0'
}

模块级别的build.gradle支持各种构建配置,例如:

  1. android:此块用于配置特定的android构建选项。
    • compileSdkVersion –用于定义应用程序的API级别,并且应用程序可以使用此级别和较低级别的功能。
  2. defaultConfig:
    • applicationId –用于标识发布应用程序的唯一ID。
    • minSdkVersion –这定义了运行应用程序所需的最低API级别。
    • targetSdkVersion –这定义了用于测试应用程序的API级别。
    • versionCode –定义应用程序的版本代码。每次需要对应用程序进行更新时,都需要将版本代码增加1或更多。
    • versionName –定义应用程序的版本名称。创建更新时,可以增加任何数量。
  3. buildTypes(发布):
    • minifyEnabled –这将启用代码缩减以进行版本构建。
    • proguardFiles –这将指定progaurd设置文件。
  4. 依赖项–此选项指定构建项目所需的依赖项。

顶层build.gradle文件和模块级build.gradle文件都是用于自动化android项目中任务的主要脚本文件,并且由Gradle用来从源文件生成APK。

参考: https : //developer.android.com/studio/build/

想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
单击此处前往由我们的专家精心策划的指南,以使您立即做好行业准备!