Pedoman kualitas aplikasi inti

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

Panduan 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 mode jendela desktop memungkinkan aplikasi berjalan di bagian layar yang dapat diubah ukurannya.

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

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

Panduan

Panduan inti berikut membantu Anda membuat aplikasi dasar yang berkualitas tinggi.

Pengalaman pengguna

Desain visual dan pola interaksi Android standar memberikan pengalaman pengguna yang konsisten dan intuitif.

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

Kegunaan

ID Pengujian Deskripsi
Consistent_UX T-Consistent_UX,
T-SD_Card
Aplikasi memberikan pengalaman pengguna yang konsisten untuk semua kasus penggunaan aplikasi di semua faktor bentuk.
App_Switcher T-App_Switcher,
T-SD_Card
Aplikasi beralih ke latar belakang saat fokus beralih ke aplikasi lain. Aplikasi kembali ke latar depan saat diaktifkan kembali dari pengalih aplikasi Terbaru.
Sleep_Resume T-Sleep_Resume,
T-SD_Card
Saat aplikasi berada di latar depan, aplikasi akan dijeda saat perangkat beralih ke mode tidur dan dilanjutkan saat perangkat aktif.
Lock_Resume T-Lock_Resume,
T-SD_Card
Saat aplikasi berada di latar depan, aplikasi akan dijeda saat perangkat dikunci dan dilanjutkan saat perangkat dibuka kuncinya.

Antarmuka pengguna

ID Pengujian Deskripsi
Display_State_Parity T-Orientation_Transitions

Orientasi layar dan status lipat pada dasarnya mengekspos fitur dan tindakan yang sama serta mempertahankan paritas fungsional.

Fullscreen_Display T-Orientation_Transitions

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.

Transisi_Orientasi T-Orientation_Transitions Aplikasi menangani transisi cepat antara orientasi tampilan dan tindakan melipat dan membentangkan perangkat tanpa masalah rendering tampilan dan tanpa kehilangan status.

Kualitas visual

ID Pengujian Deskripsi
Graphic_Quality T-Graphic_Quality

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

  • Aplikasi menggunakan vektor drawable jika memungkinkan
  • Aplikasi menggunakan grafis berkualitas tinggi untuk semua ukuran layar dan faktor bentuk yang ditargetkan
  • Tidak ada aliasing di tepi menu, tombol, dan elemen UI lainnya
Line_Length T-Line_Length Aplikasi memastikan keterbacaan teks dan blok teks dengan membatasi panjang baris hingga 45-75 karakter (termasuk spasi) untuk setiap bahasa yang didukung aplikasi.
Theme_Support T-Theme_Support Konten aplikasi, dan semua konten web yang diakses oleh aplikasi, mendukung tema terang dan gelap.
ID Pengujian Deskripsi
Back_Button_Nav T-Back_Nav Aplikasi mendukung navigasi tombol kembali standar dan tidak menggunakan perintah tombol kembali kustom di layar.
Back_Gesture_Nav T-Back_Nav Aplikasi mendukung navigasi gestur untuk kembali dan membuka layar utama.
State_Preservation T-State_Preservation,
T-Back_Nav

Aplikasi mempertahankan status pengguna atau aplikasi saat meninggalkan latar depan dan mencegah kehilangan data secara tidak sengaja akibat navigasi kembali 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 dari aplikasi.

  • Jika dilanjutkan dari pengalih aplikasi Terbaru, aplikasi akan mengembalikan pengguna ke status yang sama persis seperti saat aplikasi terakhir digunakan.
  • Saat aplikasi dilanjutkan setelah perangkat aktif dari status tidur (terkunci), aplikasi akan mengembalikan pengguna ke status yang sama persis seperti saat aplikasi terakhir digunakan.
  • Jika diluncurkan kembali dari Layar Utama atau Semua Aplikasi, aplikasi harus melakukan salah satu hal berikut, bergantung pada berapa lama waktu yang telah berlalu sejak aplikasi terakhir digunakan:
    • Jika aplikasi terakhir digunakan beberapa saat yang lalu (menit), pulihkan status aplikasi semirip mungkin dengan 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 utama atau status default lainnya.

