通用系统映像 (GSI) 是一种纯 Android 实现,采用未经修改的 Android 开源项目 (AOSP) 代码,可在各种 Android 设备上运行。
应用开发者可以安装并运行最新的 Android GSI,以便在各种现有 Android 设备上执行应用测试,并使用不同 Android 操作系统版本(包括开发者预览版和 Beta 版 build)中的 GSI。向验证和测试流程中添加 GSI 还有一些额外的好处:
- 在更多实体设备上进行更广泛的测试
- 有更多时间来解决应用兼容性问题
- 有更多机会解决应用开发者报告的 Android 兼容性问题
GSI 项目是开源项目,可在每个 Android 版本发布之前提供更多方法来提高应用和操作系统的质量,从而帮助改善 Android 生态系统。
在所有安装 GSI 的设备上,GSI 的核心系统功能都相同。也就是说,GSI 不包含设备制造商自定义的功能。因此在以下情况下,您可能会遇到行为差异:
- 涉及界面的互动
- 需要更新的硬件功能的工作流
检查设备合规性
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。例如,如果搭载 Android 10(API 版本 29)的设备与 VNDK 不兼容,则只能加载 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,具体取决于您的开发需求:
- 如果需要包含 GMS 的 Android 预览版 GSI 和 Android GSI,请从 GSI 发布页面下载映像。
如果需要不含 GMS 应用的预构建 GSI 映像,请从 AOSP CI 网站下载:
如需构建不含 GMS 的 Android GSI,请从 AOSP 下载源代码并构建您的 GSI。
安装 GSI
GSI 的安装方式视设备而定。如需了解确切的工具和步骤,请咨询设备制造商。对于 Pixel 3 及更新型号的 Google Pixel 设备,有以下几种安装方式:
- 手动刷写 GSI 映像:请参阅刷写 GSI 的要求
- 对于已经搭载 Android 10 或更高版本的设备,使用动态系统更新 (DSU):请参阅动态系统更新页面
提供反馈
GSI 旨在帮助您在 Android 上验证应用。非常感谢您针对映像、工具以及在设备上使用 GSI 的过程提供反馈。
如有任何 bug 和功能请求要告知我们,请使用 GSI 的专用问题跟踪器组件。