Android 應用程式可支援各種裝置,包括手機、平板電腦、折疊式裝置、ChromeOS 裝置、車輛、電視,甚至是 XR。為適應這種多樣化的環境,應用程式應支援所有裝置板型規格和螢幕尺寸。
Android 16 (API 級別 36) 允許應用程式覆寫螢幕方向、顯示比例和可調整大小的應用程式限制,以適應不同的板型規格和螢幕尺寸。覆寫適用於最小寬度 >= 600dp 的裝置,定義如下:
- 平板電腦
- 大螢幕摺疊式裝置的內螢幕
- 電腦分割視窗 (適用於所有版型規格)
如果螢幕的最小寬度 >= 600dp,指定 API 級別 36 的應用程式即可調整大小,並進入多視窗模式 (相當於 resizeableActivity="true"
)。
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 管理標記並自動提供 App Bundle 的優點。另請參閱「應用程式資訊清單總覽」。
使用者在顯示比例設定中選擇採用應用程式的預設行為
選擇退出
如要停用 API 級別 36 的行為,請宣告 PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY
資訊清單屬性。
如要選擇不參與特定活動,請在 <activity>
元素中設定屬性:
<activity ...>
<property
android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
android:value="true" />
...
</activity>
如要為整個應用程式停用這項功能,請在 <application>
元素中設定屬性:
<application ...>
<property
android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
android:value="true" />
...
</application>
測試
如要測試應用程式是否受到 Android 16 變更的影響,請在 Android Studio 中使用 Pixel Tablet 和 Pixel Fold 系列模擬器,並在應用程式模組的 build.gradle
檔案中設定 targetSdkPreview = "Baklava"
。
或者,在測試裝置上啟用 UNIVERSAL_RESIZABLE_BY_DEFAULT 標記,使用應用程式相容性架構 (請參閱「相容性架構工具」)。
您可以使用 Espresso 測試架構和 Jetpack Compose 測試 API,將測試作業自動化。
常見問題
如果應用程式限制裝置螢幕方向、長寬比或應用程式大小調整功能,在 Android 16 上可能會出現顯示問題,例如版面配置重疊。
如要在手機、摺疊式裝置、平板電腦、ChromeOS 裝置、車輛螢幕和 XR 裝置上提供最佳使用者體驗,請建構回應式和自動調整式應用程式:
避免 UI 元件遭到延展:為標準直向手機螢幕設計的版面配置,可能無法配合其他螢幕比例。舉例來說,如果 UI 元素填滿整個螢幕寬度,在橫向模式下就會顯示為延展狀態。為元件新增寬度上限,避免延展。
啟用版面配置捲動功能:如果版面配置無法捲動,使用者可能無法存取橫向模式下螢幕外的按鈕或其他 UI 元素。啟用應用程式版面配置捲動功能,確保無論螢幕高度為何,所有內容都能觸及。
確保相機在直向和橫向模式下都能正常運作:如果相機觀景窗預覽畫面假設特定顯示比例和方向與相機感應器相關,在不相容的螢幕上可能會導致預覽畫面延展或翻轉。確認觀景窗會隨著方向變更正確旋轉。 啟用觀景窗,調整為與感應器顯示比例不同的 UI 顯示比例。
在視窗大小變更期間保留狀態:移除螢幕方向和長寬比限制後,應用程式視窗大小可能會頻繁變更,以配合使用者偏好的應用程式使用方式,例如旋轉、摺疊或展開裝置,或是在多視窗或電腦視窗模式下調整應用程式大小。設定變更 (例如螢幕方向變更和視窗大小調整) 會導致活動重建 (預設)。為確保最佳使用者體驗,請在設定變更期間保留應用程式狀態,讓應用程式保留資料 (例如表單輸入內容),使用者也能維持情境。
使用視窗大小類別:支援不同的視窗大小和螢幕比例,無需針對特定裝置進行自訂。假設視窗大小會經常變更。使用視窗大小類別來描述視窗尺寸,然後套用適當的自動調整式版面配置。
建構回應式版面配置:在視窗大小類別中,回應式版面配置會根據螢幕尺寸變化進行調整,確保應用程式呈現最佳狀態。
時間軸
Android 16 (2025 年):針對 API 級別 36 的應用程式,支援所有螢幕方向和顯示比例,以及應用程式大小調整功能,是大型螢幕裝置 (最小螢幕寬度 >= 600dp) 的基本體驗。不過,開發人員可以選擇停用。
2026 年發布的 Android 版本:對於以 API 級別 37 為目標的應用程式,支援所有螢幕方向和顯示比例,以及應用程式可調整大小功能,將成為大螢幕裝置 (最小螢幕寬度 >= 600dp) 的基本體驗。開發人員無法選擇退出。
目標 API 級別 | 適用裝置 | 允許開發人員退出 |
---|---|---|
36 (Android 16) | 大螢幕裝置 (最小螢幕寬度 >= 600dp) | 是 |
37 (預計) | 大螢幕裝置 (最小螢幕寬度 >= 600dp) | 否 |
指定特定 API 級別的期限因應用程式商店而異。自 2026 年 8 月起,Google Play 將要求應用程式指定 API 級別 36;自 2027 年 8 月起,則要求指定 API 級別 37。