Notifikasi

ID Pengujian Deskripsi
Notification_Quality T-Notification_Quality

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.
  • Memilih 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.
Conversation_Quality T-Notification_Quality

Untuk aplikasi pesan, aplikasi media sosial, dan percakapan:

Aksesibilitas

ID Pengujian Deskripsi
Touch_Target_Size T-Touch_Target_Size Target sentuh setidaknya 48 dp. Lihat panduan Ukuran target Desain Material.
Visual_Contrast T-Visual_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.

Content_Description T-Content_Description Deskripsikan setiap elemen UI, kecuali TextView, menggunakan contentDescription.

Fungsi

Aplikasi Anda harus menerapkan perilaku fungsional berikut.

Audio

ID Pengujian Deskripsi
Audio_Playback_Start T-Audio_Playback_Start

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_Focus_Request T-Audio_Focus_Request Aplikasi harus meminta fokus audio saat audio mulai diputar dan mengabaikan fokus audio saat pemutaran berhenti.
Audio_Focus_Change T-Audio_Focus_Change Aplikasi harus menangani permintaan aplikasi lain untuk fokus audio. Misalnya, aplikasi dapat mengurangi volume pemutaran saat aplikasi lain memutar ucapan.
Audio_Playback_Background T-Audio_Playback_Background

Aplikasi harus mendukung pemutaran di latar belakang.

Aplikasi harus menggunakan layanan latar depan untuk mencegah sistem menghentikan proses aplikasi setelah aplikasi tidak lagi terlihat. Aplikasi juga harus menampilkan notifikasi persisten yang tidak dapat ditutup di status bar atau di layar kunci untuk memberi tahu pengguna bahwa aplikasi sedang berjalan.

Pengguna harus dapat mengontrol pemutaran menggunakan kontrol notifikasi atau layar kunci atau kontrol pada aksesori yang terhubung.

Audio_Notification_Style T-Audio_Notification_Style Saat aplikasi memutar audio di latar belakang, aplikasi harus membuat notifikasi yang diberi gaya dengan MediaStyle.
Audio_Playback_Resume T-Audio_Playback_Resume Jika aplikasi berada di latar belakang dan audio dijeda, audio akan dilanjutkan saat aplikasi kembali ke latar depan, atau aplikasi harus menunjukkan kepada pengguna bahwa pemutaran dalam status dijeda.

Video

ID Pengujian Deskripsi
Video_PiP T-Video_PiP Jika aplikasi memutar video, aplikasi harus mendukung pemutaran picture-in-picture.
Video_Encoding T-Video_Encoding Jika aplikasi mengenkode video, aplikasi harus melakukannya menggunakan standar kompresi video HEVC.
Video_Playback_Background T-Video_Playback_Background

Aplikasi mendukung pemutaran video di latar belakang saat aplikasi tidak berada di posisi paling atas, termasuk saat jendela aplikasi:

  • Diperkecil
  • Di balik jendela lain atau UI sistem (misalnya, menu notifikasi atau layar utama/layar kunci)
  • Di luar layar desktop yang terlihat

Berbagi

ID Pengujian Deskripsi
System_Sharesheet T-System_Sharesheet Aplikasi harus menggunakan Android Sharesheet saat berbagi konten. Aplikasi dapat menyarankan target yang tidak tersedia untuk solusi khusus.

Layanan latar belakang

ID Pengujian Deskripsi
Background_Service_Optimization T-Background_Service_Optimization

Aplikasi menghindari menjalankan layanan berdurasi panjang dan tidak perlu di latar belakang untuk memastikan kelancaran perangkat pengguna.

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
  • Memastikan GPS tetap aktif

Untuk mengetahui informasi selengkapnya, lihat Ringkasan tugas latar belakang.

Performa dan stabilitas

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

Performa

