1、外层目录下的build.gradle文件
这些代码都是自动生成的google()和jcenter():两处repositories的闭包中都声明了这两行配置,google仓库中包含的主要是Google自家的扩展依赖库,而jcenter仓库中包含大多是一些第三方的开源库。
Gradle插件和Kotlin插件:dependencies闭包中使用classpath声明的两个插件,因为Gradle并不是专门为构建Android项目而开发的,Java、C++等很多种项目也可以使用Gradle来构建,因此如果我们要使用它来构建Android项目,则需要生命com.android.tools.build:gradle:3.5.2这个插件,最后面的部分是版本号,通常和Android Studio的版本是相对应的。
2、app目录下的build.gradle文件
1、com.android.application:表示这是一个应用程序,com.android.library表示这是一个库模块。二者的区别:应用程序模块可以直接运行,库模块只能作为代码库依赖于别的应用程序模块来运行;
2、kotlin-android:如果想要试用Kotlin来开发Android项目,必须应用该插件;
3、kotlin-android-extensions:实现了一些实用的Kotlin扩展功能;
4、android闭包:在闭包中可以配置项目构建的各种属性;
4.1、compileSdkVersion:用于指定项目的编译版本,指定成29表示使用Android10.0系统的SDK编译;
4.2、buildToolsVersion:用于指定项目构建工具的版本,目前最新的版本就是29.0.2,如果有更新的版本时,Android Studio会进行提示;
4.3、defaultConfig闭包:可以对项目的更多细节进行配置;
4.3.1、applicationId:每一个应用的唯一标志符,不能重复,默认会使用项目创建时使用的包名,可以修改;
4.3.2、minSdkVersion:指定项目最低兼容的Android系统版本,21表示最低兼容Android5.0;
4.3.3、targetSdkVersion:表示项目在该版本上已经做过充分的测试,系统将会为应用程序启用一些对应系统版本的最新的功能和特性;
4.3.4、versionCode:用于指定项目的版本号;
4.3.5、versionName:用于指定项目的版本名称;
4.3.6、testInstrumentationRunner:在当前项目中启用JUnit测试,可以为当前项目编写测试用例,以保证功能的正确性和稳定性;
4.4、buildType闭包:用于指定生成安装文件的相关配置,通常只会有两个子闭包,一个release,一个debug;
4.4.1、debug闭包:用于指定生成测试版安装文件的配置,可以忽略不写;
4.4.2、release闭包:用于指定生成正式版安装文件的配置;
4.4.2.1、minifyEnabled:指定是否对项目的代码进行混淆;
4.4.2.2、proguardFiles:指定混淆时使用的规则文件,这里指定的两个文件:
第一个proguard-android-optimize.txt是在<Android SDK>/tools/proguard目录下,里面是所有项目通用的混淆规则;
第二个proguard-rules.pro是在当前项目的根目录下,里面可以编写当前项目特有的混淆规则(通过Android Studio直接运行项目生成的都是测试版安装文件);
5、dependencies闭包:指定当前项目所有的依赖关系:
Android Studio项目中一共有三种依赖方式
本地依赖:可以对本地的jar包或目录添加依赖关系,闭包中第一行implementation fileTree就是一个本地以来声明,表示将libs目录下所有的.jar后缀的文件都添加到项目的构建路径中;
库依赖:可以对项目中的模块添加依赖关系,基本格式是implementation project后面加上(':要依赖的库的名称');
远程依赖:可以对jcenter仓库上的开源项目添加依赖关系,implementation是远程依赖声明,androidx.appcompat:appcompat:1.1.0就是一个标准的远程依赖库格式,其中androidx.appcompat是域名部分,用于和其他公司的库做区分,appcompat是工程名部分,用于和同一个公司的不同库做区分,1.1.0是版本号,用于和同一个库的不同版本区分,Gradle在构建项目时首先检查本地是否有该库的缓存,没有的话会自动联网下载,然后再添加到项目的构建路径中;
testImplementation和androidTestImplementation都是用于声明测试用例库的。
网友评论