持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天,点击查看活动详情
前文中我们介绍了安卓项目的目录结构,接着我们来详细介绍一些编译配置文件(build.gradle)中都有什么内容,都是干什么用的。
一个安卓项目会有一个全局的build.gradle用来指定全局的编译规则,之后每个模块都会有一个对应的build .gradle用以指定该模块的编译规则。
全局的build.gradle
现在我这个测试项目很简单,只有一个plugins 就是我们在模块中用到的插件 是什么,以及它的版本好是多少,这些在相应的模块的build.gradle中都可以找到。
模块的build.gradle
那么重点我们来看模块的build.gradle
首先我们看到分为了三大块,plugins,android,dependencies。
- plugins 定义了我们用到的插件,它与全局build.gradle相对应
- dependencies 定义了我们要用到的一些依赖,比如我们要用到本地的SDK 则需要在这个地方引入
- android 定义我们这个模块的一些基本配置
- namespace 用来定义我们这个模块的命名空间
- compileSdk 用来定义我们这个模块需要用到的SDK版本
- applicationId 用来定义我们这个模块的包名(不可重复),这个名称一定要和AndroidManifest.xml 文件中的 package=“”的内容一致
- minSdk 用来定义我们app可以运行的最小SDK版本,也就是可以兼容到最低的安卓版本
- versionCode 用来定义app的版本号
- versionName 用来定义app的版本名称,可以理解为versionCode的字符串模式
- testInstrumentationRunner 用来定义单元测试
- buildTypes 用来定义 动态自动维护,分为relese模式和debug模式,比如我们在调试的时候需要打印相关信息,就需要在debug配置;而正式发布的时候则要关闭这些信息,就需要在relese中进行配置
- compileOptions 用来配置 java 的编译选项,其中sourceCompatibility 定义java 的版本;targetCompatibility定义jva字节码版本。
注意:我们选择的 Gradle 的版本不同,它的配置也会有相应的差别,其版本与Android Stidio版本一一对应,如果不同则会导致编译失败。想要修改版本可以点击,File-Project Structure-Project 在弹出的窗口中,修改Gradle版本。