Pedoman kualitas aplikasi inti

kesuksesan jangka panjang aplikasi Anda dari segi jumlah penginstalan dan ulasan pengguna, engagement, dan retensi.

Untuk memberikan fondasi yang kokoh bagi aplikasi berkualitas, ikuti pedoman kualitas aplikasi inti.

Pedoman ini menentukan kualitas minimum yang harus dipenuhi oleh semua aplikasi.

Kualitas aplikasi adaptif

Aplikasi Android berjalan di berbagai perangkat—mulai dari ponsel ringkas hingga tablet, perangkat foldable, desktop, layar terhubung, sistem infotainment mobil, TV, dan XR. Mode jendela seperti layar terpisah dan jendela desktop memungkinkan aplikasi berjalan di bagian layar yang dapat diubah ukurannya.

Ikuti pedoman kualitas aplikasi adaptif—bersama dengan pedoman kualitas aplikasi inti—untuk:

  • Membuat aplikasi yang dioptimalkan untuk semua faktor bentuk dan ukuran tampilan
  • Mendapatkan peringkat aplikasi yang lebih tinggi di listingan dan penelusuran Google Play
  • Mendapatkan lebih banyak pengguna dan meningkatkan retensi pengguna

Panduan

Panduan inti berikut membantu Anda membuat aplikasi dasar berkualitas tinggi.

Pengalaman pengguna

Aplikasi Anda harus memberikan pola interaksi dan desain visual Android standar untuk pengalaman pengguna yang konsisten dan intuitif.

Gunakan Komponen desain material untuk membuat antarmuka pengguna aplikasi Anda sebagai pengganti komponen platform Android jika memungkinkan. Desain Material memberikan tampilan dan nuansa Android modern serta konsistensi UI di seluruh versi Android.

ID Pengujian Deskripsi
Kegunaan
Kegunaan:UX T-Usability:Core,
T-SD-Card
Aplikasi memberikan pengalaman pengguna yang konsisten untuk semua kasus penggunaan aplikasi di semua faktor bentuk.
Kegunaan:Pengganti T-Usability:Switcher,
T-SD-Card
Aplikasi masuk ke latar belakang saat fokus beralih ke aplikasi lain. Aplikasi kembali ke latar depan saat diaktifkan kembali dari pengalih aplikasi Terbaru.
Kegunaan:Tidur T-Usability:Sleep,
T-SD-Card
Saat menjadi aplikasi latar depan, aplikasi akan dijeda saat perangkat memasuki mode tidur dan dilanjutkan saat perangkat aktif.
Kegunaan:Kunci T-Kegunaan:Lock,
T-SD-Card
Saat menjadi aplikasi latar depan, aplikasi akan dijeda saat perangkat dikunci dan dilanjutkan saat perangkat dibuka kuncinya.
Antarmuka pengguna
UI:Paritas T-UI:Transisi

Orientasi tampilan dan status lipatan pada dasarnya mengekspos fitur dan tindakan yang sama serta mempertahankan paritas fungsional.

UI:Layar Penuh T-UI:Transisi

Aplikasi mengisi jendela aplikasi dalam kedua orientasi dan tidak memiliki tampilan lebar karena perubahan konfigurasi, termasuk saat perangkat dilipat dan dibentangkan.

Tampilan lebar kecil untuk menggantikan variasi kecil di geometri layar diperbolehkan.

UI:Transisi T-UI:Transisi Aplikasi menangani transisi cepat antara orientasi tampilan dan tindakan melipat serta membentangkan perangkat tanpa masalah rendering tampilan dan tanpa kehilangan status.
Kualitas visual
Visual:Display T-Visual:Display

Aplikasi menampilkan grafis, teks, gambar, dan elemen UI lainnya tanpa pikselasi, blur, atau distorsi yang kentara.

  • Aplikasi menggunakan vektor drawable jika memungkinkan
  • Aplikasi menggunakan grafis berkualitas tinggi untuk semua ukuran layar dan faktor bentuk yang ditargetkan
  • Tidak ada aliasing pada tepi menu, tombol, dan elemen UI lainnya
Visual:Keterbacaan T-Visual:Readability Aplikasi memastikan keterbacaan teks dan blok teks dengan membatasi panjang baris hingga 45-75 karakter (termasuk spasi) untuk setiap bahasa yang didukung aplikasi.
Visual:Tema T-Visual:Themes Konten aplikasi, dan semua konten web yang diakses oleh aplikasi, mendukung tema terang dan tema gelap.
Navigasi
T-Nav:Back Aplikasi mendukung navigasi tombol kembali standar dan tidak menggunakan perintah tombol kembali khusus di layar.
T-Nav:Back Aplikasi mendukung navigasi gestur untuk kembali dan beralih ke layar utama.
T-Nav:State,
T-Nav:Back

Aplikasi mempertahankan status pengguna atau aplikasi saat meninggalkan latar depan dan mencegah kehilangan data secara tidak sengaja akibat navigasi mundur dan perubahan status lainnya.

