安卓APP完整开发流程(3/12)工程配置
牛客高级系列专栏:
安卓
嵌入式
正文开始👇
1、工程的参数配置
创建完新工程后,还需要对工程参数去做一些定制化,才可以开始编写代码。从工程的层面来看,我们需要配置以下几项:
- 工程基本参数
- 仓库地址以及插件引用申明
- Android Gradle Plugin
2、工程基础参数
工程基本参数包含以下几点:
- Gradle版本及运行参数;
- settings.gradle;
- local.properties;
2.1 Gradle版本及运行参数
修改Gradle版本主要有两种方法:
- 可以在gradle/wrapper/gradle-wrapper.properties文件中的
distributionUrl=https://services.gradle.org/distributions/gradle-7.0.2-bin.zip
进行修改,然后点击File-Sync Project with Gradle Files进行同步。
- File-Project Structure 在下图位置直接修改。
如果我们在Gradle版本更新之后,想要Gradle的运行效率更高,就可以打开gradle.properties文件,然后将下图的2048m修改为更高的参数。
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
当然这需要在电脑配置允许的前提下,来加快工程编译速度。建议将 -Xmx 的值设置为你计算机内存的一半或四分之一,以确保 JVM 有足够的空间来处理应用程序的内存需求。例如,如果你的计算机内存为 8GB,那么可以将 -Xmx 参数值设置为 4GB 或 2GB。
2.2 settings.gradle配置
该文件是Android项目的Gradle设置文件,定义了应用程序的模块和版本信息,指定当前工程,需要把哪些子工程给纳入编译里去:
如上面所示,一开始创建新工程时,会自动创建名为‘app’的模块。当工程扩大后,一般需要再增加新的模块,所以需要把当前工程里的app,core,modules,supports这几个模块写到settings.gradle
rootProject.name = "DemoApp"
include ':app', ':core',':modules',':supports'
rootProject.name
是一个字符串类型的属性,用于指定 Gradle 项目的根目录名称。在 Gradle 多项目构建中,可以通过设置不同的 rootProject.name 来指定各个子项目的根目录名称,以便于统一管理。例如,如果你的 Gradle 项目包含了多个子项目,而每个子项目都需要设置自己的名称,那么你可以在 settings.gradle 文件中为每个子项目设置一个不同的 rootProject.name,例如:
rootProject.name = 'my-gradle-project'
include ':sub-project-1'
project(':sub-project-1').name = 'my-sub-project-1'
include ':sub-project-2'
project(':sub-project-2').name = 'my-sub-project-2'
在上面的例子中,我们首先设置了根项目的名称为 my-gradle-project,然后使用 include 语句指定了两个子项目:sub-project-1 和 sub-project-2。接着,使用 project 方法分别为两个子项目设置了不同的名称。
2.3 local.properties配置
这个其实和本地化参数配置有关,这些配置指的是每一台电脑不一样的配置。比如说。安卓SDK路径的存放路径是对于每一个人,每一台电脑都肯定是不一样的。所以说我们需要把SDK路径写到local.properties里面:
sdk.dir=E:\Android_SDK
因为local.properties文件不会记录到版本管理库。这是因为系统默认在.gitignore文件(Git版本管理工具的忽略文件,写在该文件里的项目就不受git工具管理)里配置了local.properties:
所以如果有不希望被别人看到的参数,而又要在我们编辑时用到的参数,就可以把它记录到local.properties。比如说账号密码等数据。
3、仓库地址以及插件引用声明
仓库地址及插件引用声明在工程根目录build.gradle文件进行配置。
buildscript {
repositories {
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.0.2'
classpath 'org.greenrobot:greendao-gradle-plugin:3.3.0'
}
}
allprojects {
repositories {
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
google()
mavenCentral() // Warning: this repository is going to shut down soon
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
buildscript
- repositories:主要是grade脚本执行所需要的依赖,以及这些依赖下载仓库地址。如上面代码配置了谷歌和阿里云的仓库,告诉Gradle脚本,可以去这两个仓库里面去查找。
- dependencies:插件声明,用于声明项目程序依赖的外部库,如上面声明了anroid gradle插件和greendao插件;
allprojects
- repositories:可以看到这里也有repositories,也是声明执行所需要的依赖,以及这些依赖下载仓库地址。不过要区分清楚,buildscript-repositories是面向gradle脚本,而allprojects-repositories是面向工程里的子工程的
task clean
执行这个任务会去删除我们工程下的build目录。
4、模块build.gradle配置
4.1 标准配置
安卓工程实际上就是依赖于 Gradle和Android Gradle Plugin的管理和编译的。所以除了Gradle配置之外,其他的配置基本上都是围绕着ndroid Gradle Plugin进行。下面我们看看一个实际的app-build.gradle文件,为方便讲解,我直接用代码写注释进行讲解:
apply plugin: 'com.android.application' //代表app子模块会编译成apk,如果要编译架包,可以写为 'com.android.library'
apply plugin: 'org.greenrobot.greendao' //使用第三方库 greendao
android {
compileSdkVersion 30 //参与工程编译的SDK版本
buildToolsVersion "3
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
要成为一名高级安卓APP开发工程师,只有对安卓APP完整开发流程有全面性的了解,才能在技术、产品、市场这三大模块,帮助团队找到更优的解决方案。 本专栏详细介绍安卓APP完整开发流程:配置环境--》创建工程--》工程配置--》编写代码--》引用第三方库--》多项目构建--》多Dex支持--》代码混淆--》签名/打包--》构建定制--》多渠道打包--》线上运维。 安卓系统工程师也可以参考~