ID Pengujian Deskripsi
App_Startup_Time T-App_Startup_Time Aplikasi dimuat dengan cepat atau memberikan masukan di layar kepada pengguna (indikator progres atau petunjuk serupa) jika aplikasi memerlukan waktu lebih dari dua detik untuk dimuat.
Rendering_Performance T-Rendering_Performance Aplikasi merender frame setiap 16 (atau kurang) milidetik untuk menampilkan setidaknya 60 frame per detik. Untuk mendapatkan bantuan terkait masalah rendering, lihat Rendering lambat.
StrictMode_Compliance T-StrictMode_Compliance Dengan mengaktifkan StrictMode (lihat bagian pengujian StrictMode), tidak ada kedipan merah (peringatan performa dari StrictMode) yang terlihat saat menguji aplikasi.

Stabilitas

ID Pengujian Deskripsi
Stability_ANR T-Stability_ANR Aplikasi tidak error atau memblokir UI thread yang menyebabkan error ANR (Android Tidak Merespons). Gunakan laporan pra-peluncuran Google Play untuk mengidentifikasi potensi masalah stabilitas. Setelah deployment, pantau halaman Android Vitals di Konsol Google Play.

SDK

ID Pengujian Deskripsi
Android_Platform_Compatibility T-Android_Platform_Compatibility Aplikasi berjalan di versi publik terbaru platform Android tanpa mengalami error atau memberikan pengaruh besar terhadap fungsi inti.
Target_SDK_Version T-Target_SDK_Version Aplikasi menargetkan Android SDK terbaru yang diperlukan untuk menyesuaikan dengan persyaratan Google Play dengan menetapkan nilai targetSdk dalam file build.gradle modul aplikasi.
Compile_SDK_Version T-Target_SDK_Version Aplikasi di-build menggunakan Android SDK terbaru dengan menetapkan nilai compileSdk dalam file build.gradle modul aplikasi.
SDK_Maintenance T-SDK_Maintenance,
T-Non_SDK_Interfaces

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.

Non_SDK_Interfaces T-Non_SDK_Interfaces Aplikasi tidak menggunakan antarmuka non-SDK.
Production_Build_Quality T-Production_Build_Quality Tidak ada library debug yang disertakan dalam aplikasi produksi. Library debug yang disertakan dalam aplikasi dapat menyebabkan masalah performa dan keamanan.

Baterai

ID Pengujian Deskripsi
Power_Management T-Power_Management

Aplikasi mendukung fitur pengelolaan daya Mode 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 mengikuti kebijakan Data Pengguna Google Play untuk melindungi privasi pengguna.

Izin

ID Pengujian Deskripsi
Minimize_Permissions T-Minimize_Permissions Aplikasi hanya meminta izin minimum mutlak yang diperlukan untuk mendukung kasus penggunaan saat ini. Untuk beberapa izin, seperti lokasi, aplikasi menggunakan spesifikasi perkiraan, bukan presisi jika memungkinkan. Lihat Meminimalkan permintaan izin.
Sensitive_Permissions T-Sensitive_Permissions

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 diungkap secara jelas kepada pengguna.

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

Runtime_Permissions T-Runtime_Permissions Aplikasi meminta izin runtime saat fungsi diminta, bukan saat aplikasi dimulai.
Permission_Rationale T-Permission_Rationale Aplikasi menjelaskan dengan jelas alasan izin diperlukan.
Graceful_Degradation T-Graceful_Degradation Aplikasi melakukan degradasi halus saat pengguna menolak atau mencabut izin. Aplikasi tidak boleh sepenuhnya mencegah akses pengguna.

Data dan file

ID Pengujian Deskripsi
Sensitive_Data_Storage T-Sensitive_Data_Storage,
T-Sensitive_Data_Handling
Semua data sensitif disimpan di penyimpanan internal aplikasi.
Sensitive_Data_Logging T-Sensitive_Data_Logging Tidak ada data pengguna pribadi atau sensitif yang dicatat ke log sistem atau log khusus aplikasi.
Hardware_IDs T-Hardware_IDs Aplikasi tidak boleh menggunakan ID hardware apa pun yang tidak dapat direset, seperti IMEI, untuk tujuan identifikasi.

Pencadangan dan pemulihan data

ID Pengujian Deskripsi
App_Data_Backup T-App_Data_Backup

Aplikasi mempertahankan data pengguna, setelan, dan status aplikasi di seluruh pencadangan cloud dan transfer antarperangkat (D2D).