Saat kembali ke latar depan, aplikasi akan memulihkan status yang dipertahankan dan transaksi stateful yang tertunda. Contohnya mencakup perubahan pada kolom yang dapat diedit, progres game, menu, video, dan bagian lain pada aplikasi.

  • Bila dilanjutkan dari pengalih aplikasi Terbaru, aplikasi akan mengembalikan pengguna ke status saat aplikasi terakhir kali digunakan.
  • Bila dilanjutkan setelah perangkat diaktifkan dari status tidur (terkunci), aplikasi akan mengembalikan pengguna ke status saat aplikasi terakhir kali digunakan.
  • Saat diluncurkan kembali dari Beranda atau Semua Aplikasi, aplikasi harus melakukan salah satu hal berikut, bergantung pada durasi yang telah berlalu sejak aplikasi terakhir kali digunakan:
    • Jika aplikasi terakhir digunakan beberapa waktu yang lalu (menit), pulihkan status aplikasi sedekat mungkin ke status sebelumnya.
    • Jika lebih banyak waktu telah berlalu sejak aplikasi terakhir digunakan, coba pulihkan aplikasi sedekat mungkin ke status sebelumnya atau mulai aplikasi dari layar utamanya atau status default lainnya.
Notifikasi
Notify:Info T-Notify:Info

Notifikasi memberikan informasi yang relevan terkait aplikasi Anda.

  • Jangan gunakan notifikasi untuk promosi silang atau mengiklankan produk lain, karena hal ini sangat dilarang oleh Play Store.
  • Saluran notifikasi ditentukan menurut praktik terbaik, bukan menampilkan semua notifikasi dari satu saluran.
  • Pilih prioritas notifikasi yang benar.
  • Tumpuk beberapa notifikasi ke dalam satu grup notifikasi jika memungkinkan.
  • Setel waktu tunggu untuk notifikasi jika diperlukan.
  • Notifikasi bersifat menetap hanya jika berkaitan dengan peristiwa yang berlangsung, misalnya pemutaran musik atau panggilan telepon. Untuk mengetahui informasi selengkapnya, lihat bagian Fungsi.
Notify:Messaging T-Notify:Info

Untuk aplikasi pesan, aplikasi sosial, dan percakapan:

Aksesibilitas
Akses:Target T-Access:Targets Target sentuh setidaknya 48 dp. Lihat panduan Tata letak dan tipografi Desain Material.
Akses:Kontras T-Access:Contrast

Konten teks dan latar depan aplikasi mempertahankan rasio kontras berikut dengan latar belakang aplikasi:

  • 3:1 untuk teks dan grafis besar
  • 4,5:1 untuk teks kecil (kurang dari 18 pt atau kurang dari 14 pt jika teks dicetak tebal)

Pelajari warna dan kontras lebih lanjut.

Akses:Deskripsi T-Access:Deskripsi Deskripsikan setiap elemen UI, kecuali TextView, menggunakan contentDescription.

Fungsi

Aplikasi Anda harus mengimplementasikan perilaku fungsional berikut.

ID Pengujian Deskripsi
Audio
Audio:Init T-Audio:Init

Saat pengguna memulai pemutaran audio, aplikasi harus melakukan salah satu tindakan berikut dalam satu detik:

  • Mulai memutar audio
  • Memberikan indikator visual bahwa data audio sedang disiapkan
Audio:Fokus T-Audio:Focus Aplikasi harus meminta fokus audio saat audio mulai diputar dan mengabaikannya saat pemutaran berhenti.
Audio:Interupsi T-Audio:Interrupt Aplikasi harus menangani permintaan aplikasi lain untuk fokus audio. Misalnya, aplikasi dapat mengurangi volume pemutaran saat aplikasi lain memutar ucapan.
Audio:Latar Belakang T-Audio:Background Aplikasi harus mendukung pemutaran di latar belakang.
Audio:Notifikasi T-Audio:Notification Saat memutar audio di latar belakang, aplikasi harus membuat notifikasi yang dibuat dengan gaya MediaStyle.
Audio:Lanjutkan T-Audio:Resume Jika aplikasi berada di latar belakang dan audio dijeda, audio dilanjutkan saat aplikasi kembali ke latar depan, atau aplikasi harus menunjukkan kepada pengguna bahwa pemutaran sedang dijeda.
Video
Video:PiP T-Video:PiP Jika memutar video, aplikasi harus mendukung pemutaran picture-in-picture.
Video:Encoding T-Video:Encoding Jika mengenkode video, aplikasi harus melakukannya menggunakan standar kompresi video HEVC.
Berbagi
Berbagi:Sheet T-Sharing:Sheet Aplikasi harus menggunakan Android Sharesheet saat berbagi konten. Aplikasi dapat menyarankan target yang tidak tersedia untuk solusi khusus.
Layanan latar belakang
Latar belakang:Layanan T-Background:Services

Aplikasi menghindari menjalankan layanan berdurasi panjang dan tidak perlu di latar belakang. Untuk memastikan perangkat pengguna berjalan dengan lancar.

Catatan: Sistem menerapkan berbagai batasan pada layanan latar belakang.

Berikut adalah penggunaan layanan latar belakang yang buruk:

  • Mempertahankan koneksi jaringan untuk notifikasi
  • Mempertahankan koneksi Bluetooth
  • Menjaga GPS tetap aktif

