通用系统镜像 (GSI) 是一个纯 Android 实现,包含未修改的 Android 开源项目 (AOSP) 代码,可在各种 Android 设备上运行。
应用开发者可以安装和运行最新的 Android GSI,以便在各种现有的 Android 设备上执行应用测试,并使用来自不同 Android 操作系统版本阶段的 GSI,包括开发者预览版和 Beta 版本。将 GSI 添加到您的验证和测试流程中可以为您带来一些额外的好处
- 更广泛地覆盖更多真实设备上的测试
- 有更多时间修复应用兼容性问题
- 更多机会修复应用开发者报告的 Android 兼容性问题
GSI 项目是开源的,并通过提供更多方法来提高应用和操作系统的质量,从而帮助改善 Android 生态系统,从而在每次 Android 版本发布之前进行改进。
GSI 为其安装的所有设备包含相同的核心系统功能。换句话说,GSI 不包含设备制造商的自定义设置。因此,您可能会在以下情况下遇到行为差异
- 涉及 UI 的交互
- 请求更新硬件功能的工作流程
检查设备合规性
GSI 只能在具有以下特征的设备上运行
- 引导加载程序已解锁。
- 完全符合 Treble。
- 随 Android 9(API 级别 28)或更高版本一起推出。从早期版本升级到 Android 9 的设备可能支持也可能不支持 GSI。
要确定您的设备是否可以使用 GSI 以及您应该安装哪个 GSI 操作系统版本,请执行以下操作
运行以下命令检查 Treble 支持
adb shell getprop ro.treble.enabled
如果响应为
false
,则该设备与 GSI 不兼容,您不应继续。如果响应为true
,则继续执行下一步。运行以下命令检查跨版本支持
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 镜像。GSI CPU 架构类型必须与设备的 CPU 架构匹配。要查找 GSI 镜像的正确 CPU 架构,请运行以下命令
adb shell getprop ro.product.cpu.abi
使用输出确定在刷新设备时使用哪个 GSI 镜像。例如,在 Pixel 5 上,输出将指示 CPU 架构为
arm64-v8a
,因此您将使用arm64
类型的 GSI。
下载 GSI
根据您的开发需求,获取 GSI 的方法有几种
- 对于 Android 预览版 GSI 和带有 GMS 的 Android GSI,请从GSI 版本发布页面下载镜像。
对于没有 GMS 应用的预构建 GSI 镜像,请从 AOSP CI 站点下载镜像
要构建没有 GMS 的 Android GSI,请从AOSP下载源代码并构建您的 GSI。
安装 GSI
安装 GSI 取决于设备。请参阅您的设备制造商了解确切的工具和流程。对于 Google Pixel 设备(例如 Pixel 3 及更新版本),有几种安装方法
- 手动刷新 GSI 镜像:请参阅刷新 GSI 的要求
- 对于已运行 Android 10 或更高版本的设备,使用动态系统更新 (DSU):请参阅动态系统更新页面
提供反馈
GSI 旨在帮助您在 Android 上验证您的应用。我们感谢您对镜像、工具以及在您的设备上使用 GSI 的流程提供的反馈。
要通知我们错误或功能请求,请使用专用的问题跟踪程序组件用于 GSI。