Terapkan Pencadangan Otomatis dan konfigurasikan android:dataExtractionRules untuk memastikan pemulihan data yang lancar saat menyiapkan perangkat baru atau menginstal ulang aplikasi.

App_Logins_Restoration T-App_Logins_Restoration

Aplikasi otomatis memulihkan akun pengguna dan status login saat pengguna menyiapkan perangkat baru.

Terapkan Restore Credentials menggunakan Credential Manager untuk mengautentikasi ulang pengguna secara otomatis tanpa memaksa alur login manual atau pemulihan akun.

Identitas

ID Pengujian Deskripsi
Autofill_Hints T-Autofill_Hints Aplikasi memberikan petunjuk untuk mengisi otomatis kredensial akun dan informasi sensitif lainnya, seperti info kartu kredit, alamat fisik, dan nomor telepon.
Credential_Manager T-Credential_Manager Aplikasi mengintegrasikan Credential Manager untuk Android guna memberikan pengalaman login yang lancar dan menyatukan dukungan untuk kunci sandi, identitas gabungan, dan sandi.
Biometric_Authentication T-Biometric_Authentication Aplikasi mendukung autentikasi biometrik untuk melindungi transaksi keuangan atau informasi sensitif, seperti dokumen pengguna yang penting.

Komponen aplikasi

ID Pengujian Deskripsi
Component_Export T-Component_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.

Component_Permissions T-Component_Permissions

Semua intent dan siaran mengikuti praktik terbaik:

Component_Protection T-Component_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

ID Pengujian Deskripsi
Network_Security_Traffic T-Network_Security_Traffic Semua traffic jaringan dikirim melalui SSL.
Network_Security_Configuration T-Network_Security_Configuration Aplikasi mendeklarasikan konfigurasi keamanan jaringan.
Security_Provider_Initialization T-Security_Provider_Initialization Jika aplikasi menggunakan layanan Google Play, penyedia keamanan akan diinisialisasi pada pengaktifan aplikasi.

WebView

ID Pengujian Deskripsi
WebView_Asset_Loader T-WebView_Asset_Loader,
T-WebView_Navigation
Jangan gunakan setAllowUniversalAccessFromFileURLs() untuk mengakses konten lokal. Sebagai gantinya, gunakan WebViewAssetLoader.
WebView_JavaScript T-WebView_JavaScript,
T-WebView_Navigation

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

ID Pengujian Deskripsi
App_Bundles T-App_Bundles

Aplikasi tidak memuat secara dinamis 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

ID Pengujian Deskripsi
Cryptographic_Algorithms T-Cryptographic_Algorithms Aplikasi menggunakan algoritma kriptografi dan generator angka acak yang kuat dan disediakan platform. Selain itu, aplikasi tidak menerapkan algoritme khusus.

Google Play

Memungkinkan aplikasi Anda dipublikasikan di Google Play.

Kebijakan

ID Pengujian Deskripsi
Play_Content_Policies T-Play_Content_Policies Aplikasi mematuhi persyaratan Kebijakan Konten Developer Google Play secara ketat, tidak menawarkan konten tidak pantas, dan tidak menggunakan kekayaan intelektual atau merek pihak lain.
Play_Content_Rating T-Play_Content_Policies Tingkat kedewasaan aplikasi ditetapkan dengan tepat berdasarkan Panduan Rating Konten.

Halaman detail aplikasi

ID Pengujian Deskripsi
Play_Feature_Graphic T-Play_Feature_Graphic,
T-Play_Graphic_Assets

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

  • Listingan aplikasi menyertakan gambar fitur berkualitas tinggi
  • Gambar utama tidak berisi gambar perangkat, screenshot, atau teks kecil yang tidak terbaca saat diperkecil dan ditampilkan pada ukuran layar terkecil yang ditargetkan oleh aplikasi Anda
  • Gambar fitur tidak menyerupai iklan
Play_Device_References T-Play_Graphic_Assets Screenshot dan video aplikasi tidak menampilkan atau merujuk ke perangkat non-Android.
Play_Misleading_Content T-Play_Graphic_Assets Screenshot atau video aplikasi tidak merepresentasikan konten dan pengalaman aplikasi Anda dengan cara yang menyesatkan.