Untuk mengetahui informasi selengkapnya, lihat Ringkasan tugas latar belakang.

Performa dan stabilitas

Aplikasi Anda harus memberikan performa, stabilitas, kompatibilitas, dan responsivitas yang optimal.

ID Pengujian Deskripsi
Performa
Performa:Startup T- Performance:Startup Aplikasi dimuat dengan cepat atau memberikan masukan di layar kepada pengguna (indikator progres atau tanda serupa) jika aplikasi perlu waktu lebih dari dua detik untuk dimuat.
Performa:FPS T-Performance:FPS Aplikasi merender frame setiap 16 (atau kurang) milidetik untuk menampilkan minimal 60 frame per detik. Untuk mendapatkan bantuan terkait masalah rendering, lihat Rendering lambat.
Performa:Strict T-Performance:Strict Dengan StrictMode diaktifkan (lihat bagian pengujian StrictMode), tidak ada kedipan merah (peringatan performa dari StrictMode) yang terlihat saat menguji aplikasi.
Stabilitas
Stabilitas:ANR T-Stability:ANR Aplikasi tidak error atau memblokir UI thread yang menyebabkan error ANR (Android Not Responding). Gunakan laporan pra-peluncuran Google Play untuk mengidentifikasi potensi masalah stabilitas. Setelah deployment, pantau halaman Android Vitals di konsol Google Play.
SDK
SDK:Platform T-SDK:Platform Aplikasi berjalan di platform Android versi publik terbaru tanpa mengalami error atau memberikan pengaruh besar terhadap fungsionalitas inti.
SDK:Target T-SDK:Terbaru Aplikasi menargetkan Android SDK terbaru yang diperlukan untuk menyesuaikan dengan persyaratan Google Play dengan menetapkan nilai targetSdk dalam file build.gradle modul aplikasi.
SDK:Compile T-SDK:Terbaru Aplikasi di-build dengan Android SDK terbaru dengan menetapkan nilai compileSdk dalam file build.gradle modul aplikasi.
SDK:3P T-SDK:3P,
T-SDK:Non

Setiap SDK Google atau pihak ketiga yang digunakan adalah yang terbaru. Peningkatan apa pun pada SDK ini terkait stabilitas, kompatibilitas, atau keamanan harus tersedia bagi pengguna secara tepat waktu.

Untuk SDK Google, gunakan SDK yang didukung oleh layanan Google Play jika tersedia. SDK ini kompatibel dengan versi sebelumnya, menerima update otomatis, mengurangi ukuran paket aplikasi Anda, dan menggunakan resource di perangkat dengan efisien.

SDK:Non T-SDK:Non Aplikasi tidak menggunakan antarmuka non-SDK.
SDK:Debug T-SDK:Debug Tidak ada library debug yang disertakan dalam aplikasi produksi. Library debug yang disertakan dalam aplikasi dapat menyebabkan masalah performa dan keamanan.
Baterai
Baterai:Kelola T-Battery:Kelola

Aplikasi mendukung fitur pengelolaan daya Istirahatkan dan Aplikasi Standby dengan benar.

Aplikasi dapat meminta pengecualian pemeliharaan daya. Lihat Dukungan untuk kasus penggunaan lainnya dalam Mengoptimalkan aplikasi untuk mode Istirahatkan dan Aplikasi Standby.

Privasi dan keamanan

Aplikasi menangani data pengguna dan informasi pribadi dengan aman serta memberikan tingkat izin yang sesuai.

Aplikasi yang dipublikasikan di Google Play Store juga harus mematuhi kebijakan Data Pengguna Google Play untuk melindungi privasi pengguna.

ID Pengujian Deskripsi
Izin
Izin:Min T-Permissions:Min Aplikasi hanya meminta izin minimum absolut yang diperlukan untuk mendukung kasus penggunaan saat ini. Untuk izin tertentu, seperti lokasi, aplikasi menggunakan spesifikasi kasar sebagai pengganti presisi jika memungkinkan. Lihat Meminimalkan permintaan izin Anda.
Izin:Sensitif T-Permissions:Sensitive

Aplikasi meminta izin untuk mengakses data sensitif (seperti grup izin SMS atau Log Panggilan atau lokasi) atau layanan berbayar (seperti Telepon atau SMS) hanya jika terkait langsung dengan kasus penggunaan inti aplikasi. Implikasi yang terkait dengan izin ini harus diungkapkan secara jelas kepada pengguna.

Bergantung pada cara aplikasi Anda menggunakan izin, cara alternatif untuk memenuhi kasus penggunaan aplikasi Anda mungkin dapat dilakukan tanpa mengandalkan akses ke informasi sensitif. Misalnya, daripada meminta izin terkait kontak pengguna, gunakan intent implisit untuk meminta akses.

