【Android】基础之build.gradle文件

来源:互联网 发布:怎么参加淘宝嘉年华 编辑:程序博客网 时间:2024/05/17 02:27

一、先来看一下最外层build.gradle(Project:Test)的内容。

>repositories闭包中声明的jcenter()是一个代码托管仓库,声明这行配置,可以轻松引用任何jcenter上的开源项目。

>dependencies闭包通过classpath声明了一个Gradle插件,因为不仅仅Android项目,Java、C++等很多项目都可以使用Gradle工具来构建,所以想要指定Gradle构建Android项目,需要声明这个插件。

buildscript {    repositories {        jcenter()    }    dependencies {        classpath 'com.android.tools.build:gradle:2.2.2'    }}allprojects {    repositories {        jcenter()    }}task clean(type: Delete) {    delete rootProject.buildDir}
二、现在来看一下里层的build.gradle(Module:app)文件。

>第一行应用了一个插件,有两种可选值,com.android.application或com.android.library。第一种说明这是一个应用程序模块,第二种说明这是一个库模块。

>android大闭包:里有配置项目构建的各种属性。

>compileSdkVersion:项目编译版本,25是使用Android7.1.1系统的sdk编译。

>buildToolsVersion:项目构建工具的版本。

>defaulConfig闭包:更为细节的配置。

>applicationId:指定项目的包名,想要更改项目包名的,在这里更改。

>minSdkVersion:项目最低兼容的Android系统版本,14表示最低兼容Android4.0

>targetSdkVersion:项目目标Android系统版本,25是Android7.1.1,Android7.1.1包括的特性都会被启用,比如6.0的运行时权限。

>versionCode:项目的版本号。

>versionName:项目的版本名。

>minifyEnabled:是否对项目进行代码混淆。

>proguardFiles:混淆时使用的规则文件,proguard-android.txt是Android SDK目录下通用混淆规则,proguard-rules.pro是当前项目根目录下的规则,可以自行编写。

>dependencies闭包:用于指定当前项目的所有依赖关系。Android项目通常有三种依赖方式:本地依赖、库依赖和远程依赖。

>本地依赖:对本地的Jar包或者目录添加依赖关系。

>库依赖:对项目中的库模块添加依赖关系。比如有个库叫helper,添加格式为:compile project(':helper')

>远程依赖:对jcenter库上的开源项目添加依赖关系。

>compile fileTree:本地依赖,将libs目录下的所有.jar后缀的文件都添加到项目的构建路径当中。

>compile:远程依赖,com.android.support是域名(与其他公司的库作区分),appcompat-v7是组名(与本公司的库作区分),25.1.0是版本号(与同一个库的不同版本作区分),Gradle构建项目时会先查询本地缓存是否存在这个库,没有联网下载,再添加到项目的构建路径当中。

>testCompile:声明测试用例库。

apply plugin: 'com.android.application'android {    compileSdkVersion 25    buildToolsVersion "25.0.2"    defaultConfig {        applicationId "com.example.firsttest"        minSdkVersion 14        targetSdkVersion 25        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:25.1.0'    testCompile 'junit:junit:4.12'}














0 0