美文网首页
Android Gradle学习(一)——官方文档摘要

Android Gradle学习(一)——官方文档摘要

作者: 山中散仙 | 来源:发表于2020-09-21 16:51 被阅读0次

    构建流程

    构建流程涉及许多将项目转换成 Android 应用软件包 (APK) 的工具和流程。构建流程非常灵活,因此了解它的一些底层工作原理会很有帮助。


    build-process_2x.png

    图 1. 典型 Android 应用模块的构建流程。

    典型 Android 应用模块的构建流程(如图 1 所示)按照以下常规步骤执行:

    1. 编译器将您的源代码转换成 DEX 文件(Dalvik 可执行文件,其中包括在 Android 设备上运行的字节码),并将其他所有内容转换成编译后的资源。
    2. APK 打包器将 DEX 文件和编译后的资源组合成单个 APK。不过,必须先为 APK 签名,然后才能将应用安装并部署到 Android 设备上。
    3. APK 打包器使用调试或发布密钥库为 APK 签名:
      1. 如果您构建的是调试版应用(即专用于测试和分析的应用),则打包器会使用调试密钥库为应用签名。Android Studio 会自动使用调试密钥库配置新项目。
      2. 如果您构建的是打算对外发布的发布版应用,则打包器会使用发布密钥库为应用签名。如需创建发布密钥库,请参阅在 Android Studio 中为应用签名
    4. 在生成最终 APK 之前,打包器会使用 zipalign 工具对应用进行优化,以减少其在设备上运行时所占用的内存。

    构建流程结束时,您将获得应用的调试版 APK 或发布版 APK,以用于部署、测试或发布给外部用户。

    自定义构建配置

    Gradle 和 Android 插件可帮助您完成以下方面的构建配置:

    构建类型

    构建类型定义 Gradle 在构建和打包应用时使用的某些属性,通常针对开发生命周期的不同阶段进行配置。例如,调试构建类型支持调试选项,并使用调试密钥为 APK 签名;而发布构建类型则会缩减 APK、对 APK 进行混淆处理,并使用发布密钥为 APK 签名以进行分发。如需构建应用,您必须至少定义一个构建类型。Android Studio 默认会创建调试和发布两个构建类型。如需开始为应用自定义打包设置,请了解如何 配置构建类型

    产品变种

    产品变种代表您可以向用户发布的应用的不同版本,如应用的免费版和付费版。您可以自定义产品变种以使用不同的代码和资源,同时共享和重复利用所有应用版本共用的部分。产品变种是可选的,您必须手动创建。如需开始创建应用的不同版本,请了解如何配置产品变种。。

    构建变体

    构建变体是构建类型与产品变种的交叉产物,也是 Gradle 用来构建应用的配置。利用构建变体,您可以在开发期间构建产品变种的调试版本,或者构建产品变种的已签名发布版本以供分发。虽然您无法直接配置构建变体,但可以配置组成它们的构建类型和产品变种。创建额外的构建类型或产品变种也会创建额外的构建变体。如需了解如何创建和管理构建变体,请参阅配置构建变体。。

    清单条目

    您可以在构建变体配置中为清单文件的某些属性指定值。这些构建值会替换清单文件中的现有值。如果您要为模块生成多个 APK,让每一个 APK 文件都具有不同的应用名称、最低 SDK 版本或目标 SDK 版本,便可运用这一技巧。当存在多个清单时,Gradle 会合并清单设置

    依赖项

    构建系统会管理来自本地文件系统以及来自远程代码库的项目依赖项。这样一来,您就不必手动搜索、下载依赖项的二进制文件包以及将它们复制到项目目录中。如需了解详情,请参阅添加构建依赖项

    签名

    构建系统让您能够在构建配置中指定签名设置,并且可以在构建过程中自动为 APK 签名。构建系统通过已知凭据使用默认密钥和证书为调试版本签名,以避免在构建时提示输入密码。除非您为此构建明确定义签名配置,否则,构建系统不会为发布版本签名。如果您没有发布密钥,可以按为应用签名中所述生成一个。

    代码和资源缩减

    构建系统让您能够为每个构建变体指定不同的 ProGuard 规则文件。在构建应用时,构建系统会应用一组适当的规则以使用其内置的缩减工具(如 R8)缩减您的代码和资源

    多 APK 支持

    构建系统让您能够自动构建不同的 APK,并且每个 APK 只包含特定屏幕密度或应用二进制接口 (ABI) 所需的代码和资源。如需了解详情,请参阅构建多个 APK

    相关文章

      网友评论

          本文标题:Android Gradle学习(一)——官方文档摘要

          本文链接:https://www.haomeiwen.com/subject/mggvyktx.html