Izin:Runtime T-Permissions:Runtime Aplikasi meminta izin runtime saat fungsionalitas diminta, bukan selama pengaktifan aplikasi.
Izin:Menjelaskan T-Permissions:Explain Aplikasi menjelaskan dengan jelas alasan izin diperlukan.
Izin:Penurunan Kualitas T-Permissions:Degrade Aplikasi melakukan degradasi halus saat pengguna menolak atau mencabut izin. Aplikasi tidak boleh mencegah akses pengguna sepenuhnya.
Data dan file
Data:Sensitif T-Data:Sensitive,
T-Data:Handling
Semua data sensitif disimpan di penyimpanan internal aplikasi.
Data:Log T-Data:Log Tidak ada data pengguna pribadi atau sensitif yang dicatat ke log sistem atau log khusus aplikasi.
Data:ID T-Data:IDs Aplikasi tidak menggunakan ID hardware apa pun yang tidak dapat direset, seperti IMEI, untuk tujuan identifikasi.
Identitas
Identitas:Petunjuk T-Identity:Hints Aplikasi memberikan petunjuk untuk mengisi otomatis kredensial akun dan informasi sensitif lainnya, seperti info kartu kredit, alamat fisik, dan nomor telepon.
Identity:CredMan T-Identity:CredMan Aplikasi mengintegrasikan Credential Manager untuk Android guna memberikan pengalaman login yang lancar dan menyatukan dukungan untuk kunci sandi, identitas gabungan, dan sandi.
Identitas:Biografi T-Identity:Bio Aplikasi mendukung autentikasi biometrik untuk melindungi transaksi keuangan atau informasi sensitif, seperti dokumen pengguna yang penting.
Komponen Aplikasi
Komponen:Ekspor T-Components:Export

Aplikasi menetapkan atribut android:exported secara eksplisit untuk semua aktivitas, layanan, penerima siaran, dan terutama penyedia konten.

Hanya komponen aplikasi yang berbagi data dengan aplikasi lain, atau komponen yang harus dipanggil oleh aplikasi lain, yang akan diekspor.

Komponen:Izin T-Components:Permissions

Semua intent dan siaran mengikuti praktik terbaik:

Komponen:Perlindungan T-Components:Protection

Semua komponen yang membagikan konten antar-aplikasi menggunakan android:protectionLevel="signature" untuk izin khusus. Ini termasuk aktivitas, layanan, penerima siaran, dan khususnya penyedia konten.

Aplikasi tidak boleh mengandalkan akses ke daftar paket yang diinstal.

Jaringan
Jaringan:Traffic T-Network:Traffic Semua traffic jaringan dikirim melalui SSL.
Jaringan:Config T-Network:Config Aplikasi mendeklarasikan konfigurasi keamanan jaringan.
Network:Play T-Network:Play Jika aplikasi menggunakan layanan Google Play, penyedia keamanan akan diinisialisasi pada pengaktifan aplikasi.
WebView
WebView:Config T-WebViews:Config,
T-WebViews:Nav
Jangan gunakan setAllowUniversalAccessFromFileURLs() untuk mengakses konten lokal. Sebagai gantinya, gunakan WebViewAssetLoader.
WebView:JavaScript T-WebView:JavaScript,
T-WebView:Nav

Tampilan web tidak menggunakan addJavaScriptInterface() dengan konten yang tidak tepercaya.

Di Android 6.0 (level API 23 dan yang lebih tinggi), gunakan saluran pesan HTML.

Eksekusi
Eksekusi:Paket T-Execution:Bundles

Aplikasi tidak secara dinamis memuat kode dari luar APK aplikasi. Gunakan Android App Bundle, yang mencakup Play Feature Delivery dan Play Asset Delivery.

Mulai Agustus 2021, penggunaan Android App Bundle diwajibkan untuk semua aplikasi baru di Google Play Store.

Kriptografi
Crypto:Algorithms T-Crypto:Algorithms Aplikasi menggunakan string, algoritma kriptografi yang disediakan platform, dan generator angka acak. Selain itu, aplikasi tidak menerapkan algoritme khusus.

Google Play

Aktifkan aplikasi Anda agar dipublikasikan di Google Play.

ID Pengujian Deskripsi
Kebijakan
Play:Policies T-Play:Policies Aplikasi secara ketat mematuhi ketentuan Kebijakan Konten Developer Google Play, tidak menawarkan konten yang tidak pantas, dan tidak menggunakan kekayaan intelektual atau merek orang lain.
Play:Maturity T-Play:Policies Tingkat kedewasaan aplikasi disetel dengan tepat berdasarkan Pedoman Rating Konten.
Halaman detail aplikasi
Play:Grafis T-Play:Graphics,
T-Play:Assets

Gambar fitur aplikasi mengikuti panduan yang diuraikan dalam artikel dukungan ini. Pastikan bahwa:

  • Listingan aplikasi menyertakan gambar fitur berkualitas tinggi
  • Gambar fitur tidak berisi gambar perangkat, screenshot, atau teks kecil yang tidak terlihat jelas bila diperkecil skalanya dan ditampilkan di layar berukuran terkecil yang menjadi target aplikasi Anda
  • Gambar fitur tidak menyerupai iklan