Dukungan pengguna

ID Pengujian Deskripsi
Play_User_Reviews T-Play_Content_Policies Bug umum yang dilaporkan pengguna dalam tab Ulasan pada 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 bagus untuk menguji aplikasi Anda di berbagai versi Android dan resolusi layar. 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 bawah 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 inci
  • 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 menguji di setiap perangkat yang ada di pasar. Fokus pada sejumlah kecil perangkat yang representatif, bahkan menggunakan satu atau dua perangkat per faktor bentuk.

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

  • Uji dengan versi Android terbaru: Selain menguji versi Android yang representatif untuk basis pengguna target, Anda harus selalu menguji dengan versi Android terbaru untuk memastikan perubahan perilaku terbaru tidak berdampak negatif pada 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 di thread utama dan thread lainnya.

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 dapat menggabungkan pengujian atau mengintegrasikan grup pengujian dalam rencana pengujian.

Pengalaman pengguna

Lakukan pengujian untuk memastikan pengalaman pengguna yang konsisten dan intuitif.

Kegunaan

ID Fitur Deskripsi
T-Consistent_UX Consistent_UX

Buka semua bagian aplikasi—semua layar, dialog, setelan, dan semua 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-App_Switcher App_Switcher Dari setiap layar aplikasi, beralihlah ke aplikasi lain yang sedang berjalan, lalu kembali ke aplikasi yang sedang diuji menggunakan pengalih aplikasi Recents.
T-Sleep_Resume Sleep_Resume Tekan tombol daya untuk mengalihkan perangkat ke mode tidur, lalu tekan lagi tombol daya untuk mengaktifkan layar.
T-Lock_Resume Lock_Resume 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

ID Fitur Deskripsi
T-SD_Card Consistent_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

ID Fitur Deskripsi
T-Orientation_Transitions Display_State_Parity,
Fullscreen_Display,
Orientation_Transitions

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

Pastikan aplikasi melakukan hal berikut:
  • Menyediakan paritas fungsi di semua orientasi layar dan status lipat
  • Mengisi jendela aplikasi di semua orientasi tampilan dan status lipat serta tidak memiliki tampilan lebar
  • Mempertahankan status dan tidak memiliki masalah rendering selama transisi cepat antara orientasi dan tindakan melipat dan membentangkan perangkat

Kualitas visual

ID Fitur Deskripsi
T-Graphic_Quality Graphic_Quality Gunakan semua fitur aplikasi Anda. Pastikan semua visual, termasuk grafis, teks, gambar, dan elemen UI lainnya, bebas dari distorsi, buram, atau pikselasi.
T-Line_Length Line_Length

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

Pastikan hal berikut:
  • Komposisi dapat diterima di semua faktor bentuk yang didukung
  • Tidak ada huruf atau kata yang terpotong
  • Tidak ada penggalan kata yang tidak tepat dalam tombol atau ikon
  • Spasi yang cukup antara teks dan elemen di sekitarnya
T-Theme_Support Theme_Support Pastikan semua teks dapat dibaca dalam tema terang dan gelap. Pastikan semua visual terlihat jelas dan estetis dalam tema terang dan gelap.
ID Fitur Deskripsi
T-Back_Nav Back_Button_Nav,
Back_Gesture_Nav

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

Dari setiap layar aplikasi, tekan tombol Kembali atau gunakan gestur geser kembali. Aplikasi harus membuka layar sebelumnya atau layar utama.

T-State_Preservation State_Preservation Dari setiap layar aplikasi, tekan tombol Layar Utama perangkat atau geser ke atas dalam navigasi gestur, lalu luncurkan kembali aplikasi dari layar Semua Aplikasi.

Notifikasi

ID Fitur Deskripsi
T-Notification_Quality Notification_Quality,
Conversation_Quality
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

ID Fitur Deskripsi
T-Touch_Target_Size Touch_Target_Size 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-Visual_Contrast Visual_Contrast Verifikasi kontras semua elemen visual.
T-Content_Description Content_Description Pastikan semua elemen UI selain TextView memiliki deskripsi konten.

Fungsi

