Android Studio : Gradle

Gradle 构建系统

Gradle 是一种依赖管理工具,依赖关系是Android Studio 和 Gradle中的一个全新的概念,理解他们是怎样工作的,Gradle生成过程, 如何使用是很关键的。
下面介绍在在配置你的Android Studio项目的时候,经常会使用到的文件。你创建一个Android Studio项目,它配备了两个Gradle脚本和一些其他的配置文件.
Android Studio : Gradle_第1张图片
如上图是我的项目结构(左侧为Project视图,右侧为Android项目视图):
Project视图显示了gradle文件在磁盘的具体位置。
Android视图把可供修改的配置文件全部放在Gradle Scripts目录下。Gradle Scripts则是Gradle构建系统中构建脚本。你可以在这里看到这些配置文件。

现在我们来一一探索一下这些文件的作用:

  • local.properties
    指定Android sdk 所在的位置,它的存放路径是独立于Android studio 安装位置的。如果有其他Android sdk 目录,你可以再这里修改它的值。你也可以通过Android studio的用户界面进行更改配置,所以,不建议在文件本身做修改。
    用户界面的更改方式: File –> Project Structure (快捷键 ctrl + alt + shift + s) 在这个界面更改sdk和jdk,这个设置是特定于该项目的,所以你可以针对这个项目制定另外一个版本的sdk。需要注意的是其中指定jdk制定的完整的jdk版本,而不仅仅是Runtime时的JRE版本
  • gradle.properties
    该版本的默认版本完全是被注释掉的,但当你建立你的项目时,可以决定很多关于Gradle的行为。比如被注释掉的第10行# Specifies the JVM arguments used for the daemon process.关于JVM的参数,只是和Gradle的内存管理有关,和你的Android设备上的应用程序无关,你可以看一下文件的底部所指的参考文档,了解更多有关此过程,以及如何配置它。
  • 位于顶层的build.gradle
    位于根目录下的顶层build.gradle文件称为项目文件,通常情况下,不必修改该文件。它有两个引用的方法:jcenter()。到时候讲依赖关系的时候讲解这些,//Todo需要补充一些内容
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }

这里有一个类路径: classpath ‘com.android.tools.build:gradle:1.5.0’ 表示Gradle插件的包名和当前版本。此外,通常你不会改变此值。此值一般在升级Android Studio的时候自动会被改写的。

  • 位于app目录下的build.gradle
    这是用来配置很多与应用程序相关的配置,有很多值原来是AndroidManifest.xml清单里面的,现在在此文件下配置。
apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.example.ahuier.testapp"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.0'
    compile 'com.android.support:design:23.1.0'
}

applicationId : 应用程序id,这是全球唯一的字符串,来标示你的应用程序在Play商店或其他分发渠道。
minSdkVersion : 配置最低sdk版本
targetSdkVersion : 配置目标sdk版本
compileSdkVersion : 编译sdk版本
【注意】:编译sdk和目标sdk版本必须和已安装在你的计算机上的sdk版本api级别相对应,比如我想降级到api 19,我也必须到sdk管理工具中下载相对于的sdk版本。
buildToolsVersion : 该项目设置的构建工具的版本,该版本必须是Android Studio 可用的最新的版本想匹配,可以去sdk manager 里查看是否已经安装此版本。
dependencies : Android Studio 的依赖关系,你可能看到一个或者多个依赖关系列出,那是对支持库的引用,如:

compile 'com.android.support:appcompat-v7:23.1.0'

表示引用Android的支持库,版本7,而且这次迭代是专门针对API级别,级别是23

compile fileTree(dir: 'libs', include: ['*.jar'])

引用libs文件夹,理论上,它应该包括任何libs文件夹下的jar文件,作为你的应用程序的一部分。在实践中,我发现,这样做更可靠,具体的应用各个JAR文件。

  • proguard-rules.pro
    该文件用来管理ProGuard工具,可以管理你尽量减少和模糊你的Android应用程序包的代码,然后再上传到应用程序商店。
  • build文件目录
    是编译生成的目录,通常不需要去改动它,比如BuildConfig是编译生成的类,通常不用去理会他。R是另一个生成的类,也不用去理会。

你可能感兴趣的:(Android Studio : Gradle)