build.gradle文件介绍
对于以前用Eclipse开发安卓的小伙伴来说,Gradle文件是陌生的。
不同于Eclipse,而Android Studio 是采用Gradle来构建项目的。
先来介绍最外层目录下的build.gradle文件,代码如下:
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.2'
    }
}
allprojects {
    repositories {
        jcenter()
    }
}
在repositories闭包中:
jcenter():它是一个代码托管仓库,很多的Android开源项目都会选择将代码托管到jcenter上,声明了这行配置后,我们就可以在项目中轻松使用任何的jcenter上的开源项目了
在repositories闭包中:
classpath 'com.android.tools.build:gradle:2.2.2'声明了一个Gradle插件。gradle:2.2.2为Gradle插件的版本号。
下面来介绍app目录下的build.gradle文件,代码如下:
apply plugin: 'com.android.application'
	android {
	    compileSdkVersion 24
	    buildToolsVersion "24.0.2"
	    defaultConfig {
	        applicationId "com.androidtest"
	        minSdkVersion 15
	        targetSdkVersion 24
	        versionCode 1
	        versionName "1.0"
	    }
	    buildTypes {
	        release {
	            minifyEnabled false
	            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
	        }
	    }
	}
	dependencies {
	    compile fileTree(dir: 'libs', include: ['*.jar'])
	    compile 'com.android.support:appcompat-v7:23.4.0'
	    testCompile 'junit:junit:4.12'
	}
介绍
第一行的apply plugin:代表着应用了一个插件。一般来说有两个值可选。
- com.android.application 表示这是一个应用程序模块。
 - com.android.library 表示是一个库模块。
 
区别:
com.android.application是代表可以直接运行的,
com.android.library是只能作为代码依附在别的应用程序模块来运行。所以在引入一些Model为自己的应用程序所用时,build.gradle文件的第一行就是apply plugin:com.android.library。
android闭包:
compileSdkVersion:用于指定项目的编译版本。这里24表示使用Android7.0系统的SDK进行编译。
buildToolsVersion:用于指定项目的构建工具的版本。
android闭包中有defaultConfig闭包:
applicationId:用于指定项目的包名,在创建项目的时候已经指定了包名,当要改变整个项目的包名时可以在这里改变。
minSdkVersion:项目最低的兼容版本。15表示兼容到API 15 既是android 4.0.
targetSdkVersion:表示你在该目标版本上已经做过了充分的测试,系统将为你的应用开启一些最新的功能和特性。假如targetSdkVersion 为23或者更高,那么在Android6.0中运行这个应用时会开启新的功能和特性;但是设置成了22的话,只能说明你的应用程序在Android5.1系统上做过了充分的测试,Android6.0的新功能就不会启用了。
注意
在以前eclipse中设置这些都是AndroidManifest.xml文件中设置的。
<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="18" />
而在Android Studio中,即使在AndroidManifest.xml设置了,依然是不起作用的,运行时只承认build.gradle下的设置。
versionCode:项目的版本号
versionName:项目版本号的版本名。
这两个属性在生成安装文件时用到。
android闭包中有buildTypes闭包:
通常这个闭包中会有两个闭包,一个是debug,一个release。
debug闭包用于生成测试版安装文件的配置,release闭包用于生成正式版安装文件的配置。dubug闭包可以忽略不写。
release闭包中的具体内容:
minifyEnabled:用于是否对项目的代码进行混淆。true代表开启,false代表关闭。
proguardFiles:指定混淆时使用的文件。
proguard-android.txt:在Android SDK 目录下的,里面是所有项目通用的混淆规则。
proguard-rules.pro:是在当前项目根目录下的,里面编写当前项目特有的混淆规则。
dependencies闭包
在这个闭包下可以指定当前项目所有的依赖关系。通常Android Studio 项目中一共有三种依赖方式:本地依赖、库依赖和远程依赖。
本地依赖可以对本地的Jar包或目录添加依赖关系
库依赖可以对项目中的库模块添加依赖关系。
远程依赖则可以对jcenter库上的开源项目添加依赖关系。
在本项目中的第一行 compile fileTree(dir: 'libs', include: ['*.jar'])就是本地依赖声明,他把libs目录下的所以.Jar后缀文件全部添加带项目的构建路径中去。同时也可以只指定一个文件,例如:compile files('libs/picasso-2.4.0.jar')
在本项目中并没有使用到库依赖。库依赖的基本格式为 compile project后面加上依赖库的库名称,例如gallery为库名称,那么compile project(':gallery')就能添加这个库的依赖关系。
在本项目中的第二行 ** compile 'com.android.support:appcompat-v7:23.4.0'**这种声明是远程依赖声明。因为是用远程的库,所以Gradle在构建项目的时候会检查一下本地仓库是否已经缓存了,如果没有就自动联网下载,然后再添加到项目的构建路径中去。
远程依赖时每次都要检查是否有这个缓存,所以使编译变的很慢。可以设置成离线的Gradle模式。
build.gradle文件介绍的更多相关文章
- Android studio中2种build.gradle文件介绍
		
