构建和测试 Android App Bundle

我们建议您使用 Android App Bundle 针对多种设备配置构建、发布和分发您的应用。app bundle 还支持高级功能,如 Play Feature Delivery、Play Asset Delivery 和免安装体验。本页简要介绍了在各个开发阶段可用来测试应用的各种策略,无论您是刚开始采用 App Bundle,还是要针对更高级的用例进行开发,都能有所收获。

如果您是刚接触 App Bundle,请阅读 Android App Bundle 简介一文。

使用 Android Studio 构建 App Bundle

如果您使用的是 Android Studio,只需点击几下即可将您的项目构建为已签名的 App Bundle。如果您没有使用 IDE,则可以改为从命令行构建 app bundle。然后,将您的 app bundle 上传到 Play 管理中心,以测试或发布您的应用。

如需构建 App Bundle,请按以下步骤操作:

  1. 下载 Android Studio 3.2 或更高版本 - 这是添加功能模块和构建 App Bundle 最简单的方式。

  2. 使用 Android Studio 构建 Android App Bundle。 您还可以通过修改运行/调试配置并选择从 app bundle 部署 APK 的选项,从 app bundle 将应用部署到连接的设备。请注意,与仅构建和部署 APK 相比,使用此选项会使构建时间延长。

  3. 使用 Android App Bundle 生成部署到设备的 APK 来部署您的 Android App Bundle

  4. 加入 Play 应用签名计划。 否则,您无法将 App Bundle 上传到 Play 管理中心。

  5. 将您的 App Bundle 发布到 Google Play

结合使用 App Bundle 和 Android Studio 进行部署

您可以将应用构建为 Android App Bundle,并直接从 IDE 将其部署到连接的设备。由于 IDE 和 Google Play 使用相同的工具提取 APK 并将其安装在设备上,因此这种本地测试策略可帮助您验证以下几点:

  • 您是否可以将应用构建为 App Bundle。
  • IDE 是否能够从 app bundle 中提取目标设备配置的 APK。
  • 您分离成功能模块的功能与应用的基本模块是否兼容。
  • 您的应用是否可以在目标设备上按预期方式运行。

默认情况下,当您从 Android Studio 将应用部署到连接的设备时,IDE 会针对目标设备配置构建和部署 APK。这是因为,针对特定设备配置构建 APK 比针对应用支持的所有设备配置构建 App Bundle 速度更快。

如果您要测试的是先将应用构建为 App Bundle,然后再从该 App Bundle 将 APK 部署到连接的设备,就需要修改默认的运行/调试配置,具体操作步骤如下:

  1. 从菜单栏中依次选择 Run > Edit Configurations
  2. 从左侧窗格中选择一项运行/调试配置。
  3. 在右侧窗格中,选择 General 标签页。
  4. Deploy 旁边的下拉菜单中选择 APK from app bundle
  5. 如果您的应用包含要测试的免安装应用体验,请选中 Deploy as an instant app 旁边的复选框。
  6. 如果您的应用包含功能模块,您可以通过选中每个模块旁边的复选框来选择要部署的模块。默认情况下,Android Studio 会部署所有功能模块,并且始终都会部署基本应用模块。
  7. 点击 ApplyOK

当您从菜单栏中依次选择 Run > Run 时,Android Studio 会构建 app bundle,并使用它来仅部署连接的设备和您选择的功能模块所需的 APK。

从命令行构建和测试

您可以从命令行获得 Android Studio 和 Google Play 用来构建 app bundle 并将其转换为 APK 的工具。也就是说,您可以从命令行调用这些工具,以通过 Android App Bundle 在本地构建和部署应用。

这些本地测试工具对于执行以下操作很有用:

  • 将可配置的 app bundle build 集成到持续集成 (CI) 服务器或其他自定义构建环境中。
  • 自动将应用从 app bundle 部署到连接的一个或多个测试设备。
  • 模拟从 Google Play 将应用下载到连接的设备。

从命令行构建 app bundle

