Android 13 cung cấp danh sách mới cập nhật về các giao diện không phải SDK bị hạn chế dựa trên khả năng cộng tác với nhà phát triển Android và kiểm thử nội bộ mới nhất. Bất cứ khi nào có thể, chúng tôi phải đảm bảo việc cung cấp các phương án thay thế công khai trước khi hạn chế giao diện không phải SDK.
Nếu ứng dụng của bạn không nhắm đến Android 13, thì một số thay đổi này có thể sẽ không ảnh hưởng ngay. Tuy nhiên, mặc dù hiện tại bạn có thể sử dụng một số giao diện không phải SDK (tuỳ thuộc vào cấp độ API mục tiêu của ứng dụng), nhưng việc sử dụng phương thức hoặc trường không phải SDK luôn có nguy cơ cao làm hỏng ứng dụng.
Nếu không chắc ứng dụng của mình có sử dụng giao diện không phải SDK hay không, bạn có thể kiểm tra ứng dụng để tìm hiểu. Nếu ứng dụng của bạn dựa vào giao diện không phải SDK, thì bạn nên bắt đầu lập kế hoạch di chuyển sang SDK làm giải pháp thay thế. Tuy nhiên, chúng tôi hiểu rằng vẫn có một số trường hợp sử dụng hợp lệ cho việc ứng dụng sử dụng giao diện không phải SDK. Nếu không tìm được giải pháp thay thế cho việc sử dụng giao diện không phải SDK cho một tính năng trong ứng dụng, thì bạn nên yêu cầu một API công khai mới.
Danh sách thay đổi đối với Android 13
Các thay đổi về danh sách trong Android 13 thuộc các danh mục sau:
- Các giao diện không phải SDK không được hỗ trợ trong Android 12 (API cấp 31) và bị chặn trong Android 13.
Để xem đầy đủ danh sách tất cả giao diện không phải SDK cho Android 13, hãy tải tệp sau:
Tệp: hiddenapi-flags.csv
Giá trị tổng kiểm SHA-256: 233a277aa8ac475b6df61bffd95665d86aac6eb2ad187b90bf42a98f5f2a11a3
Các giao diện không phải SDK hiện đã bị chặn trên Android 13
Hộp mã sau đây liệt kê tất cả các giao diện không phải SDK không được hỗ trợ trong Android 12 (API cấp 31) và bị chặn trong Android 13 (API cấp 33). Tức là các giao diện này thuộc danh sách max-target-s
, vì vậy, ứng dụng của bạn chỉ có thể sử dụng các giao diện này nếu nhắm đến Android 12 (API cấp 31) trở xuống.
Mục tiêu của chúng tôi là đảm bảo việc cung cấp các phương án thay thế công khai trước khi hạn chế giao diện không phải SDK. Chúng tôi hiểu rằng ứng dụng của bạn có thể có trường hợp sử dụng hợp lệ cho việc sử dụng các giao diện này. Nếu một giao diện mà ứng dụng của bạn sử dụng trong phiên bản trước đó hiện bị chặn trong Android 13, thì bạn nên yêu cầu một API công khai mới cho giao diện đó.
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.