Android Studio Gradle 之基础配置与介绍

来源:互联网 发布:eml有软件打开 编辑:程序博客网 时间:2024/05/22 15:52

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具,Android Studio IDE使用的构建项目工具就是Gradle

Gradle是比较先进的构建工具,允许通过插件自定义构建逻辑,使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。

通过Android Studio创建一个项目,默认会有两个build.gradle文件和一个settings.gradle,一个位于app目录下,两个位于项目的根目录下

位于项目的根目录下,它描述了这个项目的整体构建基础
位于app目录下,它描述这个app的构建基础,也可以是一个Module

最基本的Android项目中,它的settings.gradle内容如下:
include ‘:app’
该文件中就仅仅只包含了一句话,在你的项目中如果有多个 Model 存在的时候,就可以选择包含哪些进行编译。

build.gradle内容如下:

buildscript {    repositories {        jcenter()    }    dependencies {        classpath 'com.android.tools.build:gradle:1.5.0'        // NOTE: Do not place your application dependencies here; they belong        // in the individual module build.gradle files    }}allprojects {    repositories {        jcenter()    }}

repositories 配置的是依赖管理的服务器。默认是 jcenter()
dependencies 上面是指定依赖管理的服务器,这个就是具体依赖什么库。

app目录下的build.gradle内容如下:

apply plugin: 'com.android.application'android {    compileSdkVersion 23    buildToolsVersion "23.0.3"    defaultConfig {        applicationId "com.example.think.testapplication"        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.2.1'    compile 'com.android.support:design:23.2.1'}

apply plugin: ‘com.android.application’
表示的是添加插件,默认为 com.android.application 程序,也就是应用程序

dependencies:
这个也就是所谓的依赖了,不光可以进行远程依赖,也可以本地依赖

compile fileTree(dir: ‘libs’, include: [‘*.jar’])
这句话也就是说编译时依赖 libs 文件夹下的所有 jar 文件。

compile ‘com.android.support:appcompat-v7:23.2.1’
依赖一个远程的库

compileSdkVersion 23
buildToolsVersion “23.0.3”
这两个指定的是编译SDK以及编辑工具版本

buildTypes
在这里进行配置的是你的编译配置,可以看见这里有一个 release ,当然也有 debug 部分,两个部分配置其实都是一样的。

在这里主要进行的配置是是否进行代码混淆,所以有一个代码混淆的开关,以及代码混淆的具体文件,文件有两种,哪一种都可以。

可以这里通过定义相关值来达到release 版本与debug 版本的差异性

defaultConfig {    applicationId "com.example.think.testapplication"    minSdkVersion 15    targetSdkVersion 23    versionCode 1    versionName "1.0"}

applicationId 应用ID,库类型的 Module 无此配置项
minSdkVersion 定义的是应用的最小的SDK版本
targetSdkVersion 定义的是应用的目标SDK版本
versionCode 定义的是应用的版本号
versionName 定义的是应用的版本名称

这些定义项经过编译最后生成一个叫做BuildConfig的最终类,可以在java代码中直接调用,路径在app\build\generated\source\buildConfig\debug\com\example\think\testapplication下

/** * Automatically generated file. DO NOT MODIFY */package com.example.think.testapplication;public final class BuildConfig {  public static final boolean DEBUG = Boolean.parseBoolean("true");  public static final String APPLICATION_ID = "com.example.think.testapplication";  public static final String BUILD_TYPE = "debug";  public static final String FLAVOR = "";  public static final int VERSION_CODE = 1;  public static final String VERSION_NAME = "1.0";}
0 0
原创粉丝点击