gradle打包流程(一)

gradle打包流程(一),第1张

gradle打包流程(一) 前言:

Android构建系统编译应用资源和源代码,然后将它们打包成可测试、部署、签署和分发的APK或Android App Bundle。

我们使用Android Studio开发的时候,使用gradle构建工具包来自动执行和管理构建流程,同时也可以

灵活地自定义构建配置。

Gradle和Android插件是独立于Android Studio运行的,所以我们除了可以在Android Studio上构建Android应用外,还可以通过命令行构建Android应用。

构建流程图:

  1. 编译器将源代码转换成DEX文件(Dalvik可执行文件,其中包括在Android设备上运行的字节码),并将其他所有内容转换成编译后的资源。
  2. 打包器将DEX文件和编译后的资源组合成APK或AAB。必须先为APK或者AAB签名,然后才能将应用安装到Android设备或分发到Google Play等应用商店。
  3. 打包器使用调试或发布密钥库为APK或AAB签名。
  4. 在生成最终APK之前,打包器会使用zipalign工具(zipalign 是一种 zip 归档文件对齐工具。它可确保归档中的所有未压缩文件相对于文件开头都是对齐的。)对应用进行优化,以减少其在设备上运行时所占用的内存。

build配置文件

Android Studio会与Android Plugin for Gradle这个构建工具包协作,当我们在Android Studio中开始一个新项目时,会自动创建一些文件,并为其填充合理的默认值。Android应用模块的默认项目结构如下:

创建自定义build配置需要对这些build配置文件(即build.gradle文件)做出更改。这些纯文本文件使用领域特定语言(DSL)以Groovy描述和 *** 作构建逻辑。其中Groovy是一种适用于Java虚拟机(JVM)的动态语言。

  • Gradle设置文件(settings.gradle文件)位于项目的根目录下,用于指示Gradle在构建应用时应将哪些模块包含在内。对于多模块项目需要指定应包含在最终build中的每个模块。
  • 顶层构建文件(顶层build.gradle文件)位于项目的根目录下,用于定义适用于项目中所有模块的构建配置。默认情况下,顶层构建文件使用buildscript代码块定义项目中所有模块共用的Gradle代码库和依赖项。注意,模块的依赖项不要放在顶层build.gradle文件的buildscript中,而应该放在具体模块的build.gradle文件中。对于包含多个模块的项目,可能有必要在项目级别定义某些属性并在所有模块之间共享这些属性,为此,可以将额外的属性添加到顶层build.gradle文件内的ext代码块中。(当然,实际上我们应该避免这样做,因为这样会导致共享这些属性的模块相互结合,使得以后将模块作为独立项目导出更加困难。)
  • 模块级构建文件(模块级build.gradle文件)位于每个project/module/目录下,用于为其所在的特定模块构建设置。我们可以通过配置这些构建设置提供自定义打包选项(如额外的构建类型和产品变种),以及替换main/应用清单或顶层build.gradle文件中的设置。
  • Gradle属性文件。Gradle还包含两个属性文件,它们位于项目的根目录下,可用于指定Gradle构建工具包本身的设置:gradle.properties和local.properties。我们可以在gradle.properties文件中配置项目全局Gradle设置,比如使用androidX(android.useAndroidX=true)。我们可以在local.properties文件中为构建系统配置本地环境属性,其中包括sdk.dir(SDK的路径)、ndk.dir(NDK的路径,不过此属性已被弃用,NDK的所有下载版本都安装在Android SDK目录下的ndk目录中)、cmake.dir(CMake的路径)、ndk.symlinkdir(在Android Studio 3.5及更高版本中,创建指向NDK的符号链接,该符号链接的路径可比NDK安装路径短)

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5671767.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存