Play:NonAndroid T-Play:Assets Screenshot dan video aplikasi tidak menampilkan atau mereferensikan perangkat non-Android.
Play:Menyesatkan T-Play:Assets Screenshot atau video aplikasi tidak mencerminkan konten dan pengalaman penggunaan aplikasi Anda dengan cara yang keliru.
Dukungan Pengguna
Play:Bugs T-Play:Policies Bug umum yang dilaporkan pengguna dalam tab Ulasan di halaman Google Play dapat diatasi jika bug tersebut berulang dan terjadi di banyak perangkat berbeda. Jika bug terjadi di beberapa perangkat saja, Anda tetap harus mengatasinya jika perangkat tersebut sangat populer atau baru.

Lingkungan pengujian

Siapkan lingkungan pengujian sebagai berikut:

  • Pengujian emulator: Android Emulator adalah cara yang sangat bagus untuk menguji aplikasi Anda pada berbagai resolusi layar dan versi Android. Siapkan perangkat yang diemulasi (AVD) untuk mewakili kombinasi faktor bentuk dan hardware/software paling umum pada basis pengguna target Anda. Uji berbagai faktor bentuk menggunakan emulator berikut (setidaknya):

    • Perangkat foldable: Lipat 7,6 inci dengan layar luar (ini tercantum di bagian ponsel di AVD Manager)
    • Tablet: Pixel C 9,94 inci (2.560 x 1.800 piksel)
    • Pengujian notifikasi aplikasi seluler: Sambungkan perangkat seluler / emulator dengan emulator Wear OS: Wear OS Round 1,84"
  • Perangkat hardware: Lingkungan pengujian Anda harus menyertakan sejumlah kecil perangkat hardware sebenarnya yang mewakili kombinasi hardware/software dan faktor bentuk utama yang tersedia bagi konsumen. Anda tidak perlu melakukan pengujian pada setiap perangkat yang ada di pasar. Fokus pada sejumlah kecil perangkat yang mewakilinya, meskipun menggunakan satu atau dua perangkat untuk setiap faktor bentuk.

  • Lab pengujian perangkat:; Anda juga dapat menggunakan layanan pihak ketiga, seperti Firebase Test Lab, untuk menguji aplikasi pada berbagai perangkat.

  • Uji dengan Android versi terbaru: Selain menguji Android versi perwakilan untuk basis pengguna target, Anda harus selalu menguji dengan Android versi terbaru untuk memastikan perubahan perilaku terbaru tidak berdampak negatif terhadap pengalaman pengguna aplikasi Anda.

Untuk panduan lebih lanjut tentang pengujian, termasuk pengujian unit, pengujian integrasi, dan pengujian UI, lihat Dasar-dasar pengujian aplikasi Android.

StrictMode

Untuk pengujian performa, aktifkan StrictMode di aplikasi Anda. Gunakan StrictMode untuk menangkap operasi yang dapat memengaruhi performa, akses jaringan, serta pembacaan dan penulisan file. Cari operasi yang berpotensi bermasalah, baik di thread utama maupun di thread lain.

Siapkan kebijakan pemantauan per thread menggunakan StrictMode.ThreadPolicy.Builder dan aktifkan semua pemantauan yang didukung di ThreadPolicy menggunakan detectAll().

Aktifkan notifikasi visual pelanggaran kebijakan untuk ThreadPolicy menggunakan penaltyFlashScreen().

Pengujian

Pengujian kualitas aplikasi inti membantu Anda menilai kualitas dasar aplikasi Anda. Anda dapat menggabungkan pengujian atau mengintegrasikan grup pengujian dalam rencana pengujian Anda.

Pengalaman pengguna

ID Fitur Deskripsi
Kegunaan
Kegunaan T:Inti Kegunaan:UX

Buka semua bagian aplikasi—semua layar, dialog, setelan, dan alur penggunaan.

Lakukan hal berikut:
  • Jika aplikasi memungkinkan pengeditan atau pembuatan konten, permainan game, atau pemutaran media, pastikan untuk menguji alur tersebut.
  • Saat menguji aplikasi, berikan gangguan dari aplikasi lain, seperti menerima notifikasi atau panggilan telepon, lalu terapkan perubahan sementara pada atribut perangkat, seperti konektivitas jaringan, fungsi baterai, ketersediaan GPS, dan muatan sistem.
  • Memasuki dan menguji semua alur pembelian dalam aplikasi
T-Usability:Switcher Kegunaan:Pengganti Dari setiap layar aplikasi, beralihlah ke aplikasi lain yang sedang berjalan, lalu kembali ke aplikasi yang sedang diuji menggunakan pengalih aplikasi Terbaru.
Kegunaan T:Tidur Kegunaan:Tidur Tekan tombol daya untuk mengalihkan perangkat ke mode tidur, lalu tekan lagi tombol daya untuk mengaktifkan layar.
T-Usability:Lock Kegunaan:Lock Siapkan kunci layar di perangkat. Tekan tombol daya untuk mengalihkan perangkat ke mode tidur (yang mengunci perangkat). Lalu, tekan lagi tombol daya untuk mengaktifkan layar dan membuka kunci perangkat.
Kartu SD
T-SD-Card Kegunaan:UX

Lakukan pengujian fungsi inti dengan aplikasi yang diinstal di kartu SD perangkat (jika aplikasi mendukung metode penginstalan ini).

Untuk memindahkan aplikasi ke kartu SD, lihat Setelan aplikasi.