如果要从命令行构建 app bundle,您可以使用 bundletool 或 Android Gradle 插件来执行此操作。

Android Gradle 插件:此插件由 Google 编写而成,与 Android Studio 捆绑在一起,也以 Maven 代码库的形式提供。该插件定义了您可以从命令行执行哪些命令来构建 app bundle。虽然该插件提供了最简单的 App Bundle 构建方法,但您需要通过 bundletool 使用它,才能将应用部署到测试设备。

bundletool:Android Gradle 插件和 Google Play 都使用此命令行工具将应用构建为 App Bundle,您可以从 GitHub 获得此工具。请注意,使用 bundletool 构建 app bundle 要比简单地使用该插件运行 Gradle 任务复杂得多。这是因为,该插件自动满足了构建 app bundle 的某些前提条件。不过,此工具对于要在 CI 工作流中生成 App Bundle 工件的开发者来说很有用。

如需开始使用其中任一方法构建 App Bundle,请阅读从命令行构建您的应用

从命令行部署应用

虽然使用 Android Gradle 插件从命令行构建 app bundle 的方法最简单,但您应使用 bundletool 从 app bundle 将应用部署到连接的设备。这是因为,bundletool 提供了专门为了帮助您测试 app bundle 并模拟通过 Google Play 分发而设计的命令。

您可以使用 bundletool 测试下面这些不同类型的场景:

  • 生成 APK 集,其中包含应用支持的所有设备配置的拆分 APK。通常需要先构建 APK 集,然后 bundletool 才能将应用部署到连接的设备。
    • 如果您不希望构建包含应用的所有拆分 APK 的 APK 集,可以根据连接的设备或设备规范 JSON 生成设备专用的 APK 集
  • 从 APK 集将应用部署到连接的设备。bundletool 会使用 adb 确定各种设备配置所需的拆分 APK,并且只将这些 APK 部署到设备。如果您有多台设备,还可以将设备 ID 传递给 bundletool,以将特定设备作为部署目标。
  • 在本地测试功能分发选项。您可以使用 bundletool 模拟设备从 Google Play 下载和安装功能模块的过程,而无需实际将应用发布到 Play 管理中心。如果您要在本地测试应用如何处理按需模块下载请求和失败情况,那么这会很有帮助。
  • 针对给定的设备配置估算应用的下载大小。这有助于更好地理解下载应用的用户体验,以及检查应用是否符合 app bundle 的压缩下载大小限制启用免安装体验

在 Play 上测试 app bundle

虽然本页中介绍的其他测试策略不要求您将应用上传到 Play,但使用 Play 管理中心进行测试可以最准确地反映用户体验。无论您是要与内部利益相关方、内部 QA 团队、限定人数的 Alpha 版测试人员,还是更广泛的 Beta 版测试人员分享应用,Play 管理中心都会为您提供多种测试策略。

使用 Play 管理中心测试应用的原因如下:

  • 您希望最准确地反映下载应用以及按需安装功能(后者可选)的用户体验。
  • 您希望让一组测试人员轻松访问。
  • 您要将测试范围限定到 QA、Alpha 版和 Beta 版测试人员。
  • 您要访问可以在设备上测试的应用上传的历史记录。例如,如果您要对版本进行比较以检查性能是否有所下降。

通过网址快速分享应用

虽然 Play 管理中心测试轨道提供了一种方法让应用经过正式的测试阶段,但有时您希望通过不太正式的渠道(如电子邮件或短信)与受信任的测试人员快速分享应用。

通过将 app bundle 上传到 Play 管理中心的快速分享页面,您可以生成一个网址,以便轻松地与他人分享。以这种方式分享应用可带来以下优势:

  • 授权团队中的任何人上传测试 build,而不允许他们在 Play 管理中心访问应用。
  • 测试人员只能访问与其分享的特定测试版应用。
  • 测试 build 可以使用任何密钥签名,也可以根本不签名,因此上传者也不需要访问正式版或上传密钥。
  • 版本代码不需要是唯一的,因此您可以重复使用现有的版本代码,而不需要递增版本代码来上传。
  • 测试自定义分发选项,如按需下载功能及下载应用内更新
  • 通过分享可调试版应用来捕获重要数据和日志。