Pastikan aplikasi Anda menerapkan perilaku fungsional berikut.

Audio

ID Fitur Deskripsi
T-Audio_Playback_Start Audio_Playback_Start Memulai pemutaran audio. Pastikan bahwa dalam satu detik, aplikasi mulai memutar audio atau memberikan indikator visual bahwa data audio sedang disiapkan untuk diputar.
T-Audio_Focus_Request Audio_Focus_Request Memulai 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_Focus_Change Audio_Focus_Change Memulai 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_Playback_Background Audio_Playback_Background

Memulai pemutaran audio. Berinteraksi dengan aplikasi non-audio lain sebagai aplikasi latar depan. Aplikasi harus terus memutar audio di latar belakang dan harus menampilkan notifikasi di status bar. Pastikan Anda dapat mengelola pemutaran menggunakan kontrol yang ditampilkan di notifikasi.

Kunci layar perangkat. Aplikasi harus terus memutar audio di latar belakang dan harus menampilkan notifikasi di layar kunci. Pastikan Anda dapat mengelola pemutaran menggunakan kontrol yang ditampilkan di notifikasi.

T-Audio_Notification_Style Audio_Notification_Style Memulai 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 yang diberi gaya dengan MediaStyle. Lihat Berfungsi baik dengan kontrol media.
T-Audio_Playback_Resume Audio_Playback_Resume Memulai 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.

Video

ID Fitur Deskripsi
T-Video_PiP Video_PiP Aktifkan pemutaran video aplikasi dalam mode picture-in-picture.
T-Video_Encoding Video_Encoding Pastikan aplikasi mengenkode video menggunakan standar kompresi video HEVC.
T-Video_Playback_Background Video_Playback_Background Mulai pemutaran video. Minimalkan jendela aplikasi, buka aplikasi lain untuk memindahkan jendela aplikasi ke latar belakang. Di perangkat yang mendukung desktop, pindahkan jendela aplikasi dari desktop yang terlihat. Pastikan pemutaran video berlanjut tanpa gangguan dalam semua kasus.

Berbagi

ID Fitur Deskripsi
T-System_Sharesheet System_Sharesheet Buat intent dan mulai aktivitas dengan memanggil startActivity() dengan intent sebagai argumen. Lihat Menggunakan Android Sharesheet. Aplikasi Anda akan menampilkan Android Sharesheet.

Layanan latar belakang

ID Fitur Deskripsi
T-Background_Service_Optimization Background_Service_Optimization

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

Beralih ke aplikasi lain untuk mengirim aplikasi Anda ke latar belakang. Buka Setelan dan periksa apakah aplikasi Anda memiliki layanan yang berjalan saat berada di latar belakang. Di Android 4.0 dan yang lebih tinggi, buka layar Aplikasi dan temukan aplikasi di tab Berjalan.

Performa dan stabilitas

Verifikasi performa, stabilitas, dan visual yang sempurna.

Performa

ID Fitur Deskripsi
T-App_Startup_Time App_Startup_Time Mulai aplikasi Anda. Pastikan aplikasi dimuat dengan cepat atau memberikan indikator progres atau petunjuk serupa jika aplikasi memerlukan waktu lebih dari dua detik untuk dimuat.
T-Rendering_Performance Rendering_Performance Gunakan semua fitur utama aplikasi Anda. Pastikan aplikasi merender setidaknya 60 frame per detik. Gunakan opsi Profile HWUI rendering untuk membantu menguji aplikasi Anda.
T-StrictMode_Compliance StrictMode_Compliance

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

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

Stabilitas

ID Fitur Deskripsi
T-Stability_ANR Stability_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

