安卓APP完整开发流程(3/12)工程配置

牛客高级系列专栏:

安卓

嵌入式

正文开始👇

1、工程的参数配置

创建完新工程后,还需要对工程参数去做一些定制化,才可以开始编写代码。从工程的层面来看,我们需要配置以下几项:

  • 工程基本参数
  • 仓库地址以及插件引用申明
  • Android Gradle Plugin

2、工程基础参数

工程基本参数包含以下几点:

  • Gradle版本及运行参数;
  • settings.gradle;
  • local.properties;

2.1 Gradle版本及运行参数

修改Gradle版本主要有两种方法:

  1. 可以在gradle/wrapper/gradle-wrapper.properties文件中的
distributionUrl=https://services.gradle.org/distributions/gradle-7.0.2-bin.zip

进行修改,然后点击File-Sync Project with Gradle Files进行同步。

  1. File-Project Structure 在下图位置直接修改。

alt

如果我们在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设置文件,定义了应用程序的模块和版本信息,指定当前工程,需要把哪些子工程给纳入编译里去:

alt

如上面所示,一开始创建新工程时,会自动创建名为‘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:

alt

所以如果有不希望被别人看到的参数,而又要在我们编辑时用到的参数,就可以把它记录到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完整开发流程有全面性的了解,才能在技术、产品、市场这三大模块,帮助团队找到更优的解决方案。 本专栏详细介绍安卓APP完整开发流程:配置环境--》创建工程--》工程配置--》编写代码--》引用第三方库--》多项目构建--》多Dex支持--》代码混淆--》签名/打包--》构建定制--》多渠道打包--》线上运维。 安卓系统工程师也可以参考~

全部评论

相关推荐

02-08 15:53
门头沟学院 Java
CoderEcho:让公司知道便宜没好货
点赞 评论 收藏
分享
沟头学院:无关比赛不要写,这样会显着你主次不分,比赛不要撒谎,有哪些就写那些,创新创业建议删除。技能特长可以适当夸大。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务