通用系统镜像 (GSI)

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

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

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

GSI 项目是开源的,并通过提供更多方法来提高应用和操作系统的质量,从而帮助改善 Android 生态系统,从而在每次 Android 版本发布之前进行改进。

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

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

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

检查设备合规性

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

  • 引导加载程序已解锁。
  • 完全符合 Treble。
  • 随 Android 9(API 级别 28)或更高版本一起推出。从早期版本升级到 Android 9 的设备可能支持也可能不支持 GSI。

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

  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,则该设备完全支持供应商原生开发套件 (VNDK),并且可以使用任何比设备上操作系统版本更新的 GSI 操作系统 (OS) 版本。在可能的情况下,请使用可用的最新 GSI 操作系统版本。

    如果该属性的值为false,则该设备不完全符合 VNDK,并且该设备只能使用相同设备上操作系统版本的 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 设备(例如 Pixel 3 及更新版本),有几种安装方法

提供反馈

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

要通知我们错误或功能请求,请使用专用的问题跟踪程序组件用于 GSI。

其他资源