相容性架構異動 (Android Disney13)

圖 1. 開發人員選項中的「應用程式相容性變更」畫面會列出可切換的變更。

本頁說明與相容性有關的可切換變更 Android 13 (API 級別 33) 的架構。請將這份清單與 開發人員選項和 ADB 指令 準備要支援 Android 13 並指定應用程式為目標時,測試應用程式並進行偵錯。

您可以使用相容性架構工具進行下列操作:

  • 在不必實際變更應用程式 targetSdkVersion 的情況下,對鎖定的變更進行測試。您可以使用切換按鈕強制啟用 變更鎖定行為,以評估對現有應用程式的影響。
  • 僅對特定變更進行測試。與其為了 一次處理所有指定變更,只要使用切換按鈕,就能停用 鎖定變更,但您要測試的項目除外
  • 透過 ADB 管理切換按鈕。您可以使用 ADB 指令 在自動化測試中啟用及停用可切換的變更 環境。
  • 使用標準變更 ID 加快偵錯速度。個別可切換的變更 不重複的 ID 和名稱,可用於快速找出問題的根源 記錄檔輸出工具

如需此類用途的詳細工具使用說明,請參閱相容性架構工具一文。

相容性架構中的行為變更

本節中的清單說明 Android 13 相容性架構中包含的可切換變更。

您可以按預設狀態篩選變更清單。

Android 13 相容性架構中的可切換變更

ACCOUNT_ACCESS_CHECK_CHANGE_ID

變更 ID:201794303
預設狀態:已針對指定 Android 13 (API 級別 33) 以上版本為目標的應用程式啟用。

如果應用程式指定 Android 13 (API 級別 33) 以上版本為目標,請啟用 檢查所有用戶端上是否有呼叫 UID 的帳戶存取權 和同步處理相關 API

ALLOW_COPY_SOLID_COLOR_VIEW

變更 ID:205907456
預設狀態:已針對指定 Android 13 (API 級別 33) 以上版本為目標的應用程式啟用。

如果應用程式指定 Android 13 (API 級別 33) 以上版本為目標,允許 用來接收 SplashScreen.OnExitAnimationListener.onSplashScreenExit(SplashScreenView) 回呼,即使啟動畫面只顯示純色也是如此。

ALLOW_SECURE_ACTIVITY_DISPLAY_ON_REMOTE_DEVICE

變更 ID:201712607
預設狀態:已針對指定 Android 13 (API 級別 33) 以上版本為目標的應用程式啟用。

針對指定 Android 13 (API 級別 33) 以上版本的應用程式,您可以 視需要在遠端裝置上顯示安全活動。

BORINGLAYOUT_FALLBACK_LINESPACING

變更 ID:210923482
預設狀態:已針對指定 Android 13 (API 級別 33) 以上版本為目標的應用程式啟用。

如果應用程式指定 Android 13 (API 級別 33) 以上版本為目標,請啟用 設定備用文字行間距 (行高) BoringLayout

CALL_REDIRECTION_AUDIO_MODES

變更 ID:189472651
預設狀態:已針對指定 Android 13 (API 級別 33) 以上版本為目標的應用程式啟用。

如果應用程式指定 Android 13 (API 級別 33) 以上版本為目標,允許使用 適用於通話音訊重新導向的音訊模式

CAMERA_MIC_INDICATORS_NOT_PRESENT

變更 ID:162547999
預設狀態:已為所有應用程式停用。

表示此裝置支援攝影機和麥克風指示燈。如果發生下列情形,將是 false 共用,因為 CompatChanges#isChangeEnabled 如果沒有變更 ID,此方法會傳回 true

CLEAR_SHOW_FORCED_FLAG_WHEN_LEAVING

變更 ID:214016041
預設狀態:已針對指定 Android 13 (API 級別 33) 以上版本為目標的應用程式啟用。

針對指定 Android 13 (API 級別 33) 以上版本的應用程式,請避免 這個 SHOW_FORCED 旗標,除非呼叫端目前處於焦點,否則不會有任何效果。

DEFER_BOOT_COMPLETED_BROADCAST_CHANGE_ID

變更 ID:203704822
預設狀態:已針對指定 Android 13 (API 級別 33) 以上版本為目標的應用程式啟用。

針對指定 Android 13 (API 級別 33) 以上版本的應用程式,則延後 「LOCKED_BOOT_COMPLETED」和「BOOT_COMPLETED」 直到 UID 中第一個程序 已開始。

DISALLOW_DEADLINES_FOR_PREFETCH_JOBS

變更 ID:194532703
預設狀態:已針對指定 Android 13 (API 級別 33) 以上版本為目標的應用程式啟用。

針對指定 Android 13 (API 級別 33) 以上版本為目標版本的應用程式,禁止為預先載入作業 (JobInfo.Builder.setPrefetch(boolean)) 設定期限 (使用 JobInfo.Builder.setOverrideDeadline(long))。預先擷取工作旨在在下次啟動應用程式時執行,因此不允許設定截止日期。不過,系統不會 能夠捨棄或取消任何先前排定的預先擷取工作 期限。

應用程式無法保留永久排定的預先擷取工作,且該工作有截止期限。設有期限的預先擷取工作 這項限制的應用程式將無法排定新的執行時段 預先擷取工作,並設定期限。如果您使用 JobService.jobFinished(JobParameters, boolean)JobService.onStopJob(JobParameters) 的傳回值,透過提供 true 來重新排定工作,系統就會放棄期限。週期性工作需要符合所有限制條件,因此 相關限制不適用於他們的期限。

DOWNSCALED

變更 ID:168419799
預設狀態:已為所有應用程式停用。

這項變更可為所有依應用程式緩衝區降階的變更把關。啟用這項變更之後,下列縮放比例係數就會 :

為應用程式套件啟用這項變更後,應用程式就會強制將大小調整為已啟用的最高比例係數。舉例來說,如果同時啟用 80% 和 70% (DOWNSCALE_80DOWNSCALE_70),系統就會使用 80%。

DOWNSCALE_30

變更 ID:189970040
預設狀態:已為所有應用程式停用。

此時如果也啟用了 DOWNSCALED,則此套件變更會使得應用程式假設當下運行螢幕的垂直和水平解析度為實際螢幕的 30%。

DOWNSCALE_35

變更 ID:189969749
預設狀態:已為所有應用程式停用。

此時如果也啟用了 DOWNSCALED,則此套件變更會使得應用程式假設當下運行螢幕的垂直和水平解析度為實際螢幕的 35%。

DOWNSCALE_40

變更 ID:189970038
預設狀態:已為所有應用程式停用。

同時 DOWNSCALED 也是 啟用後,此套件變更會強制應用程式假設 廣告在螢幕上的顯示比例,垂直和水平的 40% 以及解析度

DOWNSCALE_45

變更 ID:189969782
預設狀態:已為所有應用程式停用。

同時 DOWNSCALED 也是 啟用後,此套件變更會強制應用程式假設 目前螢幕的顯示比例在 45% 的垂直和水平方向 以及解析度

DOWNSCALE_50

變更 ID:176926741
預設狀態:已為所有應用程式停用。

此時如果也啟用了 DOWNSCALED,則此套件變更會使得應用程式假設當下運行螢幕的垂直和水平解析度為實際螢幕的 50%。

DOWNSCALE_55

變更 ID:189970036
預設狀態:已為所有應用程式停用。

同時 DOWNSCALED 也是 啟用後,此套件變更會強制應用程式假設 目前螢幕的顯示比例是 55% 的垂直和水平 以及解析度

DOWNSCALE_60

變更 ID:176926771
預設狀態:已為所有應用程式停用。

同時 DOWNSCALED 也是 啟用後,此套件變更會強制應用程式假設 廣告在螢幕上放送,垂直和水平的 60% 以及解析度

DOWNSCALE_65

變更 ID:189969744
預設狀態:已為所有應用程式停用。

此時如果也啟用了 DOWNSCALED,則此套件變更會使得應用程式假設當下運行螢幕的垂直和水平解析度為實際螢幕的 65%。

DOWNSCALE_70

變更 ID:176926829
預設狀態:已為所有應用程式停用。

同時 DOWNSCALED 也是 啟用後,此套件變更會強制應用程式假設 廣告在螢幕上放送,垂直和水平的 70% 以及解析度

DOWNSCALE_75

變更 ID:189969779
預設狀態:已為所有應用程式停用。

此時如果也啟用了 DOWNSCALED,則此套件變更會使得應用程式假設當下運行螢幕的垂直和水平解析度為實際螢幕的 75%。

DOWNSCALE_80

變更 ID:176926753
預設狀態:已為所有應用程式停用。

同時 DOWNSCALED 也是 啟用後,此套件變更會強制應用程式假設 廣告在螢幕上放送,垂直和水平的 80% 以及解析度

DOWNSCALE_85

變更 ID:189969734
預設狀態:已為所有應用程式停用。

同時 DOWNSCALED 也是 啟用後,此套件變更會強制應用程式假設 目前螢幕的顯示比例在 85% 的垂直或水平 以及解析度

DOWNSCALE_90

變更 ID:182811243
預設狀態:已為所有應用程式停用。

此時如果也啟用了 DOWNSCALED,則此套件變更會使得應用程式假設當下運行螢幕的垂直和水平解析度為實際螢幕的 90%。

DUMP_IGNORES_SPECIAL_ARGS

變更 ID:149254050
預設狀態:已針對指定 Android 13 (API 級別 33) 以上版本為目標的應用程式啟用。

針對指定 Android 13 (API 級別 33) 以上版本的應用程式, dump(String, FileDescriptor, PrintWriter, String[]) 如果使用某些值呼叫 dumpsys activity,則不會呼叫 特殊引數

DYNAMIC_RECEIVER_EXPLICIT_EXPORT_REQUIRED

變更 ID:161145287
預設狀態:已為所有應用程式停用。

啟用之後,當應用程式要為未受保護的廣播訊息註冊接收端時,便必須明確設定 Context.RECEIVER_EXPORTEDContext.RECEIVER_NOT_EXPORTED

詳情請參閱為已註冊使用情境的接收端提供更安全的匯出服務一節。

ENABLE_PENDING_INTENT_BAL_OPTION

變更 ID:192341120
預設狀態:已針對指定 Android 13 (API 級別 33) 以上版本為目標的應用程式啟用。

若應用程式指定 Android 13 (API 級別 33) 以上版本為目標,請採取保護措施 PendingIntent未遭人濫用,改為開啟背景 活動。

ENABLE_SIMPLIFIED_DARK_MODE

變更 ID:214741472
預設狀態:已針對指定 Android 13 (API 級別 33) 以上版本為目標的應用程式啟用。

針對指定 Android 13 (API 級別 33) 以上版本的應用程式,允許網頁內容根據應用程式主題套用淺色或深色樣式,並在適當情況下,透過演算法調暗 WebView 的網頁內容。詳情請參閱 setAlgorithmicDarkeningAllowed(boolean)

ENABLE_TOUCH_OPAQUE_ACTIVITIES

變更 ID:194480991
預設狀態:已為所有應用程式啟用。

在 Android 13 (API 級別 33) 以上版本中執行的應用程式: 活動會消耗任務範圍內的所有觸控事件。

ENABLE_USE_EXACT_ALARM

變更 ID:218533173
預設狀態:已針對指定 Android 13 (API 級別 33) 以上版本為目標的應用程式啟用。

針對指定 Android 13 (API 級別 33) 以上版本為目標版本的應用程式,允許特定類型的應用程式使用 Manifest.permission.USE_EXACT_ALARM 排定精確鬧鐘。

ENFORCE_INTENTS_TO_MATCH_INTENT_FILTERS

變更 ID:161252188
預設狀態:已為所有應用程式啟用。

元件會停止接收不符合其宣告意圖篩選器的外部呼叫端意圖。當應用程式在資訊清單中註冊已匯出的元件,並新增意圖篩選器時,任何意圖 (即使不符合意圖篩選器) 都能啟動該元件。事實證明,許多開發人員 因此可能不符合直覺如果在元件啟動時未檢查意圖,在某些情況下,這可能會讓第三方應用程式觸發僅限內部使用的功能。

ENFORCE_STRICT_QUERY_BUILDER

變更 ID:143231523
預設狀態:已為所有應用程式停用。

啟用後,SQLiteQueryBuilder 會驗證所有憑證 根據惡意內容選取 CalendarProvider2 個查詢 引數。

FORCE_DISABLE_HEVC_SUPPORT

變更 ID:174227820
預設狀態:已為所有應用程式停用。

強制停用應用程式支援 HEVC 媒體功能。 應用程式應在其資訊清單中宣告支援的媒體功能,不過這個標記可用來強制禁止應用程式支援 HEVC,進而在存取以 HEVC 編碼的媒體時執行強制轉碼。設定此標記後,系統將會覆寫應用程式所有 OS 級別的預設值。此設定依預設為停用狀態,表示這是 OS 預設值 的優先順序。如果同時標記 FORCE_ENABLE_HEVC_SUPPORT 已啟用,OS 會忽略 這兩個旗標

FORCE_ENABLE_HEVC_SUPPORT

變更 ID:174228127
預設狀態:已為所有應用程式停用。

強制允許應用程式支援 HEVC 媒體功能 應用程式應在其資訊清單中宣告支援的媒體功能,不過這個標記可用來強制要求應用程式支援 HEVC,進而避免在存取以 HEVC 編碼的媒體時進行轉碼。設定 此標記會覆寫應用程式所有 OS 級別的預設值。這項功能已由以下使用者停用: 預設值,表示系統會優先採用 OS 預設值。如果同時啟用此標記和 FORCE_DISABLE_HEVC_SUPPORT,OS 會忽略兩個標記。

FORCE_NON_RESIZE_APP

變更 ID:181136395
預設狀態:已為所有應用程式停用。

強制將已套用的套件強制設為無法調整大小。

FORCE_RESIZE_APP

變更 ID:174042936
預設狀態:已為所有應用程式停用。

強制要求已套用的套件啟用調整大小操作。只有 允許在全螢幕模式下調整尺寸,但不強制使用應用程式 切換至可調整大小的多視窗模式。

GET_API_SIGNATURES_FROM_UICC_PORT_INFO

變更 ID:202110963
預設狀態:已針對指定 Android 13 (API 級別 33) 以上版本為目標的應用程式啟用。

針對指定 Android 13 (API 級別 33) 以上版本的應用程式,您可以 SIM 卡可以同時啟用多個 ICCID。 這項功能由多個啟用設定檔 (MEP) 提供。

GWP_ASAN

變更 ID:135634846
預設狀態:已為所有應用程式停用。

在應用程式中啟用取樣的原生記憶體錯誤偵測功能。

如要進一步瞭解如何使用 GWP-ASan,請參閱 GWP-ASan 指南

ICC_CLOSE_CHANNEL_EXCEPTION_ON_FAILURE

變更 ID:208739934
預設狀態:已針對指定 Android 13 (API 級別 33) 以上版本為目標的應用程式啟用。

針對指定 Android 13 (API 級別 33) 以上版本的應用程式, 現在每當 ICC 關閉頻道作業時,就會擲回例外狀況 失敗。

MEDIA_CONTROL_SESSION_ACTIONS

變更 ID:203800354
預設狀態:已針對指定 Android 13 (API 級別 33) 以上版本為目標的應用程式啟用。

如果應用程式指定 Android 13 (API 級別 33) 以上版本,則以 Notification.MediaStyle 通知為基礎的媒體控制項現在會執行以媒體工作階段的 PlaybackState 為基礎的動作,而非通知的動作。

如要進一步瞭解這項變更,請參閱 Android 13 中的章節 行為變更頁面 媒體控制項相關異動

NATIVE_HEAP_ZERO_INIT

變更 ID:178038272
預設狀態:已為所有應用程式停用。

啟用原生堆積記憶體配置的自動零初始化功能。

NATIVE_MEMTAG_ASYNC

變更 ID:135772972
預設狀態:已為所有應用程式停用。

在此程序中啟用非同步 (ASYNC) 記憶體標記檢查。此標記只會影響支援 ARM 的硬體 Memory Tagging Extension (MTE)。

NATIVE_MEMTAG_SYNC

變更 ID:177438394
預設狀態:已為所有應用程式停用。

在此程序中啟用同步 (SYNC) 記憶體標記檢查。此標記只會影響支援 ARM Memory Tagging Extension (MTE) 的硬體。如果同時啟用 NATIVE_MEMTAG_ASYNC 和這個選項,則此選項會 優先順序,而 MTE 也在 SYNC 模式下啟用。

NOTIFICATION_LOG_ASSISTANT_CANCEL

變更 ID:195579280
預設狀態:已針對指定 Android 13 (API 級別 33) 以上版本為目標的應用程式啟用。

如果應用程式指定 Android 13 (API 級別 33) 以上版本為目標,請啟用 即可瞭解 而不是透過 較通用的 REASON_LISTENER_CANCEL

NOTIFICATION_PERM_CHANGE_ID

變更 ID:194833441
預設狀態:已針對指定 Android 13 (API 級別 33) 以上版本為目標的應用程式啟用。

針對指定 Android 13 (API 級別 33) 以上版本為目標版本的應用程式,啟用通知執行階段權限相關的行為變更。

如要進一步瞭解這項異動,請參閱有關新通知執行階段權限的頁面。

NOTIFICATION_TRAMPOLINE_BLOCK_FOR_EXEMPT_ROLES

變更 ID:227752274
預設狀態:已針對指定 Android 13 (API 級別 33) 以上版本為目標的應用程式啟用。

針對指定 Android 13 (API 級別 33) 以上版本的應用程式, 「Activity」的直播來源為廣播接收器, 回應通知和通知動作點擊的服務 系統會基於使用者體驗和效能方面的考量 與先前豁免的角色擁有者 (瀏覽器) 一樣。

OVERRIDABLE_COMPONENT_CALLBACKS

變更 ID:193247900
預設狀態:已針對指定 Android 13 (API 級別 33) 以上版本為目標的應用程式啟用。

針對指定 Android 13 (API 級別 33) 以上版本的應用程式, registerComponentCallbacks(ComponentCallbacks) 新增 ComponentCallbacksActivityContextWrapper.getBaseContext() 而不是一律新增 getApplicationContext()

OVERRIDE_CAMERA_RESIZABLE_AND_SDK_CHECK

變更 ID:191513214
預設狀態:已為所有應用程式停用。

啟用後,此變更 ID 會強制套用該變更的套件 忽略目前的 android:resizeableActivity 值 以及指定等於或小於 M 的 SDK,並將活動納入考量 視為無法調整大小在此情況下,基於目前螢幕旋轉方向的考量,相機旋轉和裁剪的值將僅取決於所需的補償。

OVERRIDE_CAMERA_ROTATE_AND_CROP_DEFAULTS

變更 ID:189229956
預設狀態:已為所有應用程式停用。

啟用後,此變更 ID 會強制其套用的套件覆寫預設的相機旋轉和裁剪行為,並且一律會傳回 CaptureRequest.SCALER_ROTATE_AND_CROP_NONE。下表將討論預設行為以及所有可能的覆寫組合。

OVERRIDE_MIN_ASPECT_RATIO

變更 ID:174042980
預設狀態:已為所有應用程式停用。

這項變更負責為所有強制執行特定最小顯示比例的變更把關。啟用這項變更可允許下列最小切面 要套用的比率:

為應用程式套件啟用這項變更後,系統會將應用程式資訊清單中指定的最小顯示比例覆寫為已啟用的最大顯示比例 顯示比例。

OVERRIDE_MIN_ASPECT_RATIO_LARGE

