通用系統映像檔 (GSI) 是「純 Android」實作項目,具備未經修改的 Android 開放原始碼計畫 (AOSP) 程式碼,可在多種 Android 裝置上執行。
應用程式開發人員可安裝並執行最新的 Android GSI,在各種現有的 Android 裝置上執行應用程式測試,並將 GSI 用於不同的 Android 作業系統發布階段,包括開發人員預覽版和 Beta 版。將 GSI 加入驗證和測試程序,可以帶來額外好處:
- 針對更多實際裝置擴大測試涵蓋範圍
- 有更多時間修正應用程式相容性問題
- 有更多機會修正由應用程式開發人員回報的 Android 相容性問題
GSI 專案屬於開放原始碼專案,可在每個 Android 版本推出前提供更多改善應用程式和 OS 品質的方法,進而改善 Android 生態系統。
![GSI 支援各種裝置](https://developer.android.com/static/topic/generic-system-image/images/gsi-support.png?authuser=0000&hl=zh-tw)
GSI 與所有安裝 GSI 的裝置具備相同的核心系統功能。也就是說,GSI 並不包含裝置製造商自訂項目。因此,您可能會在下列情況中遇到行為差異:
- 與 UI 相關的互動
- 要求較新硬體功能的工作流程
檢查裝置相容性
GSI 僅適用於具備下列特性的裝置:
- 系統啟動載入程式已解鎖。
- 完全符合 Treble。
- 推出時搭載 Android 9 (API 級別 28) 或以上版本。從較舊版本升級至 Android 9 的裝置可能不支援 GSI。
如要判斷裝置是否可使用 GSI,以及應安裝哪個 GSI OS 版本,請執行下列步驟:
請執行下列指令,確認是否支援 Treble:
adb shell getprop ro.treble.enabled
如果回應是
false
,代表裝置與 GSI 不相容,請勿繼續操作。如果回應是true
,請繼續下一步驟。請執行下列指令,確認是否可跨版本支援:
adb shell cat /system/etc/ld.config.version_identifier.txt \ | grep -A 20 "\[vendor\]"
在輸出結果中,查看
namespace.default.isolated
的[vendor]
區段。如果此屬性值為
true
,則裝置會完整支援 Vendor Native Development Kit (VNDK),且可使用比裝置端 OS 版本還新的任何 GSI 作業系統 (OS) 版本。請盡可能使用可用的最新 GSI OS 版本。如果此屬性值為
false
,代表裝置並不完全符合 VNDK 的規定,因此裝置只能使用與裝置 OS 版本相同的 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 映像檔,請從 Android 開放原始碼計畫 CI 網站下載映像檔。
如要建構不含 GMS 的 Android GSI,請透過 Android 開放原始碼計畫下載原始碼,然後建構 GSI。
安裝 GSI
安裝 GSI 會因裝置而異。如要瞭解確切工具和程序,請洽詢裝置製造商。若是 Pixel 3 以上的 Google Pixel 裝置,可採用多種安裝方式:
- 手動刷新 GSI 映像檔:請參閱「刷新 GSI 的規定」
- 為搭載 Android 10 以上版本的裝置使用動態系統更新 (DSU):請參閱「動態系統更新」頁面
提供意見
GSI 的用意是協助您在 Android 上驗證應用程式。我們非常重視您的意見回饋,希望瞭解您對 GSI 映像檔、工具及在裝置上使用 GSI 的體驗。
如要回報錯誤或提出功能要求,請使用 GSI 專屬的 Issue Tracker 元件。