ID Fitur Deskripsi
T-Android_Platform_Compatibility Android_Platform_Compatibility Jalankan aplikasi Anda di platform Android versi publik terbaru. Gunakan semua fitur utama. Pastikan aplikasi tidak error dan berjalan tanpa kehilangan fungsi inti.
T-Target_SDK_Version Target_SDK_Version,
Compile_SDK_Version
Tinjau file manifes Android dan konfigurasi build untuk memastikan aplikasi di-build dengan SDK terbaru yang tersedia (targetSdk dan compileSdk).
T-SDK_Maintenance SDK_Maintenance Tinjau file build.gradle aplikasi Anda untuk menemukan dependensi yang sudah tidak berlaku.
T-Non_SDK_Interfaces Non_SDK_Interfaces Gunakan alat lint Android Studio untuk mendeteksi penggunaan antarmuka non-SDK. Lihat Pembatasan antarmuka non-SDK untuk metode pengujian alternatif.
T-Production_Build_Quality Production_Build_Quality Tinjau file build.gradle aplikasi Anda untuk mengetahui library debug yang disertakan.

Baterai

ID Fitur Deskripsi
T-Power_Management Power_Management

Menggunakan 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 mode Istirahatkan dan Aplikasi Standby menggunakan perintah ADB (lihat Menguji dengan mode Istirahatkan dan Aplikasi Standby untuk mengetahui persyaratan dan panduannya).

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

Menguji perlindungan privasi dan keamanan yang diharapkan oleh pengguna.

Izin

ID Fitur Deskripsi
T-Minimize_Permissions Minimize_Permissions Tinjau semua izin yang diperlukan aplikasi Anda, dalam file manifes, saat runtime, dan di setelan aplikasi pada perangkat (Setelan > Info Aplikasi).
T-Sensitive_Permissions Sensitive_Permissions Gunakan fitur apa pun di aplikasi Anda yang meminta izin. Pastikan aplikasi meminta izin untuk mengakses data atau layanan sensitif hanya untuk kasus penggunaan aplikasi inti. Pastikan implikasi pemberian izin ke data dan layanan sensitif disampaikan dengan jelas kepada pengguna.
T-Runtime_Permissions Runtime_Permissions Gunakan semua fitur aplikasi Anda yang memerlukan izin. Pastikan izin diminta secara lambat, yaitu hanya saat fitur diakses, bukan selama aplikasi dimulai.
T-Permission_Rationale Permission_Rationale Gunakan semua fitur aplikasi Anda yang memerlukan izin. Pastikan aplikasi menjelaskan kepada pengguna alasan izin diperlukan.
T-Graceful_Degradation Graceful_Degradation Gunakan semua fitur aplikasi Anda yang memerlukan izin. Tolak atau cabut izin. Pastikan aplikasi menyediakan kasus penggunaan alternatif dan terus berfungsi.

Data dan file

ID Fitur Deskripsi
T-Sensitive_Data_Storage Sensitive_Data_Storage Tinjau semua data yang disimpan di penyimpanan internal. Memastikan bahwa data yang disimpan secara eksternal bukan data sensitif.
T-Sensitive_Data_Handling Sensitive_Data_Storage Tinjau cara penanganan dan pemrosesan data yang dimuat dari penyimpanan eksternal.
T-Sensitive_Data_Logging Sensitive_Data_Logging Gunakan semua fitur utama aplikasi sambil memantau log perangkat. Pastikan tidak ada informasi pribadi pengguna yang dicatat dalam log.
T-Hardware_IDs Hardware_IDs Gunakan semua fitur utama aplikasi. Pastikan aplikasi tidak menggunakan ID hardware apa pun seperti IMEI untuk tujuan identifikasi.

Pencadangan dan pemulihan data

ID Fitur Deskripsi
T-App_Data_Backup App_Data_Backup

Mengonfigurasi preferensi lokal, database, dan setelan aplikasi di perangkat utama. Melakukan pencadangan cloud atau transfer antar-perangkat (D2D) ke perangkat baru.

Luncurkan aplikasi di perangkat target setelah transfer dan pastikan preferensi lokal, status database, dan setelan pengguna dipulihkan secara akurat sesuai dengan aturan Pencadangan Otomatis Anda. Untuk mengetahui prosedur pengujian mendetail, lihat Menguji pencadangan dan pemulihan.

T-App_Logins_Restoration App_Logins_Restoration

Siapkan sesi login di perangkat utama menggunakan kunci sandi, sandi, atau Login dengan Google. Melakukan pencadangan cloud atau transfer antar-perangkat (D2D) ke perangkat baru.

