應用程式方向、顯示比例和大小調整功能

Android 應用程式可支援各種裝置,包括手機、平板電腦、折疊式裝置、ChromeOS 裝置、車輛、電視,甚至是 XR。為適應這種多樣化的環境,應用程式應支援所有裝置板型規格和螢幕尺寸。

Android 16 (API 級別 36) 允許應用程式覆寫螢幕方向、顯示比例和可調整大小的應用程式限制,以適應不同的板型規格和螢幕尺寸。覆寫適用於最小寬度 >= 600dp 的裝置,定義如下:

  • 平板電腦
  • 大螢幕摺疊式裝置的內螢幕
  • 電腦分割視窗 (適用於所有版型規格)

指定目標 API 級別 36 的應用程式,如果螢幕的最小寬度 >= 600dp,就能調整大小,並進入多視窗模式 (相當於 resizeableActivity="true")。

在 Android 16 推出前,應用程式在未摺疊的大螢幕裝置上會顯示上下黑邊,但以 Android 16 為目標版本時,則會顯示全螢幕。應用程式在全螢幕模式下顯示的新聞項目,會比在上下加上黑邊時多。
圖 1. 開發人員新聞動態消息先前在大螢幕裝置上會顯示上下黑邊 (左側),但以 Android 16 為目標時,會以全螢幕顯示 (右側)。

Android 16 會強制執行一致的自動調整式應用程式設計模型,尊重使用者對裝置螢幕方向、顯示比例和顯示大小的偏好設定,進而最佳化使用者體驗。

變更

如果應用程式指定 Android 16 (API 級別 36) 為目標版本,系統會在大螢幕上忽略下列資訊清單屬性和 API:

屬性或 API 遭忽略的值
screenOrientation portrait,landscape,reversePortrait,reverseLandscape,sensorPortrait,sensorLandscape,userPortrait,userLandscape
resizeableActivity 全部
minAspectRatio 全部
maxAspectRatio 全部
setRequestedOrientation()

getRequestedOrientation()
portrait,landscape,reversePortrait,reverseLandscape,sensorPortrait,sensorLandscape,userPortrait,userLandscape

例外狀況

Android 16 變更的例外情形包括:

  • 螢幕小於 sw600dp (大多數手機、折疊式手機,以及大螢幕折疊式裝置的外部螢幕)

  • 以 android:appCategory 旗標為準的遊戲

    使用 Android App Bundle 和 Play 應用程式簽署功能發布遊戲,讓 Google Play 管理標記並自動提供應用程式套件的優點。另請參閱「應用程式資訊清單總覽」。

  • 使用者在顯示比例設定中選擇應用程式的預設行為

選擇退出

To opt out of the API level 36 behavior, declare the PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY manifest property.

To opt out for a specific activity, set the property in the <activity> element:

<activity ...>
    <property
        android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
        android:value="true" />
    ...
</activity>

To opt out for your entire app, set the property in the <application> element:

<application ...>
    <property
        android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
        android:value="true" />
    ...
</application>

If your app targets Android 16 (API level 36) or higher, this property doesn't lock the display orientation or prevent screen rotation on large displays.

測試

如要測試應用程式是否受到 Android 16 變更的影響,請在 Android Studio 中使用 Pixel Tablet 和 Pixel Fold 系列模擬器,並在應用程式模組的 build.gradle 檔案中設定 targetSdkPreview = "Baklava"。

或者,在測試裝置上啟用 UNIVERSAL_RESIZABLE_BY_DEFAULT 標記,使用應用程式相容性架構 (請參閱「相容性架構工具」)。

您可以使用 Espresso 測試框架和 Jetpack Compose 測試 API,將測試自動化。

實作指南

如果應用程式限制裝置螢幕方向、長寬比或應用程式大小調整功能,在 Android 16 上可能會出現顯示問題,例如版面配置重疊。為在手機、摺疊式裝置、平板電腦、ChromeOS 裝置等裝置上提供最佳使用者體驗,請建構回應式和自動調整式應用程式。

完備性檢查清單

請使用下列檢查清單,確保應用程式已準備好因應 Android 16 的變更:

  • 避免 UI 元件遭到延展:為標準直向手機螢幕設計的版面配置,可能無法配合其他螢幕比例。舉例來說,如果 UI 元素填滿整個螢幕寬度,在橫向螢幕方向下可能會出現延展效果。為元件新增寬度上限,避免延展。
  • 啟用版面配置捲動功能:如果版面配置無法捲動,使用者可能無法存取橫向模式下螢幕外的按鈕或其他 UI 元素。啟用應用程式版面配置捲動功能,確認無論螢幕高度為何,所有內容都能觸及。
  • 確認直向和橫向的相機相容性:相機觀景窗預覽畫面會假設相機感應器的特定顯示比例和螢幕方向,因此在不相容的螢幕上可能會出現延展或翻轉的預覽畫面。確認觀景窗會隨著螢幕方向變更正確旋轉。啟用觀景窗,調整為與感應器顯示比例不同的 UI 顯示比例。
  • 在視窗大小變更期間保留狀態:移除螢幕方向和顯示比例限制後,應用程式視窗大小可能會頻繁變更,以配合使用者偏好的應用程式使用方式,例如旋轉、摺疊或展開裝置,或是在多視窗模式或電腦分割視窗模式下調整應用程式大小。設定變更 (例如螢幕方向變更和視窗大小調整) 會導致活動重建 (預設)。為提供最佳使用者體驗,請保留應用程式狀態,讓應用程式保留資料 (例如表單輸入內容),使用者也能維持情境。
  • 使用視窗大小類別:支援不同的視窗大小和螢幕比例,不必進行裝置專屬的自訂作業。假設視窗大小會經常變更。使用視窗大小類別描述視窗尺寸,然後套用適當的自動調整式版面配置。
  • 建構回應式版面配置:在視窗大小類別中,回應式版面配置會配合螢幕尺寸變化調整,確保應用程式呈現最佳狀態。

如需在 Compose 中建構自動調整式版面配置的實作指南,請參閱「使用 Jetpack Compose 建構自動調整式應用程式」程式碼研究室。如果您要遷移使用 View 的應用程式,請參閱 Compose 採用策略。

時間軸

  • Android 16 (2025 年):針對目標 API 級別 36 的應用程式,支援所有螢幕方向和顯示比例,以及應用程式大小調整功能,是大型螢幕裝置 (最小螢幕寬度 >= 600dp) 的基本體驗。不過,開發人員可以選擇停用。
目標 API 級別 適用裝置 允許開發人員退出
36 (Android 16) 大螢幕裝置 (最小螢幕寬度 >= 600dp) 是

指定特定 API 級別的期限因應用程式商店而異。自 2026 年 8 月起,Google Play 將要求應用程式指定 API 級別 36。

其他資源