根目录下的build.gradle通常不需要修改这个文件中的内容,除非需要添加一些全局的项目构建配置 buildscript { repositories { google() //声明代码托管仓库G ...
 - Android学习之基础知识二(build.gradle文件详解)
		
一.详解build.gradle文件 1.Android Studio是采用Gradle来创建项目的,Gradle是非常先进的构建的项目的工具,基于Groovy领域特定的语言(DSL)来声明项目配置, ...
 - 解析build.gradle文件
		
Gradle是一个非常先进的项目构建工具,它使用了一种基于Groovy的领域特定语言DSL来声明项目设置,摒弃了传统XML(如Ant和Maven)的各种繁琐配置 项目结构如上图: 1.最外层目录下的b ...
 - 1.3.6 详解build.gradle文件——Android第一行代码(第二版)笔记
		
不同于Eclipse,Android Studio是采用Gradle来构建项目的.Gradle是一个非常先进的项目构建工具,它使用了一种基于Groovy的领域特定语言(DSL)来声明项目设置. 首先看 ...
 - module中build.gradle文件参数含义
		
主要是module的build.gradle,截图如下: 01行:apply plugin: 'com.android.application' 表示该module是这个应用程序的module ...
 - Android Studio学习之build.gradle文件
		
参考书籍:第一行代码 最外层目录下的build.gradle buildscript{repositories{ jcenter() //代码托管仓库 } dependencies{ classpat ...
 - build.prop文件介绍与用法举例
		
build.prop 是一个属性文件,在Android系统中.prop文件很重要,记录了系统的设置和改变 以下是修改教程及一些build.prop参数的中英文对照解释,修改前,注意先备份原build. ...
 - build.gradle文件详解<转> 推荐
		
apply plugin: 'com.android.application'//说明module的类型,com.android.application为程序,com.android.library为 ...
 - build.gradle文件的注释
		
Gradle是一种依赖管理工具,基于Froovy语言,面向Java应用为主,它抛弃了基于xml的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言. apply plugin: ...
 
随机推荐
- 20145220&20145209&20145309信息安全系统设计基础实验报告(4)
			
20145220&20145209&20145309信息安全系统设计基础实验报告(4) 实验报告链接: http://www.cnblogs.com/zym0728/p/6132246 ...
 - Symmetric Multiprocessor Organization
			
COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION
 - H5+微信支付报-1问题
			
1.检查发起支付的参数,全部设置为小写: WxPayData jsApiParam = new WxPayData(); jsApiParam.SetValue("appid", ...
 - 带你玩转JavaWeb开发之六-mysql基本语法详解及实例(2)
			
1.1.1 对数据库中表的记录进行操作(*****) 1.1.1.1 对数据库中表记录插入操作 [语法] 向数据库表中插入某些列:insert into 表名 (列名1,列名2,列名3-) ...
 - 关于(object sender, EventArgs e)
			
sender是事件源 就是指发起这个事件的对象(控件)//表示触发事件的那个控件比如说你按下按钮,那么sender就是按钮 又如:textboxchange,sender就是该textbox,在事 ...
 - UML之类图
			
类(Class)封装了数据和行为,是具有相同属性.操作.关系的对象集合的总称. 类图(Class Dialog)使用系统中不同类来描述系统的静态结构,类图用来描述不同类和它们之间的关系. 类图由三部分 ...
 - vue.js 学习笔记
			
/*属性*/ 标签内的属性都用 :attr="xxx" 的形式 /*模板*/ {{ msg }} -> 绑定数据 {{ *msg }} -> 数据只绑定一次 {{{ m ...
 - spring 另开线程时的注入问题
			
spring web项目在启动的时候,就会完成各种组件的注入.在工作的过程中,遇到了这样一个问题: 一个serviceA中要新开一个线程来执行一项任务(假定这个任务是ClassA).ClassA中要用 ...
 - JAVASE02-Unit07: 基本IO操作 、 文本数据IO操作
			
基本IO操作 . 文本数据IO操作 java标准IO(input/output)操作 package day07; import java.io.FileOutputStream; import ja ...
 - AFN和ASI区别
			
AFN和ASI区别 一.AFN和ASI的区别 1.底层实现1> AFN的底层基于OC的NSURLConnection和NSURLSession2> ASI的底层基于纯C语言的CFNetwo ...