Luncurkan aplikasi di perangkat target setelah transfer dan verifikasi bahwa autentikasi dipulihkan secara otomatis menggunakan Restore Credentials tanpa menampilkan layar login atau memerlukan pemulihan akun. Untuk mengetahui prosedur pengujian mendetail, lihat Menguji Kredensial Pemulihan.

Identitas

ID Fitur Deskripsi
T-Autofill_Hints Autofill_Hints Gunakan semua fitur aplikasi yang memerlukan input pengguna. Pastikan aplikasi memberikan petunjuk untuk mengisi otomatis kolom input untuk data seperti kredensial akun dan informasi sensitif lainnya.
T-Credential_Manager Credential_Manager Login ke aplikasi Anda. Pastikan aplikasi mengintegrasikan Credential Manager untuk Android guna memberikan pengalaman login yang menyatukan dukungan untuk kunci sandi, identitas gabungan, dan sandi.
T-Biometric_Authentication Biometric_Authentication 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

ID Fitur Deskripsi
T-Component_Export Component_Export 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-Component_Permissions Component_Permissions Tinjau semua izin yang diperlukan aplikasi Anda, dalam file manifes, saat runtime, dan di setelan aplikasi pada perangkat (Setelan > Info Aplikasi).
T-Component_Protection Component_Protection Tinjau semua penyedia konten yang ditentukan dalam file manifes Android. Pastikan setiap penyedia memiliki protectionLevel yang sesuai.

Jaringan

ID Fitur Deskripsi
T-Network_Security_Traffic Network_Security_Traffic Mendeklarasikan konfigurasi keamanan jaringan yang menonaktifkan traffic cleartext, lalu menguji aplikasi.
T-Network_Security_Configuration Network_Security_Configuration Tinjau konfigurasi keamanan jaringan aplikasi. Pastikan tidak ada pemeriksaan lint pada konfigurasi yang gagal.
T-Security_Provider_Initialization Security_Provider_Initialization Pastikan penyedia keamanan diinisialisasi saat aplikasi dimulai untuk layanan Google Play.

WebView

ID Fitur Deskripsi
T-WebView_Asset_Loader WebView_Asset_Loader Tinjau konfigurasi keamanan jaringan aplikasi. Pastikan tidak ada pemeriksaan lint pada konfigurasi yang gagal.
T-WebView_JavaScript WebView_JavaScript Untuk setiap WebView, buka halaman yang memerlukan JavaScript.
T-WebView_Navigation WebView_Asset_Loader,
WebView_JavaScript
Di setiap WebView, coba buka situs dan konten yang tidak dimuat langsung oleh aplikasi Anda.

Eksekusi

ID Fitur Deskripsi
T-App_Bundles App_Bundles Pastikan aplikasi menggunakan Android App Bundle dan tidak memuat kode secara dinamis dari luar APK aplikasi.

Kriptografi

ID Fitur Deskripsi
T-Cryptographic_Algorithms Cryptographic_Algorithms Pastikan aplikasi menggunakan algoritma kriptografi dan generator angka acak yang kuat dan disediakan platform. Pastikan juga bahwa aplikasi tidak menerapkan algoritma kustom.

Google Play

Pastikan aplikasi Anda siap untuk Google Play.

Kebijakan

ID Fitur Deskripsi
T-Play_Content_Policies Play_Content_Policies,
Play_Content_Rating,
Play_User_Reviews
Login ke Konsol Google Play untuk meninjau profil developer, deskripsi aplikasi, screenshot, gambar fitur, rating konten, dan masukan pengguna Anda.

Halaman detail aplikasi

ID Fitur Deskripsi
T-Play_Feature_Graphic Play_Feature_Graphic Download gambar fitur dan screenshot, lalu perkecil skalanya agar sesuai dengan ukuran layar perangkat dan faktor bentuk yang Anda targetkan.
T-Play_Graphic_Assets Play_Feature_Graphic,
Play_Device_References,
Play_Misleading_Content
Tinjau semua aset visual, media, teks, library kode, dan konten lainnya yang dikemas dalam download file ekspansi atau aplikasi.

Arsipkan

Versi sebelumnya dari pedoman kualitas aplikasi inti: