基於與 Android 開發人員合作及最新的內部測試,Android 13 包含更新後的受限制非 SDK 介面清單。在限制非 SDK 介面之前,我們盡可能確保公開替代方案的可得性。
如果您的應用程式並不是以 Android 13 為目標版本,則此處所述的某些變更可能不會立即對您造成影響。雖然您目前可以使用某些非 SDK 介面 (視應用程式的目標 API 級別而定),但使用������非 SDK 方���或欄位時,均可能面臨應用程式故障的高度風險。
如果不確定應用程式是否使用非 SDK 介面,可對應用程式進行測試以便確認。如果您的應用程式仰賴非 SDK 介面,則建議您開始規劃遷移至 SDK 替代方案。我們瞭解有些應用程式可使用非 SDK 介面運作。如果您除了為應用程式中的某個功能使用非 SDK 介面外,已別無他法,則應要求新的公用 API。
Android 13 的變更清單
Android 13 的清單變更屬於下列類別:
- Android 12 (API 級別 31) 不支援的非 SDK 介面,在 Android 13 中遭到封鎖。
如需 Android 13 所有非 SDK 介面的完整清單,請下載下列檔案:
SHA-256 總和檢查碼:233a277aa8ac475b6df61bffd95665d86aac6eb2ad187b90bf42a98f5f2a11a3
Android 13 中現已封鎖的非 SDK 介面
下列程式碼方塊列出 Android 12 (API 級別 31) 不支援的所有非 SDK 介面,這些介面在 Android 13 (API 級別 33) 中遭到封鎖。也就是說,這些介面屬於 max-target-s
清單,因此應用程式只能在指定 Android 12 (API 級別 31) 以下版本時使用這些介面。
我們的目標是在限制非 SDK 介面之前,確保公開替代方案的可得性。我們瞭解您的應用程式可能可使用這些介面運作。如果應用程式在舊版中使用的介面現在已在 Android 13 中遭到封鎖,您應要求該介面的新公開 API。
Landroid/app/Activity;->setDisablePreviewScreenshots(Z)V # Use setRecentsScreenshotEnabled() instead. Landroid/os/PowerManager;->isLightDeviceIdleMode()Z # Use isDeviceLightIdleMode() instead. Landroid/os/Process;->setArgV0(Ljava/lang/String;)V # In general, do not try to change the process name. If you must change the process name (for instance, for debugging), you can use pthread_setname_np() instead, though be aware that doing this might confuse the system. Landroid/view/accessibility/AccessibilityInteractionClient;->clearCache(I)V # Use android.accessibilityservice.AccessibilityService#clearCache() instead.