變更 ID:180326787
預設狀態:已為所有應用程式停用。

此時如果也啟用了 OVERRIDE_MIN_ASPECT_RATIO,則此套件變更會將活動的最小顯示比例設定為由 OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE 所定義的較大值。

OVERRIDE_MIN_ASPECT_RATIO_MEDIUM

變更 ID:180326845
預設狀態:已為所有應用程式停用。

此時如果也啟用 OVERRIDE_MIN_ASPECT_RATIO,會為套件集啟用這項變更 活動的最小顯示比例和 OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE 定義的中等值。

OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY

變更 ID:203647190
預設狀態:已為所有應用程式啟用。

時間 OVERRIDE_MIN_ASPECT_RATIO 進行這項變更時,也會一併限制其他強制 活動最小顯示比例為特定值,例如 OVERRIDE_MIN_ASPECT_RATIO_LARGEOVERRIDE_MIN_ASPECT_RATIO_MEDIUM—至 其他具有直向模式的活動

RATE_LIMIT_TOASTS

變更 ID:174840628
預設狀態:您無法切換此變更。此變更僅可由相容性架構記錄。

Toast.show() 避免使用者在網路中傳送過多浮動式訊息 時間有限任何嘗試顯示的浮動式訊息超過了 某些時間範圍會捨棄浮動式訊息。

REQUEST_LISTENING_MUST_MATCH_PACKAGE

變更 ID:172251878
預設狀態:已針對指定 Android 13 (API 級別 33) 以上版本為目標的應用程式啟用。

針對指定 Android 13 (API 級別 33) 以上版本的應用程式,呼叫 TileService.requestListeningState(Context, ComponentName) 檢查呼叫套件 (UID) 和目標的套件 ComponentName 比對。系統也會檢查所使用的結構定義 代表目前使用者執行的操作

RETURN_ADVANCED_VIDEO_PROFILES

變更 ID:206033068
預設狀態:已針對指定 Android 13 (API 級別 33) 以上版本為目標的應用程式啟用。

針對以 Android 13 (API 級別 33) 以上版本為目標版本的應用程式,控制 getAll(String, int) 傳回的影片設定檔類型。

SHOULD_RESOLVE_PORT_INDEX_FOR_APPS

變更 ID:224562872
預設狀態:已針對指定 Android 13 (API 級別 33) 以上版本為目標的應用程式啟用。

針對指定 Android 13 (API 級別 33) 以上版本的應用程式,允許 SIM 卡可在不同電腦上啟用多個已啟用的設定檔 (MEP) 通訊埠。為了維持電信業者應用程式的回溯相容性, 目標 API 級別 32 以下的應用程式會呼叫 switchToSubscription,或是下載沒有 API 的 API 指定通訊埠索引,系統會保留現有的 一律使用通訊埠索引 0 的行為 已啟用 MEP eUICC。

SWITCH_WITHOUT_PORT_INDEX_EXCEPTION_ON_DISABLE

變更 ID:218393363
預設狀態:已針對指定 Android 13 (API 級別 33) 以上版本為目標的應用程式啟用。

針對指定 Android 13 (API 級別 33) 以上版本的應用程式,系統會 就會擲回例外狀況 switchToSubscription() 會在沒有 portIndex 的情況下呼叫 訂閱項目中的所有進階功能!

THROW_ON_INVALID_PRIORITY_VALUE

變更 ID:140852299
預設狀態:已針對指定 Android 13 (API 級別 33) 以上版本為目標的應用程式啟用。

針對指定 Android 13 (API 級別 33) 以上版本為目標的應用程式,如果應用程式使用 JobInfo.Builder.setPriority(int) 提供無效的優先順序值,系統會擲回例外狀況。舊版應用程式可能未正確使用 API,因此呼叫時會以無訊息模式 就會失敗

USE_EXPERIMENTAL_COMPONENT_ALIAS

變更 ID:196254758
預設狀態:已為所有應用程式停用。

啟用後,系統將允許「android」套件使用元件別名。