作者 / 產品管理總監 Maru Ahues Bouza
全球范圍內有超過 30 億臺 Android 設備正在使用中,這使得 Android 生態系統比以往任何時候都更加活躍。Android 移動應用能夠在手機、可折疊設備、平板電腦、Chromebook、汽車以及最新的 XR 設備等多種設備上運行。用戶選擇的是一個完整的設備生態系統,并期望他們的應用能夠在所有設備上運行。您的應用需要無縫地適應不同的屏幕大小和設備形態,以在這個多設備環境中蓬勃發展。
許多 Android 應用依賴于在單一屏幕方向和/或限制了大小調整的情況下工作的界面方法。然而,用戶希望應用能夠充分利用大屏優勢,因此 Android 設備制造商引入了備受好評的功能,以突破這些應用的限制。
鑒于此,Android 16 將在平臺層面取消應用限制屏幕方向和大小調整的能力,轉而采用一種統一的自適應應用模式,使應用能無縫適應不同的屏幕大小和方向。通過這一變更,應用的行為將更好地滿足用戶的期望,從而減少碎片化現象。同時,通過尊重用戶對屏幕方向的偏好設置,提升應用的無障礙性。我們正在構建相關工具、庫和平臺 API,以幫助您實現這一點,從而在整個 Android 生態系統中提供始終如一的卓越用戶體驗。
有哪些變更?
從 Android 16 開始,我們將逐步淘汰用于限制應用屏幕方向和大小調整的清單屬性及運行時 API,從而在各種設備上為眾多應用帶來更好的用戶體驗。
這些變更最初將適用于應用在大屏設備上運行時,其中 "大屏" 指的是顯示區域的最小寬度大于或等于 600dp 的情況。這包括:
大屏可折疊設備的內屏
平板電腦,包括桌面窗口模式
桌面環境,包括 Chromebook
以下清單屬性和 API 將在以 Android 16 (SDK 36) 為目標的大屏設備應用中被忽略:
清單屬性/API | 忽略的值 |
screenOrientation | portrait、reversePortrait、sensorPortrait、userPortrait、landscape、reverseLandscape、sensorLandscape、userLandscape |
setRequestedOrientation() | portrait、reversePortrait、sensorPortrait、userPortrait、landscape、reverseLandscape、sensorLandscape、userLandscape |
resizeableActivity | 所有 |
minAspectRatio | 所有 |
maxAspectRatio | 所有 |
在屏幕方向控制、寬高比和大小調整方面,這些變更有一些例外情況:
如前所述,這些變更不適用于最小寬度小于 600dp 的屏幕 (例如大多數手機、"翻蓋" 式設備和大屏可折疊設備的外屏)
基于 android:appCategory 標志,游戲將不受這些變更的影響
此外,用戶擁有控制權。他們可以在寬高比設置中明確選擇使用應用的默認行為。
以 API 級別 36 為目標的應用,以前在大屏設備上以信箱模式 (letterboxed) 顯示,現將在 Android 16 上以橫向模式填充整個顯示屏
讓應用具備自適應性,
為即將到來的變更做好準備
應用需要支持橫向和縱向布局,以適應用戶可以選擇的各種寬高比的窗口大小。因為將沒有辦法限制寬高比和屏幕方向僅為縱向或橫向。
要測試您的應用是否會受這些變更影響,可以在 Android Studio 中使用搭載 Pixel Tablet 和 Pixel Fold 系列模擬器的 Android 16 Beta 1 開發者預覽版,并設置 targetSdkPreview = "Baklava" 或通過啟用 UNIVERSAL_RESIZABLE_BY_DEFAULT 標志來使用應用兼容性框架。
對于那些限制屏幕方向和寬高比的現有應用,這些變更可能導致布局重疊等問題。為了解決這些問題并滿足用戶期望,我們的愿景是使應用具備自適應性,以確保無論用戶是在手機、可折疊設備、平板電腦、Chromebook、XR 設備還是在車內使用應用時,都能獲得最佳體驗。
解決常見問題
避免界面組件拉伸:如果布局是在假設為手機屏幕的情況下設計和構建的,那么應用功能可能會在其他寬高比下出現問題。例如,如果布局是在假設縱向寬高比的情況下構建的,那么填充窗口最大寬度的界面元素在橫向窗口中會被拉伸。如果布局沒有構建滾動功能,用戶可能無法點擊屏幕外的按鈕或其他界面元素,從而導致功能混淆或失效。為避
免拉伸,需要為組件添加最大寬度,并添加滾動功能以確保所有內容都可訪問。
確保相機在兩種屏幕方向上的兼容性:相機取景器預覽可能假設相對于相機傳感器的特定寬高比和屏幕方向,一旦這些假設不成立,就可能導致預覽畫面拉伸或翻轉。請確保取景器能夠正確旋轉,并考慮到界面的寬高比與傳感器的寬高比不同。
在窗口大小變化時保持狀態:取消屏幕方向和寬高比限制也意味著,應用的窗口大小將更頻繁地根據用戶使用應用的偏好發生變化,例如旋轉、折疊設備,或在多窗口/自由窗口模式下調整應用大小。默認情況下,屏幕方向變化和調整大小會導致 Activity 重建。為了確保良好的用戶體驗,在這些配置變更的過程中保留應用狀態至關重要,以免用戶在更改設備狀態或更改窗口模式時丟失之前的操作進度。
為了適應不同的窗口大小和寬高比,應使用窗口大小類來驅動布局行為,這種方式不需要針對特定設備進行自定義。在構建應用時,還應假設窗口大小會頻繁變化。沒有必要為不同的屏幕方向構建重復的特定布局,而是應確保現有界面在任何窗口大小下都能順利地重新布局。如果您有專門針對橫向或縱向設計的布局,那么這些布局仍然會被使用。
通過構建自適應性來優化窗口大小
如果您已經在構建自適應布局并支持所有屏幕方向,那么您就已經為成功做好了準備,因為您的應用將能夠適應用戶希望使用的各種設備類型和窗口模式。這些變更對您應用的影響會很小。
我們還提供了一系列測試資源,幫助您保證應用的可靠性。您可以使用 Espresso 測試框架和 Jetpack Compose 測試 API 等工具進行自動化測試。
時間表
我們理解,這些變更對于長期以來只支持縱向顯示的應用來說意義重大。此類應用可能需要調整界面問題,例如按鈕超出屏幕、內容重疊或屏幕帶有相機取景器等。
為了幫助您提前規劃并做出必要的調整,以下是這些變更的生效時間表:
Android 16 (2025):上述變更將成為以 API 級別 36 為目標的應用在大屏設備 (最小屏幕寬度大于 600dp) 上的基本體驗,開發者可以選擇暫不更改調整。
2026 年的 Android 版本:上述變更將成為以 API 級別 37 為目標的應用在大屏設備 (最小屏幕寬度大于 600dp) 上的基本體驗,開發者必須選擇接受。
目標 API 級別 | 適用設備 | 開發者是否能選擇不接受 |
36 (Android 16) |
大屏設備(最小屏幕寬度 > 600dp) | 是 |
37 (預計) | 大屏設備(最小屏幕寬度 > 600dp) | 否 |
針對特定 API 級別的截止日期取決于具體的應用商店。對于 Google Play,我們計劃在 2026 年 8 月前應用需以 API 級別 36 為目標,在 2027 年 8 月前應用需以 API 級別 37 為目標。
為 Android 16 做好準備
歡迎您參閱 Android 16 變更頁面,了解所有影響 Android 16 應用的變更,以及在您的應用受到影響時,更新應用所需的其他資源。要測試您的應用,請下載 Android 16 Beta 1 開發者預覽版,并更新至 targetSdkPreview = "Baklava",或者使用應用兼容性框架以啟用特定變更。
我們致力于幫助開發者擁抱自適應應用的新時代,在多樣化的 Android 生態系統中釋放其應用的全部潛力。歡迎您查看在多種窗口大小和設備類型下設計和構建應用的注意事項,以及如何在各種設備上測試您的應用。
隨著 Android 16 發布日期的臨近,歡迎您持續關注更多更新和資源!
-
Android
+關注
關注
12文章
3957瀏覽量
129061 -
API
+關注
關注
2文章
1545瀏覽量
63195 -
設備
+關注
關注
2文章
4602瀏覽量
71283
原文標題:自適應的未來:Android 16 中對屏幕方向和可調整大小 API 的更改
文章出處:【微信號:Google_Developers,微信公眾號:谷歌開發者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
Android 16的首個Beta版現已推出,升級功能有這些

Android16 Beta 1來襲,谷歌Pixel 6用戶搶先體驗
讓您的應用為16KB頁面大小的設備做好準備
谷歌推出Android 16首個開發者預覽版
android手機上emulate應用程序的方法
Android 16發布計劃曝光,谷歌將同步更新AOSP與Pixel設備
Android 16將新增快速設置面板磁貼大小自定義功能
是否可以通過I2C在Android 8.1的嵌入式設備上將PCM1864EVM驅動起來?
穩定性建設之變更管理

車規芯片變更如何通過AEC-Q100驗證
Android案例分享,基于瑞芯微RK3568國產平臺!

評論