盡量確保測試符合 WindowManager 不變量

如要實作一致且優質的使用者體驗,並避免導致相容性測試套件 (CTS) 失敗的問題,請實作本文所述的核心 WindowManager (WM) 原則。這些原則適用於:

  • Android 版本採用多視窗模式架構,這項架構從 Android 14 開始,並在 Android 15 中透過可調整大小的 UI 延續。

  • Android 可擴充 UI 和您自己的自訂實作項目

套用這些原則後,您就能主動避免大多數的 CTS 相容性和功能測試問題。

術語

不變量
在應用程式執行期間保持為 true 的邏輯條件,可確保結構完整性。不變量可做為邊界規則。
特殊活動
這項重要的應用程式活動也稱為「自動 UI 活動」或「系統 UI 活動」,會在螢幕上顯示專屬區域,即使使用者按下「首頁」,該區域也會持續顯示或大部分時間都會顯示,例如主要導覽或叢集應用程式。
標準活動
任何對系統核心使用者介面不重要的標準應用程式活動,例如從應用程式格線啟動的第三方媒體應用程式。

WM 原則

如要盡量符合 CTS 規範,請在 WM 實作中套用下列原則。

在活動啟動時使用穩定設定

使用單一 WM 轉場效果啟動每個新的標準活動,並設定最終位置、大小和密度。您不得在第一次轉場後立即觸發第二次轉場,變更基礎工作視窗的設定 (例如大小或密度),因為這會導致活動建立後立即發生設定變更。

將標準活動移至停止狀態

當使用者前往主畫面工作或主畫面場景時,您必須將所有正在執行的標準活動移至停止狀態,以維持 CTS 測試所需的 Android 應用程式生命週期。

防止標準活動內容遭到遮蔽

請勿繪製任何會遮蔽標準活動內容的自訂裝飾或 UI 元素。如果繪製自訂疊加層 (例如自訂氣候控制列),則必須使用 SystemOverlay 插邊向系統回報尺寸。如果是 Android 15 以上版本,請在可調整大小的使用者介面中使用 DecorPanel

在沈浸模式要求中隱藏疊加層

應用程式要求沉浸模式時,您必須隱藏所有暫時自訂 UI 元素,並移除其 SystemOverlay 插邊。持續性障礙會干擾應用程式的像素期望。

僅在螢幕層級套用圓角

請在 frameworks/base 中使用適當的資源設定,僅在螢幕層級套用圓角。請勿對標準活動的表面套用任意圓角。

這麼做會干擾 UI 元素測試。做為暫時措施,您可以為螢幕指定與標準活動表面相同的圓角半徑。

在沉浸模式要求中維持應用程式大小

當應用程式要求進入沉浸模式時,請勿調整應用程式視窗大小。這麼做會觸發中斷性設定變更。 請改為提供使用者可控的全螢幕按鈕,讓使用者自行將應用程式放到最大。