Selamat datang di Pratinjau Developer Android 13. Beri kami masukan, dan bantu kami menjadikan Android 13 sebagai rilis terbaik.

Perubahan framework kompatibilitas (Android 13)

Gambar 1. Layar Perubahan Kompatibilitas Aplikasi di opsi developer mencantumkan perubahan yang dapat Anda ubah.

Halaman ini menjelaskan perubahan yang dapat diganti statusnya sebagai bagian dari framework kompatibilitas di Android 13. Gunakan daftar ini bersama dengan opsi developer dan perintah ADB untuk menguji dan men-debug aplikasi saat Anda bersiap untuk mendukung dan menargetkan Android 13.

Beberapa hal yang dapat Anda lakukan menggunakan alat framework kompatibilitas:

  • Menguji perubahan yang ditargetkan tanpa benar-benar mengubah targetSdkVersion aplikasi. Anda dapat menggunakan tombol alih untuk mengaktifkan paksa setiap perubahan perilaku yang ditargetkan, guna mengevaluasi dampaknya terhadap aplikasi yang ada.
  • Memfokuskan pengujian pada perubahan tertentu. Dengan tombol alih ini, Anda dapat menonaktifkan beberapa perubahan yang ditargetkan, sehingga Anda dapat melakukan pengujian sesuai kebutuhan tanpa perlu menangani semua perubahan yang ditargetkan sekaligus.
  • Mengelola tombol alih melalui adb. Anda dapat menggunakan perintah adb untuk mengaktifkan atau menonaktifkan perubahan yang dapat diganti statusnya di lingkungan pengujian otomatis.
  • Men-debug lebih cepat menggunakan ID perubahan standar. Setiap perubahan yang dapat diganti statusnya memiliki ID dan nama unik yang dapat Anda gunakan untuk men-debug root masalah dalam output log dengan cepat.

Untuk mengetahui detail lengkap penggunaan fitur untuk setiap kasus penggunaan tersebut, lihat Alat framework kompatibilitas.

Perubahan perilaku yang disertakan dalam framework kompatibilitas

Daftar di bagian ini menjelaskan perubahan yang dapat diganti statusnya dan disertakan dalam framework kompatibilitas di Android 13.

Anda dapat memfilter daftar perubahan menurut Status Default.

Perubahan yang dapat dialihkan dalam framework kompatibilitas di Android 13

ALWAYS_SANDBOX_DISPLAY_APIS

ID Perubahan: 185004937
Status Default: Dinonaktifkan untuk semua aplikasi.

Memaksa paket yang diterapkan untuk selalu menerapkan sandbox Display API, terlepas dari mode windowing. Display API akan selalu menyediakan batas aplikasi.

Untuk mempelajari perubahan ini lebih lanjut, lihat Display#getRealSize dan getRealMetrics: penghentian penggunaan dan sandbox.

CAMERA_MIC_INDICATORS_NOT_PRESENT

ID Perubahan: 162547999
Status Default: Dinonaktifkan untuk semua aplikasi.

Menunjukkan bahwa perangkat ini mendukung indikator kamera dan mikrofon. Akan menjadi false jika ada, karena metode CompatChanges#isChangeEnabled menampilkan true jika ID Perubahan tidak ada.

DEFER_BOOT_COMPLETED_BROADCAST_CHANGE_ID

ID Perubahan: 203704822
Status Default: Diaktifkan untuk aplikasi yang menargetkan Android 13 atau yang lebih tinggi.

Untuk aplikasi yang menargetkan Android 13 dan yang lebih tinggi, tunda siaran LOCKED_BOOT_COMPLETED dan BOOT_COMPLETED hingga proses pertama di UID dimulai.

DOWNSCALED

ID Perubahan: 168419799
Status Default: Dinonaktifkan untuk semua aplikasi.

Perubahan ini adalah penyeleksi semua perubahan penurunan skala buffering per aplikasi. Menonaktifkan perubahan ini akan mencegah faktor penskalaan berikut berfungsi:

Jika perubahan ini diaktifkan untuk paket aplikasi, ukuran aplikasi akan diubah secara paksa ke faktor penskalaan tertinggi yang diaktifkan. Misalnya, 80% akan digunakan jika 80% dan 70% diaktifkan.

DOWNSCALE_30

ID Perubahan: 189970040
Status Default: Dinonaktifkan untuk semua aplikasi.

Jika DOWNSCALED juga diaktifkan, mengaktifkan perubahan ini untuk sebuah paket akan memaksa aplikasi menganggapnya berjalan pada layar dengan resolusi vertikal dan horizontal 30% dari tampilan sebenarnya.

DOWNSCALE_35

ID Perubahan: 189969749
Status Default: Dinonaktifkan untuk semua aplikasi.

Jika DOWNSCALED juga diaktifkan, mengaktifkan perubahan ini untuk sebuah paket akan memaksa aplikasi menganggapnya berjalan pada layar dengan resolusi vertikal dan horizontal 35% dari tampilan sebenarnya.

DOWNSCALE_40

ID Perubahan: 189970038
Status Default: Dinonaktifkan untuk semua aplikasi.

Jika DOWNSCALED juga diaktifkan, mengaktifkan perubahan ini untuk sebuah paket akan memaksa aplikasi menganggapnya berjalan pada layar dengan resolusi vertikal dan horizontal 40% dari tampilan sebenarnya.

DOWNSCALE_45

ID Perubahan: 189969782
Status Default: Dinonaktifkan untuk semua aplikasi.

Jika DOWNSCALED juga diaktifkan, mengaktifkan perubahan ini untuk sebuah paket akan memaksa aplikasi menganggapnya berjalan pada layar dengan resolusi vertikal dan horizontal 45% dari tampilan sebenarnya.

DOWNSCALE_50

ID Perubahan: 176926741
Status Default: Dinonaktifkan untuk semua aplikasi.

Jika DOWNSCALED juga diaktifkan, mengaktifkan perubahan ini untuk sebuah paket akan memaksa aplikasi menganggapnya berjalan pada layar dengan resolusi vertikal dan horizontal 50% dari tampilan sebenarnya.

DOWNSCALE_55

ID Perubahan: 189970036
Status Default: Dinonaktifkan untuk semua aplikasi.

Jika DOWNSCALED juga diaktifkan, mengaktifkan perubahan ini untuk sebuah paket akan memaksa aplikasi menganggapnya berjalan pada layar dengan resolusi vertikal dan horizontal 55% dari tampilan sebenarnya.

DOWNSCALE_60

ID Perubahan: 176926771
Status Default: Dinonaktifkan untuk semua aplikasi.

Jika DOWNSCALED juga diaktifkan, mengaktifkan perubahan ini untuk sebuah paket akan memaksa aplikasi menganggapnya berjalan pada layar dengan resolusi vertikal dan horizontal 60% dari tampilan sebenarnya.

DOWNSCALE_65

ID Perubahan: 189969744
Status Default: Dinonaktifkan untuk semua aplikasi.

Jika DOWNSCALED juga diaktifkan, mengaktifkan perubahan ini untuk sebuah paket akan memaksa aplikasi menganggapnya berjalan pada layar dengan resolusi vertikal dan horizontal 65% dari tampilan sebenarnya.

DOWNSCALE_70

ID Perubahan: 176926829
Status Default: Dinonaktifkan untuk semua aplikasi.

Jika DOWNSCALED juga diaktifkan, mengaktifkan perubahan ini untuk sebuah paket akan memaksa aplikasi menganggapnya berjalan pada layar dengan resolusi vertikal dan horizontal 70% dari tampilan sebenarnya.

DOWNSCALE_75

ID Perubahan: 189969779
Status Default: Dinonaktifkan untuk semua aplikasi.

Jika DOWNSCALED juga diaktifkan, mengaktifkan perubahan ini untuk sebuah paket akan memaksa aplikasi menganggapnya berjalan pada layar dengan resolusi vertikal dan horizontal 75% dari tampilan sebenarnya.

DOWNSCALE_80

ID Perubahan: 176926753
Status Default: Dinonaktifkan untuk semua aplikasi.

Jika DOWNSCALED juga diaktifkan, mengaktifkan perubahan ini untuk sebuah paket akan memaksa aplikasi menganggapnya berjalan pada layar dengan resolusi vertikal dan horizontal 80% dari tampilan sebenarnya.

DOWNSCALE_85

ID Perubahan: 189969734
Status Default: Dinonaktifkan untuk semua aplikasi.

Jika DOWNSCALED juga diaktifkan, mengaktifkan perubahan ini untuk sebuah paket akan memaksa aplikasi menganggapnya berjalan pada layar dengan resolusi vertikal dan horizontal 85% dari tampilan sebenarnya.

DOWNSCALE_90

ID Perubahan: 182811243
Status Default: Dinonaktifkan untuk semua aplikasi.

Jika DOWNSCALED juga diaktifkan, mengaktifkan perubahan ini untuk sebuah paket akan memaksa aplikasi menganggapnya berjalan pada layar dengan resolusi vertikal dan horizontal 90% dari tampilan sebenarnya.

DYNAMIC_RECEIVER_EXPLICIT_EXPORT_REQUIRED

ID Perubahan: 161145287
Status Default: Diaktifkan untuk aplikasi yang menargetkan Android 13 atau yang lebih tinggi.

Untuk aplikasi yang menargetkan Android 13 dan yang lebih tinggi, sekarang aplikasi harus menyetel Context.RECEIVER_EXPORTED atau Context.RECEIVER_NOT_EXPORTED secara eksplisit saat mendaftarkan penerima untuk siaran yang tidak dilindungi dalam kode.

Untuk mempelajari perubahan ini lebih lanjut, lihat bagian Mengekspor penerima yang terdaftar dalam konteks dengan lebih aman.

FORCE_DISABLE_HEVC_SUPPORT

ID Perubahan: 174227820
Status Default: Dinonaktifkan untuk semua aplikasi.

Menonaktifkan aplikasi secara paksa agar tidak mendukung kemampuan media HEVC. Aplikasi harus menyebutkan kemampuan media yang didukung dalam manifesnya, tetapi tanda ini dapat digunakan untuk memaksa aplikasi agar tidak mendukung HEVC sehingga memaksa transcoding saat mengakses media yang dienkode di HEVC. Menyetel tanda ini akan mengganti setiap setelan default aplikasi tingkat OS. Fitur ini dinonaktifkan secara default yang artinya setelan default OS lebih diutamakan. Menetapkan tanda ini dan FORCE_ENABLE_HEVC_SUPPORT merupakan status yang tidak ditentukan dan akan menyebabkan OS mengabaikan kedua tanda.

FORCE_ENABLE_HEVC_SUPPORT

ID Perubahan: 174228127
Status Default: Dinonaktifkan untuk semua aplikasi.

Mengaktifkan aplikasi secara paksa untuk mendukung kemampuan media HEVC pada Aplikasi harus menyebutkan kemampuan media yang didukung dalam manifesnya, tetapi tanda ini dapat digunakan untuk memaksa aplikasi agar mendukung HEVC sehingga menghindari transcoding selagi mengakses media yang dienkode di HEVC. Menyetel tanda ini akan mengganti setiap setelan default aplikasi tingkat OS. Fitur ini dinonaktifkan secara default yang artinya setelan default OS akan lebih diutamakan. Menetapkan tanda ini dan FORCE_DISABLE_HEVC_SUPPORT merupakan status yang tidak ditentukan dan akan menyebabkan OS mengabaikan kedua tanda.

FORCE_NON_RESIZE_APP

ID Perubahan: 181136395
Status Default: Dinonaktifkan untuk semua aplikasi.

Memaksa paket yang diterapkan agar ukurannya tidak dapat diubah.

FORCE_RESIZE_APP

ID Perubahan: 174042936
Status Default: Dinonaktifkan untuk semua aplikasi.

Memaksa paket yang diterapkan agar ukurannya dapat diubah. Pengubahan ukuran hanya diizinkan dalam mode jendela layar penuh, tetapi tidak memaksa aplikasi berubah menjadi mode multi-aplikasi yang dapat diubah ukurannya.

KEYSTORE_OPERATION_CREATION_MAY_FAIL

ID Perubahan: 169897160
Status Default: Dinonaktifkan untuk semua aplikasi.

Jika diaktifkan, pembuatan operasi keystore mungkin akan gagal sesuai dengan strategi pruning baru. Sebelumnya, keystore biasanya bekerja dengan asumsi bahwa pembuatan operasi kriptografi selalu berhasil. Namun, backend KeyMint hanya memiliki jumlah slot operasi yang terbatas.

Untuk mempertahankan tampilan slot operasi "tidak terbatas", daemon Keystore akan memangkas operasi yang terakhir digunakan jika tidak ada slot operasi yang tersedia. Akibatnya, operasi tidak bermasalah dapat dihentikan sebelum waktunya. Tindakan ini akan membuka AndroidKeystore hingga denial of service (DoS) dan livelock yang tidak diinginkan. Misalnya, jika beberapa aplikasi aktif bersamaan karena pengoptimalan pengelolaan daya dan berupaya melakukan operasi kripto, aplikasi tersebut akan mulai menghentikan operasi lain tanpa ada kemajuan apa pun.

Untuk mengurangi livelock dan mencegah upaya DoS, strategi pemangkasan telah diubah sehingga lebih memilih klien yang hanya menggunakan sedikit slot operasi. Hasilnya, operasi tunggal yang tidak aktif selama lebih dari 5 detik hampir akan selalu diselesaikan oleh strategi pemangkasan. Masih ada beberapa operasi yang berkaitan dengan enkripsi sistem file yang bahkan dapat memangkas operasi ini, tetapi kasus tersebut sangat jarang terjadi. Efek samping dari operasi strategi pemangkasan baru ini yaitu pembuatan bisa gagal jika klien memiliki daya pemangkasan yang lebih rendah daripada semua operasi yang ada.

Strategi pemangkasan: Untuk menemukan kandidat yang sesuai, kami menghitung malus untuk pemanggil dan setiap operasi yang ada. Malus adalah balikan dari daya pemangkasan (pemanggil) atau hambatan pemangkasan (operasi yang ada). Agar pemanggil dapat memangkas operasi, operator harus menemukan operasi dengan malus yang lebih tinggi dari operasinya sendiri. Untuk mengetahui detail strategi pemangkasan selengkapnya, lihat penerapan operation.rs. Di Android 11 (API level 30) dan yang lebih rendah, KeyStore2 akan melakukan polling pada daemon Keystore untuk slot operasi gratis. Untuk aplikasi yang menargetkan Android 11 (API level 30) dan yang lebih rendah, inisialisasi ciphet dan objek tanda tangan akan selalu terlihat berhasil, tetapi mungkin butuh waktu lebih lama untuk mendapatkan operasi. Semua versi Android mendapatkan manfaat dari penjadwalan slot operasi yang lebih adil dan peluang yang lebih baik agar berhasil menyelesaikan operasi.

NATIVE_HEAP_ZERO_INIT

ID Perubahan: 178038272
Status Default: Dinonaktifkan untuk semua aplikasi.

Mengaktifkan zero-inisialisasi otomatis untuk alokasi memori heap native.

NATIVE_MEMTAG_ASYNC

ID Perubahan: 135772972
Status Default: Dinonaktifkan untuk semua aplikasi.

Mengaktifkan pemeriksaan tag memori asinkron (ASYNC) dalam proses ini. Tanda ini hanya memengaruhi hardware yang mendukung Ekstensi Pemberian Tag Memori (MTE) ARM.

NATIVE_MEMTAG_SYNC

ID Perubahan: 177438394
Status Default: Dinonaktifkan untuk semua aplikasi.

Mengaktifkan pemeriksaan tag memori sinkron (SINKRONISASI) dalam proses ini. Tanda ini hanya memengaruhi hardware yang mendukung Ekstensi Pemberian Tag Memori (MTE) ARM. Jika NATIVE_MEMTAG_ASYNC dan opsi ini diaktifkan, opsi ini akan diutamakan dan MTE akan diaktifkan dalam mode SINKRONISASI.

NEVER_SANDBOX_DISPLAY_APIS

ID Perubahan: 184838306
Status Default: Dinonaktifkan untuk semua aplikasi.

Memaksa paket yang diterapkan agar tidak pernah menerapkan sandbox Display API bagi tampilan lebar atau aktivitas SCM. Display API akan terus menyediakan batas DisplayArea.

Untuk mempelajari perubahan ini lebih lanjut, lihat Display#getRealSize dan getRealMetrics: penghentian penggunaan dan sandbox.

NOTIFICATION_LOG_ASSISTANT_CANCEL

ID Perubahan: 195579280
Status Default: Diaktifkan untuk aplikasi yang menargetkan Android 13 atau yang lebih tinggi.

Untuk aplikasi yang menargetkan Android 13 dan yang lebih tinggi, memungkinkan pemroses memahami alasan yang lebih spesifik dan diberikan untuk pembatalan notifikasi dari asisten, bukan menggunakan REASON_LISTENER_CANCEL yang lebih umum.

NOTIFICATION_PERM_CHANGE_ID

ID Perubahan: 194833441
Status Default: Diaktifkan untuk aplikasi yang menargetkan Android 13 atau yang lebih tinggi.

Untuk aplikasi yang menargetkan Android 13 dan yang lebih tinggi, memungkinkan perubahan perilaku yang terkait dengan izin atau notifikasi runtime.

Untuk mempelajari perubahan ini lebih lanjut, lihat halaman tentang izin runtime notifikasi yang baru.

OVERRIDE_CAMERA_RESIZABLE_AND_SDK_CHECK

ID Perubahan: 191513214
Status Default: Dinonaktifkan untuk semua aplikasi.

Jika diaktifkan, ID perubahan ini akan memaketkan paket yang diterapkan untuk mengabaikan nilai saat ini android:resizeableActivity serta SDK target yang sama dengan atau di bawah M dan menganggap aktivitas sebagai tidak dapat diubah ukurannya. Dalam hal ini, nilai putar dan pangkas kamera hanya akan bergantung pada kompensasi yang diperlukan, mengingat rotasi tampilan saat ini.

OVERRIDE_CAMERA_ROTATE_AND_CROP_DEFAULTS

ID Perubahan: 189229956
Status Default: Dinonaktifkan untuk semua aplikasi.

Saat diaktifkan, ID perubahan ini akan memaksa paket yang diterapkan mengganti perilaku putar dan pangkas kamera default serta selalu menampilkan CaptureRequest.SCALER_ROTATE_AND_CROP_NONE. Perilaku default beserta semua kemungkinan kombinasi penggantian dibahas dalam tabel di bawah.

OVERRIDE_MIN_ASPECT_RATIO

ID Perubahan: 174042980
Status Default: Dinonaktifkan untuk semua aplikasi.

Perubahan ini adalah penyeleksi semua perubahan yang memaksa rasio lebar tinggi minimum tertentu. Mengaktifkan perubahan ini memungkinkan rasio lebar tinggi minimum berikut diterapkan:

Jika perubahan ini diaktifkan untuk paket aplikasi, rasio lebar tinggi minimum yang diberikan dalam manifes aplikasi akan diganti ke rasio lebar tinggi terbesar yang diaktifkan kecuali nilai manifes aplikasi lebih tinggi.

OVERRIDE_MIN_ASPECT_RATIO_LARGE

ID Perubahan: 180326787
Status Default: Dinonaktifkan untuk semua aplikasi.

Jika OVERRIDE_MIN_ASPECT_RATIO juga diaktifkan, mengaktifkan perubahan ini untuk sebuah paket akan menetapkan rasio lebar tinggi minimum aktivitas ke nilai besar seperti yang ditetapkan oleh OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE.

OVERRIDE_MIN_ASPECT_RATIO_MEDIUM

ID Perubahan: 180326845
Status Default: Dinonaktifkan untuk semua aplikasi.

Jika OVERRIDE_MIN_ASPECT_RATIO juga diaktifkan, mengaktifkan perubahan ini untuk sebuah paket akan menetapkan rasio lebar tinggi minimum aktivitas ke nilai sedang seperti yang ditetapkan oleh OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE.

OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY

ID Perubahan: 203647190
Status Default: Diaktifkan untuk semua aplikasi.

Saat OVERRIDE_MIN_ASPECT_RATIO juga diaktifkan, mengaktifkan perubahan ini untuk paket akan membatasi setiap perubahan lain yang memaksa rasio lebar tinggi minimum aktivitas ke nilai tertentu—seperti OVERRIDE_MIN_ASPECT_RATIO_LARGE dan OVERRIDE_MIN_ASPECT_RATIO_MEDIUM—ke aktivitas yang juga memiliki orientasi potret.

RATE_LIMIT_TOASTS

ID Perubahan: 174840628
Status Default: Perubahan ini tidak dapat dialihkan. Perubahan hanya dicatat ke dalam log oleh framework kompatibilitas.

Mengaktifkan pembatasan kapasitas jumlah panggilan Toast.show() untuk mencegah beban berlebih pada pengguna yang memiliki jumlah toast yang terlalu banyak dalam waktu terbatas. Setiap upaya untuk menampilkan jumlah toast yang terlalu banyak dari jumlah yang diizinkan dalam jangka waktu tertentu akan mengakibatkan toast dihapus.

SUPPORT_DEREGISTERING_LOSING_PDN_STATE

ID Perubahan: 201522903
Status Default: Diaktifkan untuk aplikasi yang menargetkan Android 13 atau yang lebih tinggi.

Untuk aplikasi yang menargetkan Android 13 dan yang lebih tinggi, dukung status DEREGISTERING_REASON_LOSING_PDN pada API, seperti DelegateRegistrationState#addDeregisteringFeatureTag dan DelegateRegistrationState#getDeregisteringFeatureTags.

SUPPORT_PUBLISHING_STATE

ID Perubahan: 202894742
Status Default: Diaktifkan untuk aplikasi yang menargetkan Android 13 atau yang lebih tinggi.

Untuk aplikasi yang menargetkan Android 13 dan yang lebih tinggi, dukung status publikasi di API, seperti RcsUceAdapter#PUBLISH_STATE_PUBLISHINGsupport.

SUPPORT_REGISTERING_DELEGATE_STATE

ID Perubahan: 205194548
Status Default: Diaktifkan untuk aplikasi yang menargetkan Android 13 atau yang lebih tinggi.

Untuk aplikasi yang menargetkan Android 13 dan yang lebih tinggi, dukung status REGISTERING di API, seperti DelegateRegistrationState#addRegisteringFeatureTags dan DelegateRegistrationState#getRegisteringFeatureTagssupport.