Antarmuka pengguna
T-UI:Transisi UI:Paritas,
UI:Layar Penuh,
UI:Transisi

Dari setiap layar aplikasi, putar perangkat antara orientasi lanskap dan potret, serta status terlipat dan terbentang setidaknya tiga kali.

Pastikan aplikasi melakukan hal berikut:
  • Menyediakan paritas fungsi di semua orientasi tampilan dan status lipatan
  • Mengisi jendela aplikasi dalam semua orientasi tampilan dan status lipatan serta tidak memiliki tampilan lebar
  • Mempertahankan status dan tidak memiliki masalah rendering selama transisi cepat antara orientasi dan tindakan melipat serta membentangkan perangkat
Kualitas visual
T-Visual:Display Visual:Display Gunakan semua fitur atau aplikasi Anda. Verifikasi bahwa semua visual, termasuk grafis, teks, gambar, dan elemen UI lainnya bebas dari distorsi, blur, atau pikselasi.
T-Visual:Keterbacaan Visual:Keterbacaan

Tinjau semua blok teks di aplikasi. Pastikan panjang baris teks dan blok teks dibatasi hingga 45-75 karakter (termasuk spasi) agar mudah dibaca.

Verifikasi hal berikut:
  • Komposisi dapat diterima di semua faktor bentuk yang didukung
  • Tidak ada huruf atau kata yang terpotong
  • Tidak ada gabungan kata yang tidak benar dalam tombol atau ikon
  • Spasi yang cukup di antara teks dan elemen di sekitarnya
T-Visual:Tema Visual:Tema Pastikan semua teks dapat dibaca dalam tema terang dan gelap. Pastikan semua visual dapat dibedakan dengan jelas dan estetis dalam tema terang dan gelap.
Navigasi
T-Nav:Back Nav:BackButton,
Nav:BackGesture

Buka semua bagian aplikasi—semua layar, dialog, setelan, dan alur penggunaan.

Dari setiap layar aplikasi, tekan tombol Kembali atau gunakan gestur geser ke belakang. Aplikasi akan membuka layar sebelumnya atau layar utama.

T-Nav:State Nav:State Dari setiap layar aplikasi, tekan tombol Beranda perangkat atau geser ke atas di navigasi gestur, lalu luncurkan kembali aplikasi dari layar Semua Aplikasi.
Notifikasi
T-Notify:Info Notify:Info,
Notify:Messaging
Picu dan amati semua jenis notifikasi yang dapat ditampilkan aplikasi di panel samping notifikasi. Perluas notifikasi jika ada (Android 4.1 dan yang lebih baru), lalu ketuk semua tindakan yang tersedia.
Aksesibilitas
T-Access:Target Akses:Target Pastikan target sentuh mempertahankan ukuran dan posisi yang konsisten dan dapat diakses untuk semua ukuran dan konfigurasi tampilan. Untuk mengetahui informasi tentang aksesibilitas, lihat Accessibility Scanner.
T-Access:Kontras Akses:Kontras Verifikasi kontras semua elemen visual.
T-Access:Deskripsi Akses:Deskripsi Pastikan semua elemen UI selain TextView memiliki deskripsi konten.

Fungsi

ID Fitur Deskripsi
Audio
T-Audio:Init Audio:Init Mulai pemutaran audio. Pastikan dalam waktu satu detik, aplikasi mulai memutar audio atau memberikan indikator visual bahwa data audio sedang disiapkan untuk pemutaran.
T-Audio:Focus Audio:Fokus Mulai pemutaran audio. Aplikasi harus meminta fokus audio. Saat pemutaran audio berhenti, aplikasi harus melepaskan fokus audio (yang terjadi secara otomatis untuk aplikasi yang menargetkan Android 12 (level API 31) dan yang lebih tinggi).
T-Audio:Interrupt Audio:Interrupt Mulai pemutaran audio. Mulai pemutaran audio di aplikasi lain. Aplikasi Anda harus merespons perubahan fokus audio dan menghentikan pemutaran audio atau mengurangi volume pemutaran.
T-Audio:Background Audio:Latar belakang Mulai pemutaran audio. Berinteraksi dengan aplikasi non-audio lain sebagai aplikasi latar depan. Aplikasi harus terus memutar audio di latar belakang.
T-Audio:Notification Audio:Notifikasi Mulai pemutaran audio. Berinteraksi dengan aplikasi non-audio lain sebagai aplikasi latar depan. Pastikan aplikasi Anda terus memutar audio di latar belakang dan telah membuat notifikasi dengan gaya MediaStyle. Lihat Bekerja dengan baik dengan kontrol media.
T-Audio:Resume Audio:Lanjutkan Mulai pemutaran audio. Berinteraksi dengan aplikasi non-audio lain sebagai aplikasi latar depan. Berinteraksi dengan aplikasi Anda untuk menjadikannya aplikasi teratas. Audio akan dilanjutkan atau volume akan dipulihkan. Jika tidak, aplikasi harus menunjukkan kepada pengguna bahwa pemutaran dijeda.
T-Video:PiP Video:PiP Mengaktifkan pemutaran video aplikasi dalam mode picture-in-picture.
T-Video:Encoding Video:Encoding Verifikasi bahwa aplikasi mengenkode video menggunakan standar kompresi video HEVC.
Berbagi
Berbagi:Sheet Buat intent dan mulai aktivitas dengan memanggil startActivity() dengan intent sebagai argumen. Lihat Menggunakan Android Sharesheet. Aplikasi Anda harus menampilkan Android Sharesheet.
Layanan latar belakang
CR-6 Latar belakang:Layanan

