模块目录下Android build.gradle文件解读(app配置文件)

本文详细解析了Android项目构建配置,包括应用插件、编译版本、构建工具版本、项目包名、兼容版本、测试配置及依赖管理等内容,帮助开发者理解并掌握Gradle构建文件的配置。
//该模块为应用程序模块,可以直接运行
apply plugin: 'com.android.application'

android {
	 //指定项目的编译版本,使用Android 7.1系统的SDK编译
 	 compileSdkVersion 25
     //指定项目构建工具的版本
     buildToolsVersion "25.0.3"
     defaultConfig {
		 //项目包名为com.y_bank.monna.ybank
	 	 applicationId "com.y_bank.monna.ybank"
	 	 //最低兼容到Android 4.0版本
	 	 minSdkVersion 15
		 //指定已做过充分测试的目标版本
 		 targetSdkVersion 25
	 	 versionCode 1
		 versionName "1.0"
	 	 testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
 	 }
 	 buildTypes {
	 	 //指定生成正式版安装文件的配置
 		 release {
  		 //代码不进行混淆
		 minifyEnabled false
		 //指定混淆的规则文件,proguard-android.txt为默认的混淆文件,定义了一些通用的混淆规则;
		 //proguard-rules.pro文件位于当前项目的根目录下,定义一些项目特有的混淆规则。
 	 	 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  	 }
  }
}

dependencies {
	 //将libs目录下所有.jar后缀的文件都添加到项目的构建路径当中
 	 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:recyclerview-v7:25.3.1'
    compile 'com.android.support:appcompat-v7:25.3.1'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    testCompile 'junit:junit:4.12'
}

一、文件第一行apply plugin表示应用了一个插件,该插件一般有两种值可选:
1.‘com.android.application’,表示该模块为应用程序模块,可以直接运行;
2.‘com.android.library’,表示该模块为库模块,只能作为代码库依附于别的应用程序模块来运行。

二、第二部分 android{} 为Android闭包
1.这个闭包主要为了配置项目构建的各种属性:
compileSdkVersion用于指定项目的编译版本,25表示使用Android 7.1系统的SDK编译;
buildToolsVersion用于指定项目构建工具的版本。
2.android闭包中嵌套了defaultConfig闭包,对项目的更多细节进行配置:
applicationId指定了项目的包名,我们可以通过修改这个值来修改项目的包名;
minSdkVersion指定项目最低兼容的版本,这里指定为15,表示最低兼容到Android 4.0系统。
targetSdkVersion指定的值表示在该目标版本上已经做过充分测试,系统会为该应用启动一些对应该目标系统的最新功能特性,Android系统平台的行为变更。

只有targetSdkVersion的属性值被设置为大于或等于该系统平台的API版本时,才会生效。例如,若指定targetSdkVersion值为22,则表示该程序最高只在Android5.1版本上做过充分测试,在Android6.0系统上(对应targetSdkVersion为23)拥有的新特性如系统运行时权限等功能就不会被启用。

3.android闭包中嵌套了buildTypes闭包,指定生成安装文件的主要配置,一般包含两个子闭包:
一个是debug闭包,用于指定生成测试版安装文件的配置,可以忽略不写;
一个是release闭包,用于指定生成正式版安装文件的配置。其中minifyEnabled表明是否对代码进行混淆,true表示对代码进行混淆。proguardFiles指定混淆的规则文件,这里指定了proguard-android.txt文件和proguard-rules.pro文件两个文件。

三、dependencies闭包,定义了项目的依赖关系
一般项目都有三种依赖方式:本地依赖、库依赖和远程依赖。本地依赖可以对本地的jar包或目录添加依赖关系,库依赖可以对项目中的库模块添加依赖关系,远程依赖可以对jcener库上的开源项目添加依赖关系。
1.compile fileTree是一个本地依赖声明,表示将libs目录下所有.jar后缀的文件都添加到项目的构建路径当中。
2.compile语句为远程依赖声明,‘com.android.support:appcompat-v7:25.2.0’为一个标准的远程依赖库格式,其中com.android.support为域名部分,用于区分不同公司的库;appcompat-v7为组件名称,用于区分同一个公司的不同库;25.2.0为版本号,用于区分同一个库的不同版本。加上这句声明后,Gradle在构建项目时会先检查一下本地是否已经缓存过该库,若没有缓存则自动联网下载,下载后自动添加到项目的构建路径中去。
3.testCompile语句为声明测试用例库的,暂时没有用到。这里没有用到库依赖声明,若有一个库模块名为helper,那么添加这个库依赖关系需要加入compile project(’:helper’)这句声明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值