Android 13 cung cấp danh sách mới cập nhật về những nội dung không phải SDK bị hạn chế dựa trên sự cộng tác với các nhà phát triển Android và thử nghiệm nội bộ. 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ể không ảnh hưởng ngay đến bạn. 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.
Các thay đổi đối với danh sách đối với Android 13
Những thay đổi về danh sách trong Android 13 thuộc các danh mục sau:
- Giao diện không phải SDK không được hỗ trợ trong Android 12 (API cấp 31) 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 đây:
Tệp: hiddenapi-flags.csv
Giá trị tổng kiểm SHA-256: 233a277aa8ac475b6df61bffd95665d86aac6eb2ad187b90bf42a98f5f2a11a3
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ả giao diện không phải SDK không được hỗ trợ
trong Android 12 (API cấp 31) bị chặn trong Android 13 (API cấp 33). Đó
tức là những 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 nó 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 rằng các giải pháp thay thế công khai có sẵn trước khi chúng tôi 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 các giao diện này. Nếu giao diện mà ứng dụng của bạn dùng trong một phiên bản trước hiện đã bị chặn trong Android 13, bạn nên yêu cầu một API 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.