Gunakan semua fitur utama aplikasi Anda. Pastikan tidak ada layanan latar belakang yang berjalan lama yang dimulai.

Beralihlah ke aplikasi lain untuk mengirimkan aplikasi Anda ke latar belakang. Buka Setelan, lalu periksa apakah aplikasi Anda masih memiliki layanan yang sedang berjalan saat di latar belakang. Di Android 4.0 dan yang lebih baru, buka layar Aplikasi, lalu temukan aplikasi tersebut di tab Berjalan.

Performa dan stabilitas

ID Fitur Deskripsi
Performa
T- Performance:Startup Performa:Startup Mulai aplikasi Anda. Pastikan aplikasi dimuat dengan cepat atau memberikan indikator progres atau tanda serupa jika aplikasi perlu waktu lebih dari dua detik untuk dimuat.
T-Performance:FPS Performa:FPS Gunakan semua fitur utama aplikasi Anda. Pastikan aplikasi merender minimal 60 frame per detik. Gunakan opsi Rendering HWUI profil untuk membantu menguji aplikasi Anda.
T-Performance:Strict Performa:Strict

Aktifkan StrictMode di aplikasi Anda. Gunakan semua fitur utama. Pastikan aplikasi tidak menghasilkan peringatan performa StrictMode; artinya, tidak ada kedipan merah yang terlihat saat menguji aplikasi. Kedipan merah menunjukkan perilaku buruk terkait penyimpanan, akses jaringan, atau pengelolaan memori (seperti kebocoran memori).

Perhatikan pembersihan sampah memori dan dampaknya terhadap pengalaman pengguna dengan cermat.

Stabilitas
T-Stability:ANR Stabilitas:ANR Gunakan semua fitur utama aplikasi Anda. Pastikan aplikasi tidak error atau memblokir UI thread yang menyebabkan error ANR (Android Tidak Merespons). Tinjau laporan pra-peluncuran Google Play untuk mengidentifikasi potensi masalah stabilitas.
SDK
T-SDK:Platform SDK:Platform Jalankan aplikasi Anda di platform Android versi publik terbaru. Gunakan semua fitur utama. Pastikan aplikasi tidak error dan berjalan tanpa kehilangan fungsi inti.
T-SDK:Terbaru SDK:Target,
SDK:Compile
Tinjau file manifes Android dan konfigurasi build untuk memastikan aplikasi dibuat menggunakan SDK terbaru yang tersedia (targetSdk dan compileSdk).
T-SDK:3P SDK:3P Tinjau file build.gradle aplikasi Anda untuk mengetahui dependensi yang sudah tidak berlaku.
T-SDK:Non SDK:Non Gunakan alat lint Android Studio untuk mendeteksi penggunaan antarmuka non-SDK. Lihat Pembatasan pada antarmuka non-SDK untuk metode pengujian alternatif.
T-SDK:Debug SDK:Debug Tinjau file build.gradle aplikasi Anda untuk mengetahui apakah ada library debug yang disertakan.
Baterai
T-Battery:Manage Baterai:Kelola

Gunakan semua fitur utama aplikasi dalam mode Istirahatkan dan Aplikasi Standby. Pastikan alarm, timer, notifikasi, dan sinkronisasi berfungsi dengan baik di masa pemeliharaan mode Istirahatkan dan saat aplikasi keluar dari mode Aplikasi Standby.

Uji perilaku fitur Istirahatkan dan Aplikasi Standby menggunakan perintah ADB (lihat Menguji dengan Fitur Istirahatkan dan Aplikasi Standby untuk mengetahui persyaratan dan panduan).

Untuk mendiagnosis pengurasan baterai yang tidak terduga, gunakan Power Profiler Android Studio atau alat Battery Historian yang dikombinasikan dengan pekerjaan latar belakang yang direncanakan.

Privasi dan keamanan

