通用系统映像 (GSI)

通用系统映像 (GSI) 是一个纯粹的 Android 实现,包含未经修改的 Android 开源项目 (AOSP) 代码,可在各种 Android 设备上运行。

应用开发者可以安装并运行最新的 Android GSI,以便在各种现有 Android 设备上执行应用测试,并使用来自不同 Android OS 发布阶段的 GSI(包括开发者预览版和 Beta 版)。在您的验证和测试流程中添加 GSI 可以为您带来一些额外好处:

  • 在更多实际设备上实现更广泛的测试覆盖
  • 更多时间来修复应用兼容性问题
  • 有更多机会修复应用开发者报告的 Android 兼容性问题

GSI 项目是开源的,通过在每个 Android 版本发布之前提供更多改进应用和 OS 质量的方式,有助于改善 Android 生态系统。

GSI support across devices
图 1:GSI 可安装在各种设备上,有时甚至可以安装在设备制造商未提供自家系统映像的 Android 版本上。

GSI 包含在其上安装的所有设备上相同的核心系统功能。换句话说,GSI 不包含设备制造商的自定义项。因此,在以下情况下,您可能会遇到行为差异:

  • 涉及 UI 的交互
  • 请求较新硬件功能的工作流程

检查设备兼容性

GSI 只能在具有以下特征的设备上运行:

  • 引导加载程序已解锁。
  • 完全符合 Treble 要求。
  • 使用 Android 9(API 级别 28)或更高版本启动。从早期版本升级到 Android 9 的设备可能支持或可能不支持 GSI。

要确定您的设备是否可以使用 GSI 以及应该安装哪个 GSI OS 版本,请执行以下操作:

  1. 运行以下命令检查 Treble 支持:

    adb shell getprop ro.treble.enabled

    如果响应为 false,则设备与 GSI 不兼容,您不应继续。如果响应为 true,请继续下一步。

  2. 运行以下命令检查跨版本支持:

    adb shell cat /system/etc/ld.config.version_identifier.txt \
    | grep -A 20 "\[vendor\]"

    在输出中,在 [vendor] 部分查找 namespace.default.isolated

    如果该属性的值为 true,则设备完全支持 Vendor Native Development Kit (VNDK),并且可以使用任何比设备上 OS 版本新的 GSI 操作系统 (OS) 版本。在可能的情况下,请使用最新的可用 GSI OS 版本。

    如果该属性的值为 false,则设备不完全符合 VNDK 要求,并且设备只能使用与设备上 OS 版本相同的 GSI。例如,不符合 VNDK 要求的 Android 10(API 版本 29)设备只能加载 Android 10 GSI 映像。

  3. GSI CPU 架构类型必须与设备的 CPU 架构匹配。要查找 GSI 映像的正确 CPU 架构,请运行以下命令:

    adb shell getprop ro.product.cpu.abi

    使用输出确定刷入设备时使用哪个 GSI 映像。例如,在 Pixel 5 上,输出将指示 CPU 架构是 arm64-v8a,因此您应该使用 arm64 类型的 GSI。

下载 GSI

根据您的开发需求,有几种获取 GSI 的方法:

安装 GSI

GSI 的安装取决于设备。请参阅设备制造商以获取准确的工具和步骤。对于 Google Pixel 3 及更新型号等 Pixel 设备,有几种安装方法:

提供反馈

GSI 旨在帮助您在 Android 上验证您的应用。我们感谢您对 GSI 映像、工具以及在设备上使用 GSI 过程的反馈。

要向我们报告 bug 或功能请求,请使用 GSI 的专用问题跟踪组件

更多资源