当用户从他们的 Android 设备上点击该网址时,设备会自动打开 Google Play 商店,以供他们下载测试版应用。如需开始使用并详细了解此测试策略的功能和限制,请参阅通过网址分享应用或观看下方的视频。

下载应用的历史版本

您和测试人员也可以下载您已经上传到正式版或测试轨道的应用的历史版本。例如,如果您希望快速测试应用的早期版本以检查性能是否有所下降,那么这会很有用。

访问 Play 管理中心的 App Bundle 资源管理器页面,然后转到您要下载的任何版本的下载标签页以复制安装链接。或者,如果您知道要测试的应用版本的软件包名称和版本代码,只需从测试设备上访问以下链接即可:

https://play.google.com/apps/test/package-name/version-code

将应用上传到测试轨道

当您在 Play 管理中心内上传应用并创建版本时,可以让版本先经过多个测试阶段,然后再发布为正式版:

  • 内部测试:创建内部测试版本,快速分发应用以进行内部测试和质量保证检查。
  • 封闭式测试:创建封闭式测试版本,让更多测试人员测试应用的预发布版本。在让少量的员工或受信任的用户测试应用后,便可以扩展测试范围,进行开放式版本测试。“应用版本”页面中将提供一个 Alpha 版轨道,供您首次进行封闭式测试时使用。您还可以视需要创建其他封闭式测试轨道,并为其命名。
  • 开放式测试:完成封闭式测试版本的测试后,创建开放式测试版本。您可以让更广泛的用户参与开放式测试版本的测试,然后再发布应用的正式版。

通过让应用经过上述每个测试阶段,您可以向更广泛的测试人员开放应用的测试,然后再将应用发布为正式版。如需详细了解 Play 管理中心测试轨道,请参阅设置开放式测试、封闭式测试或内部测试

使用发布前测试报告找出问题

将 APK 或 app bundle 上传到开放式测试或封闭式测试轨道后,您可以检查自己的应用在搭载不同版本 Android 系统的各种设备上运行时是否存在问题。

Play 管理中心的发布前测试报告可帮助您发现以下几方面的潜在问题:

  • 稳定性
  • Android 兼容性
  • 性能
  • 无障碍功能
  • 安全漏洞

在您上传 app bundle 后,测试设备会自动启动您的应用并执行几分钟的抓取操作。抓取工具每隔几秒钟对您的应用执行一次基本操作,如输入、点按和滑动。

测试完成后,您可以在 Play 管理中心的发布前测试报告部分中查看测试结果。如需了解详情,请参阅关于如何使用发布前测试报告找出问题的 Play 管理中心帮助主题。

浏览并下载特定设备配置的 APK

当您上传 app bundle 时,Play 管理中心会自动为应用支持的所有设备配置生成拆分 APK 和多 APK。在 Play 管理中心内,您可以使用 App Bundle 资源管理器查看 Google Play 生成的所有 APK 工件,检查受支持的设备和应用的分发配置等数据,并下载生成的 APK 以在本地部署和测试。

如需了解详情,请阅读关于查看 app bundle 详细信息的 Play 管理中心帮助主题。

使用 Firebase App Distribution 测试您的 app bundle

借助 Firebase App Distribution,您可以轻松地将应用的预发布版本分发给受信任的测试人员,以便您在应用发布之前获得有价值的反馈。

使用 App Distribution,您可以在中心平台管理所有预发布版本,也可以灵活选择是直接从控制台分发这些 build,还是使用已是工作流一部分的命令行工具分发这些 build。

您需要执行几个操作步骤来为您的项目启用 Firebase App Distribution。请查看 Firebase 文档的准备工作部分。设置完项目后,请选择您想如何将 App Distribution 与您的工作流集成: