Memenuhi persyaratan level API target Google Play

Saat diupload, APK harus memenuhi persyaratan API level target Google Play.

Mulai 31 Agustus 2023:

  • Aplikasi baru harus menargetkan Android 13 (level API 33) atau yang lebih baru; kecuali untuk aplikasi Wear OS, yang harus menargetkan versi antara Android 11 (level API 30) dan Android 13 (level API 33), inklusif.

  • Update aplikasi harus menargetkan Android 13 atau yang lebih tinggi dan menyesuaikan perubahan perilaku di Android 13; kecuali aplikasi Wear OS, yang harus menargetkan Android 11.

Aplikasi pribadi permanen—yang dibatasi untuk pengguna di organisasi tertentu dan hanya ditujukan untuk distribusi internal—tidak diperlukan untuk memenuhi persyaratan API level target.

Mengapa harus menargetkan SDK yang lebih baru?

Setiap versi Android baru memperkenalkan perubahan yang menghadirkan peningkatan keamanan dan performa serta meningkatkan pengalaman pengguna Android. Beberapa perubahan ini hanya berlaku untuk aplikasi yang secara eksplisit mendeklarasikan dukungan melalui atribut manifes targetSdkVersion (juga disebut sebagai level API target).

Dengan mengonfigurasi aplikasi agar menargetkan level API terbaru, Anda memastikan bahwa pengguna dapat memanfaatkan peningkatan ini, sementara aplikasi Anda masih dapat berjalan di versi Android yang lebih lama. Dengan menargetkan level API terbaru, aplikasi Anda juga dapat memanfaatkan fitur-fitur terbaru platform demi kepuasan pengguna. Selain itu, mulai Android 10 (level API 29), pengguna akan melihat peringatan saat memulai aplikasi untuk pertama kalinya jika aplikasi menargetkan Android 5.1 (API level 22) atau yang lebih rendah.

Dokumen ini menyoroti poin-poin penting yang perlu Anda ketahui dalam mengupdate API level target untuk memenuhi persyaratan Google Play. Lihat petunjuk di bagian berikut, bergantung pada versi migrasi Anda.

Bermigrasi dari Android 12 (level API 31) ke Android 13 (level API 33)

Untuk mengupdate aplikasi Anda agar menargetkan Android 13, ikuti daftar perubahan perilaku.

Bermigrasi dari Android 11 (API level 30) ke Android 12 (API level 31)

Keamanan dan Izin

Pengalaman Pengguna

  • Notifikasi kustom: Notifikasi dengan tampilan konten kustom tidak akan lagi menggunakan area notifikasi lengkap; sebagai gantinya, sistem akan menerapkan template standar. Template ini memastikan bahwa notifikasi kustom memiliki hiasan yang sama dengan notifikasi lain di semua status. Perilaku ini hampir sama dengan perilaku Notification.DecoratedCustomViewStyle.
  • Perubahan verifikasi Link Aplikasi Android: Saat menggunakan verifikasi Link Aplikasi Android, pastikan filter intent Anda menyertakan kategori BROWSABLE dan mendukung skema HTTPS.

Performa

  • Pembatasan peluncuran layanan latar depan: Untuk menargetkan Android 12 atau yang lebih tinggi, aplikasi Anda tidak dapat memulai layanan latar depan saat berjalan di latar belakang, kecuali untuk beberapa kasus khusus. Jika aplikasi mencoba memulai layanan latar depan saat berjalan di latar belakang, akan terjadi pengecualian (kecuali untuk beberapa kasus khusus).

    Sebaiknya gunakan WorkManager untuk menjadwalkan dan memulai pekerjaan yang diprioritaskan saat aplikasi berjalan di latar belakang. Untuk menyelesaikan tindakan mendesak yang diminta pengguna, mulai layanan latar depan dalam alarm yang tepat.

  • Pembatasan trampolin notifikasi: Saat pengguna mengetuk notifikasi, beberapa aplikasi merespons dengan meluncurkan komponen aplikasi yang memulai aktivitas yang dilihat dan berinteraksi dengan pengguna. Komponen aplikasi ini dikenal sebagai trampolin notifikasi.

    Aplikasi tidak boleh memulai aktivitas dari layanan atau penerima siaran yang digunakan sebagai trampolin notifikasi. Setelah pengguna mengetuk tombol notifikasi atau tindakan dalam notifikasi, aplikasi Anda tidak dapat memanggil startActivity() di dalam layanan atau penerima siaran.

Lihat kumpulan lengkap perubahan yang memengaruhi aplikasi yang menargetkan Android 12 (level API 31).

Bermigrasi dari versi di bawah Android 11 (level API 30)

Pilih versi Android asal migrasi Anda:

Bermigrasi ke Android 5 (API level 21)

Lihat halaman Perubahan Perilaku yang terkait bagi setiap rilis berikut, untuk memastikan aplikasi Anda telah memperhitungkan perubahan yang diperkenalkan dalam rilis berikut:

Lanjutkan dengan mengikuti petunjuk di bagian berikutnya.

Bermigrasi ke Android 6 (API level 23)

Pertimbangan berikut berlaku untuk aplikasi yang menargetkan Android 6.0 dan versi platform yang lebih tinggi:

  • Izin Runtime

    • Izin berbahaya hanya diberikan selama runtime. Alur UI Anda harus menyediakan kemampuan untuk memberikan izin semacam ini.

    • Sedapat mungkin, pastikan aplikasi Anda agar siap menangani penolakan permintaan izin. Misalnya, jika pengguna menolak permintaan untuk mengakses GPS perangkat, pastikan aplikasi Anda memiliki cara lain untuk melanjutkan proses ini.

Untuk daftar lengkap perubahan yang diperkenalkan pada Android 6.0 (level API 23), lihat halaman Perubahan Perilaku untuk versi platform tersebut.

Lanjutkan dengan mengikuti petunjuk di bagian berikutnya.

Bermigrasi ke Android 7 (API level 24)

Pertimbangan berikut berlaku untuk aplikasi yang menargetkan Android 7.0 dan versi platform yang lebih tinggi:

  • Istirahatkan dan Aplikasi Standby

    Desain aplikasi untuk menangani perilaku yang dijelaskan dalam Mengoptimalkan Aplikasi untuk Mode Istirahatkan dan Aplikasi Standby, yang mencakup perubahan bertahap yang diperkenalkan pada beberapa rilis platform.

    Saat perangkat berada dalam mode Istirahatkan dan Aplikasi Standby, sistem akan berperilaku sebagai berikut:

    • Membatasi akses jaringan
    • Menunda alarm, sinkronisasi, dan tugas
    • Membatasi pemindaian Wi-Fi dan GPS
    • Membatasi pesan Firebase Cloud Messaging dengan prioritas normal.
  • Perubahan Izin

    • Sistem membatasi akses ke direktori pribadi aplikasi.
    • Mengekspos URI file:// di luar aplikasi akan memicu FileUriExposedException. Jika perlu berbagi file di luar aplikasi, implementasikan FileProvider
  • Sistem melarang penautan ke library non-NDK.

Untuk daftar lengkap perubahan yang diperkenalkan pada Android 7.0 (level API 24), lihat halaman Perubahan Perilaku untuk versi platform tersebut.

Lanjutkan dengan mengikuti petunjuk di bagian berikutnya.

Bermigrasi ke Android 8 (API level 26)

Pertimbangan berikut berlaku untuk aplikasi yang menargetkan Android 8.0 dan versi platform yang lebih tinggi:

Untuk daftar lengkap perubahan yang diperkenalkan pada Android 8.0 (level API 26), lihat halaman Perubahan Perilaku untuk versi platform tersebut.

Bermigrasi dari Android 8 (API 26) ke Android 9 (API 28)

Untuk daftar lengkap perubahan yang diperkenalkan pada Android 9.0 (API level 28), lihat perubahan perilaku.

Bermigrasi dari Android 9 (level API 28) ke Android 10 (level API 29)

Bermigrasi dari Android 10 (API level 29) ke Android 11 (API level 30)

Untuk daftar lengkap perubahan yang diperkenalkan di Android 11 (level API 30), lihat halaman Perubahan Perilaku.

Lanjutkan untuk mengupdate ke API 31 dengan mengikuti petunjuk di bagian sebelumnya.

Memodernisasi aplikasi Anda

Saat mengupdate API level target untuk aplikasi, sebaiknya gunakan fitur platform terbaru untuk memodernkan aplikasi Anda demi kepuasan pengguna.

  • Pertimbangkan untuk menggunakan CameraX, yang masih dalam versi Beta, untuk memaksimalkan penggunaan kamera.
  • Gunakan komponen Jetpack untuk membantu Anda mengikuti praktik terbaik, menghindari penulisan kode boilerplate, dan menyederhanakan tugas kompleks sehingga Anda dapat fokus pada kode yang perlu ditangani.
  • Gunakan Kotlin untuk menulis aplikasi yang lebih baik dengan lebih cepat, dan dengan kode yang lebih sedikit.
  • Pastikan Anda mengikuti persyaratan dan praktik terbaik privasi.
  • Tambahkan dukungan tema gelap ke aplikasi Anda.
  • Tambahkan dukungan navigasi gestur ke aplikasi Anda.
  • Migrasikan aplikasi Anda dari Google Cloud Messaging (GCM) ke versi terbaru Firebase Cloud Messaging.
  • Manfaatkan pengelolaan jendela tingkat lanjut.

Memeriksa serta mengupdate SDK dan library

Pastikan dependensi SDK pihak ketiga Anda mendukung API 31: Beberapa penyedia SDK memublikasikannya dalam manifes mereka; penyedia lainnya akan memerlukan penyelidikan tambahan. Jika Anda menggunakan SDK yang tidak mendukung API 31, prioritaskan untuk bekerja sama dengan penyedia SDK guna menyelesaikan masalah ini.

Selain itu, perlu diperhatikan bahwa targetSdkVersion aplikasi atau game Anda dapat membatasi akses ke library platform Android pribadi; lihat Penautan Aplikasi NDK ke Library Platform untuk mengetahui detailnya.

Anda juga harus memverifikasi batasan apa pun yang mungkin ada dalam versi Android Support Library yang Anda gunakan. Seperti biasa, Anda harus memastikan kompatibilitas antara versi utama Android Support Library dan compileSdkVersion aplikasi Anda.

Sebaiknya pilih targetSdkVersion yang lebih kecil dari atau sama dengan versi utama Support Library. Kami mengimbau Anda untuk melakukan update ke Support Library terbaru yang kompatibel agar dapat memanfaatkan fitur kompatibilitas dan perbaikan bug terbaru.

Menguji aplikasi

Setelah mengupdate level dan fitur API aplikasi sebagaimana mestinya, Anda harus menguji beberapa kasus penggunaan inti. Saran berikut tidak lengkap, tetapi dimaksudkan untuk memandu proses pengujian Anda. Sebaiknya uji:

  • Bahwa aplikasi Anda dikompilasi ke API 29 tanpa error atau peringatan.
  • Apakah aplikasi Anda memiliki strategi untuk kasus ketika pengguna menolak permintaan izin, dan meminta pengguna untuk memberikan izin. Untuk melakukannya:

    • Buka layar Info Aplikasi pada aplikasi Anda, dan nonaktifkan setiap izin.
    • Buka aplikasi dan pastikan tidak ada error.
      • Lakukan uji kasus penggunaan inti dan pastikan izin yang diperlukan diminta kembali.
  • Menangani mode Istirahatkan dengan hasil yang diharapkan dan tanpa error.

    • Dengan menggunakan adb, letakkan perangkat pengujian dalam Istirahatkan saat aplikasi sedang berjalan.
      • Uji setiap kasus penggunaan yang memicu pesan Firebase Cloud Messaging.
      • Uji setiap kasus penggunaan yang menggunakan Alarm atau Tugas.
      • Hilangkan semua dependensi pada layanan latar belakang.
    • Setel aplikasi ke mode Aplikasi Standby
      • Uji setiap kasus penggunaan yang memicu pesan Firebase Cloud Messaging.
      • Uji setiap kasus penggunaan yang menggunakan Alarm.
  • Menangani foto/video baru yang diambil

  • Menangani berbagi file ke aplikasi lain - Uji setiap kasus penggunaan yang berbagi data file dengan aplikasi lain (bahkan aplikasi lain dari developer yang sama)

    • Uji bahwa konten terlihat di aplikasi lain dan tidak memicu error.

Informasi lebih lanjut

Pilih untuk menerima email di Konsol Google Play agar kami dapat mengirimkan informasi dan pengumuman penting dari Android dan Google Play, termasuk newsletter partner bulanan kami.