ID Fitur Deskripsi
Izin
T-Permissions:Min Izin:Min Tinjau semua izin yang diperlukan aplikasi Anda, dalam file manifes, saat runtime, dan di setelan aplikasi di perangkat (Setelan > Info Aplikasi).
T-Permissions:Sensitive Izin:Sensitif Gunakan fitur aplikasi Anda yang meminta izin. Pastikan aplikasi meminta izin untuk mengakses data atau layanan sensitif hanya untuk kasus penggunaan inti aplikasi. Pastikan implikasi pemberian izin ke data dan layanan sensitif dikomunikasikan dengan jelas kepada pengguna.
T-Permissions:Runtime Izin:Runtime Gunakan semua fitur aplikasi Anda yang memerlukan izin. Pastikan izin diminta secara lambat, yaitu hanya saat fitur diakses, bukan selama pengaktifan aplikasi.
T-Permissions:Explain Izin:Explain Gunakan semua fitur aplikasi Anda yang memerlukan izin. Pastikan aplikasi menjelaskan kepada pengguna alasan izin diperlukan.
T-Permissions:Degrade Izin:Turunkan Gunakan semua fitur aplikasi Anda yang memerlukan izin. Menolak atau mencabut izin. Pastikan aplikasi menyediakan kasus penggunaan alternatif dan terus berfungsi.
Data dan file
T-Data:Sensitive Data:Sensitive Tinjau semua data yang disimpan dalam penyimpanan internal. Pastikan bahwa data yang disimpan secara eksternal bukan data sensitif.
T-Data:Penanganan Data:Sensitive Tinjau cara data yang dimuat dari penyimpanan eksternal ditangani dan diproses.
T-Data:Log Data:Log Gunakan semua fitur aplikasi utama sambil memantau log perangkat. Pastikan tidak ada informasi pengguna pribadi yang dicatat.
T-Data:IDs Data:ID Gunakan semua fitur utama aplikasi. Verifikasi bahwa aplikasi tidak menggunakan ID hardware apa pun seperti IMEI untuk tujuan identifikasi.
Identitas
T-Identity:Hints Identity:Hints Gunakan semua fitur aplikasi yang memerlukan input pengguna. Verifikasi bahwa aplikasi memberikan petunjuk untuk mengisi otomatis kolom input untuk data seperti kredensial akun dan informasi sensitif lainnya.
T-Identity:CredMan Identity:CredMan Login ke aplikasi Anda. Verifikasi bahwa aplikasi mengintegrasikan Credential Manager untuk Android untuk pengalaman login yang menyatukan dukungan untuk kunci sandi, identitas gabungan, dan sandi.
T-Identity:Bio Identity:Bio Gunakan semua fitur aplikasi yang memerlukan autentikasi. Pastikan aplikasi melindungi transaksi keuangan atau informasi sensitif, seperti dokumen pengguna yang penting, dengan autentikasi biometrik.
Komponen Aplikasi
T-Components:Export Komponen:Ekspor Tinjau semua komponen aplikasi yang ditentukan dalam file manifes Android untuk status ekspor yang sesuai. Properti yang diekspor harus ditetapkan secara eksplisit untuk semua komponen.
T-Components:Permissions Komponen:Izin Tinjau semua izin yang diperlukan aplikasi Anda, dalam file manifes, saat runtime, dan di setelan aplikasi di perangkat (Setelan > Info Aplikasi).
T-Components:Protection Komponen:Perlindungan Tinjau semua penyedia konten yang ditentukan dalam file manifes Android. Pastikan setiap penyedia memiliki protectionLevel yang sesuai.
Jaringan
T-Network:Traffic Network:Traffic Deklarasikan konfigurasi keamanan jaringan yang menonaktifkan traffic cleartext, lalu uji aplikasi.
T-Network:Config Network:Config Tinjau konfigurasi keamanan jaringan aplikasi. Pastikan tidak ada pemeriksaan lint saat terjadi kegagalan konfigurasi.
T-Network:Play Jaringan:Play Pastikan penyedia keamanan diinisialisasi saat aplikasi dimulai untuk layanan Google Play.
WebView
T-WebViews:Config WebViews:Config Tinjau konfigurasi keamanan jaringan aplikasi. Pastikan tidak ada pemeriksaan lint saat terjadi kegagalan konfigurasi.
T-WebView:JavaScript WebView:JavaScript Untuk setiap WebView, buka halaman yang memerlukan JavaScript.
T-WebView:Nav WebViews:Config,
WebViews:JavaScript
Di setiap WebView, coba buka situs dan konten yang tidak dimuat langsung oleh aplikasi Anda.
Eksekusi
T-Execution:Bundles Eksekusi:Bundle Verifikasi bahwa aplikasi menggunakan Android App Bundle dan tidak memuat kode secara dinamis dari luar APK aplikasi.
Kriptografi
T-Crypto:Algoritma Crypto:Algorithms Pastikan aplikasi menggunakan algoritma kriptografi dan generator angka acak yang kuat yang disediakan platform. Pastikan juga bahwa aplikasi tidak menerapkan algoritma khusus.

Google Play

ID Fitur Deskripsi
Kebijakan
T-Play:Kebijakan Play:Kebijakan,
Play:Kematangan,
Play:Bug
Login ke Konsol Google Play untuk meninjau profil developer, deskripsi aplikasi, screenshot, gambar fitur, rating konten, dan masukan pengguna Anda.
Halaman detail aplikasi
T-Play:Grafis Play:Graphics Download gambar fitur dan screenshot, lalu perkecil skalanya agar sesuai dengan ukuran layar perangkat dan faktor bentuk yang Anda targetkan.
T-Play:Aset Play:Grafis,
Play:NonAndroid,
Play:Menyesatkan
Tinjau semua aset visual, media, teks, library kode, dan konten lainnya yang dipaketkan dalam download aplikasi atau file ekspansi.

Mengarsipkan

Versi sebelumnya dari pedoman kualitas aplikasi inti: