Register now for Android Dev Summit 2019!

Kualitas aplikasi inti

Pengguna Android mengharapkan aplikasi berkualitas tinggi. Kualitas aplikasi berpengaruh langsung terhadap keberhasilan aplikasi Anda untuk jangka panjang—dalam hal pemasangan, rating dan ulasan pengguna, keterlibatan, dan loyalitas pengguna.

Halaman ini membantu Anda menilai aspek inti kualitas dalam aplikasi Anda, melalui set kriteria kualitas dan uji terkait. Semua aplikasi Android harus memenuhi kriteria ini.

Sebelum mempublikasikan aplikasi Anda, ujilah berdasarkan kriteria ini untuk memastikannya berfungsi dengan baik pada banyak perangkat, memenuhi standar Android untuk navigasi dan desain, serta siap mendapatkan peluang promosi di Google Play store. Pengujian Anda akan melebihi apa yang digambarkan di sini—tujuan dokumen ini adalah menetapkan karakteristik kualitas mendasar yang harus ditunjukkan oleh semua aplikasi, sehingga bisa dimasukkan dalam rencana pengujian Anda.

Jika Anda membuat aplikasi untuk perangkat Android lainnya, seperti tablet atau TV, ada pedoman kualitas tambahan yang harus Anda pertimbangkan.

Desain visual dan interaksi pengguna

Kriteria ini memastikan bahwa aplikasi Anda menyediakan desain visual standar Android dan pola-pola interaksi yang sesuai, agar pengalaman pengguna konsisten dan intuitif.

Area ID Keterangan Pengujian
Desain standar UX-B1

Aplikasi mengikuti panduan Desain Android serta menggunakan ikon dan pola UI yang umum:

  1. Aplikasi tidak mendefinisikan kembali fungsi yang diharapkan pada ikon sistem (misalnya tombol Kembali).
  2. Aplikasi tidak mengganti ikon sistem dengan warna yang sama sekali berbeda jika memicu perilaku UI standar.
  3. Jika aplikasi menyediakan versi ikon sistem standar yang disesuaikan, maka ikon itu harus mirip sekali dengan ikon sistem dan memicu perilaku sistem standar.
  4. Aplikasi tidak mendefinisikan kembali atau menyalahi penggunaan pola UI Android, karena ikon atau perilaku itu bisa menyesatkan atau membingungkan pengguna.
CR-semua
Navigasi UX-N1

Aplikasi ini mendukung sistem standar Navigasi tombol Kembali dan tidak memanfaatkan permintaan "Tombol Kembali" pada layar.

CR-3
UX-N2

Semua dialog bisa ditutup menggunakan tombol Kembali.

CR-3
UX-N3 Menekan tombol Beranda di mana saja akan mengarahkan ke layar Utama perangkat. CR-1
Notifikasi UX-S1

Notifikasi mengikuti panduan Desain Android. Khususnya:

  1. Beberapa notifikasi ditumpuk jadi satu objek notifikasi, jika memungkinkan.
  2. Notifikasi bersifat menetap hanya jika berkaitan dengan kejadian yang berlangsung (misalnya pemutaran musik atau panggilan telepon).
  3. Notifikasi tidak boleh berisi iklan atau materi yang tidak ada kaitannya dengan fungsi inti aplikasi, kecuali jika pengguna memilihnya.
CR-11
UX-S2

Aplikasi hanya menggunakan notifikasi untuk:

  1. Menunjukkan adanya perubahan dalam konteks yang berkaitan dengan pengguna pribadi (misalnya pesan masuk), atau
  2. Mengekspos informasi/kontrol yang berkaitan dengan kejadian yang berlangsung (misalnya pemutaran musik atau panggilan telepon).
CR-11

Fungsionalitas

Kriteria ini memastikan bahwa aplikasi Anda memberikan perilaku fungsional yang diharapkan, dengan tingkat izin yang sesuai.

Area ID Keterangan Pengujian
Izin FN-P1 Aplikasi hanya meminta izin dengan benar-benar minimum sekadar untuk mendukung fungsionalitas inti. SC-4
FN-P2

Aplikasi tidak meminta izin untuk mengakses data sensitif (seperti Kontak atau Log Sistem) atau layanan yang bisa membebankan biaya pada pengguna (misalnya Telepon atau SMS), kecuali jika terkait dengan kemampuan inti dari aplikasi tersebut.

Lokasi penginstalan FN-L1

Aplikasi akan berfungsi normal jika diinstal pada kartu SD (jika didukung oleh aplikasi).

Direkomendasikan untuk mendukung pemasangan pada kartu SD bagi hampir semua aplikasi besar (10 MB+). Lihat Lokasi Penginstalan Aplikasi di panduan developer untuk informasi tentang tipe aplikasi yang harus mendukung penginstalan pada kartu SD.

SD-1
Audio FN-A1 Audio tidak diputar saat layar mati, kecuali jika ini adalah fitur inti (misalnya, aplikasi pemutar musik). CR-7
FN-A2 Audio tidak diputar di belakang layar kunci, kecuali jika ini adalah fitur inti. CR-8
FN-A3 Audio tidak diputar di layar utama, atau melalui aplikasi lain, kecuali jika ini adalah fitur inti. CR-1, CR-2
FN-A4 Audio dilanjutkan saat aplikasi kembali ke latar depan, atau menunjukkan kepada pengguna bahwa pemutaran dalam status dihentikan sementara. CR-1, CR-8
UI dan Grafis FN-U1

Aplikasi ini mendukung orientasi lanskap dan potret (jika memungkinkan).

Orientasi mengekspos banyak fitur dan tindakan yang sama serta mempertahankan paritas fungsional. Perubahan kecil dalam materi atau tampilan diperbolehkan.

CR-5
FN-U2

Aplikasi menggunakan seluruh layar pada kedua orientasi dan tidak berbentuk kotak untuk mengikuti perubahan orientasi.

Kotak kecil untuk menggantikan variasi kecil di geometri layar diperbolehkan.

CR-5
FN-U3

Aplikasi menangani dengan benar transisi cepat antar orientasi tampilan tanpa menimbulkan masalah.

CR-5
Status pengguna/aplikasi FN-S1

Aplikasi tidak boleh membiarkan layanan terus aktif saat aplikasi berada di latar belakang, kecuali jika terkait dengan kemampuan inti aplikasi tersebut.

Misalnya, aplikasi tidak boleh membiarkan layanan tetap aktif untuk mempertahankan koneksi jaringan bagi notifikasi, untuk mempertahankan koneksi Bluetooth, atau menjaga GPS tetap aktif.

CR-6
FN-S2

Aplikasi mempertahankan dan memulihkan status pengguna atau aplikasi dengan benar.

Aplikasi mempertahankan status pengguna atau aplikasi saat meninggalkan latar depan dan mencegah kehilangan data tanpa sengaja akibat navigasi mundur dan perubahan status lainnya. Saat kembali ke latar depan, aplikasi harus memulihkan status yang dipertahankan serta transaksi stateful penting yang tertunda, misalnya perubahan pada kolom yang bisa diedit, kemajuan game, menu, video, dan bagian lain pada aplikasi atau game.

  1. Bila aplikasi dilanjutkan dari pengalih aplikasi Terbaru, aplikasi akan mengembalikan pengguna ke status terakhir penggunaan aplikasi.
  2. Bila aplikasi dilanjutkan setelah perangkat bangun dari keadaan tidur (terkunci), aplikasi akan mengembalikan pengguna ke status terakhir penggunaan aplikasi.
  3. Bila aplikasi dibuka kembali dari Beranda atau All Apps, aplikasi akan memulihkan statusnya semirip mungkin dengan keadaan sebelumnya.
  4. Saat tombol Kembali ditekan, pengguna akan diberi opsi untuk menyimpan semua status aplikasi atau pengguna, yang akan hilang saat navigasi mundur.
CR-1, CR-3, CR-5

Kompatibilitas, performa, dan stabilitas

Kriteria ini memastikan bahwa aplikasi memberikan kompatibilitas, performa, stabilitas, dan daya respons yang diharapkan oleh pengguna.

Area ID Keterangan Pengujian
Stabilitas PS-S1 Aplikasi tidak bekerja, menutup sendiri, macet, atau berfungsi secara tidak normal pada perangkat target. CR-semua, SD-1, HA-1
Kinerja PS-P1 Aplikasi dimuat dengan cepat atau memberikan masukan kepada pengguna (indikator kemajuan atau tanda serupa) jika aplikasi perlu waktu lebih dari dua detik untuk dimuat. CR-semua, SD-1
PS-P2 Dengan StrictMode diaktifkan (lihat Pengujian StrictMode, di bawah ini), tidak ada kedipan merah (peringatan performa dari StrictMode) yang terlihat saat menjalankan aplikasi, termasuk selama memainkan game, animasi dan transisi UI, serta bagian lain dari aplikasi. PM-1
SDK PS-T1 Aplikasi ini berjalan pada platform Android versi publik terbaru tanpa crash atau kehilangan fungsi inti. CR-0
PS-T2 Aplikasi ini menargetkan SDK terbaru dengan menetapkan nilai targetSdk untuk meminimalkan penggunaan semua fallback kompatibilitas yang disediakan platform. SP-1
PS-T3 Aplikasi ini dibuat menggunakan SDK terbaru dengan menetapkan nilai compileSdk. SD-1
Baterai PS-B1 Aplikasi mendukung fitur pengelolaan daya di Android 6.0+ (Istirahatkan dan Aplikasi Siaga) dengan benar. Jika fungsionalitas inti terganggu oleh pengelolaan daya, hanya aplikasi yang memenuhi syarat yang dapat meminta pengecualian. BA-1
Media PS-M1 Pemutaran musik dan video berjalan mulus, suaranya tidak pecah, tersendat, atau cacat lainnya, selama penggunaan dan pemuatan aplikasi secara normal. CR-semua, SD-1, HA-1
Kualitas visual PS-V1

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

  1. Aplikasi ini menyediakan grafik berkualitas tinggi untuk semua ukuran layar dan form factor yang ditargetkan.
  2. Tidak terlihat adanya gerigi pada tepi menu, tombol, dan elemen UI lainnya.
CR-semua
PS-V2

Aplikasi menampilkan teks dan blok teks dengan cara yang wajar.

  1. Komposisi dapat diterima di semua form factor yang didukung.
  2. Tidak terlihat adanya huruf atau kata yang terpotong.
  3. Tidak terlihat adanya sambungan kata yang tertutupi dalam tombol atau ikon.
  4. Spasi yang memadai antara teks dan elemen sekitarnya.

Keamanan

Kriteria ini memastikan bahwa aplikasi menangani data pengguna dan informasi pribadi dengan aman.

Selain daftar periksa ini, aplikasi yang diterbitkan di Google Play Store juga harus mengikuti kebijakan Data Pengguna untuk melindungi privasi pengguna.

Area ID Keterangan Pengujian
Data SC-D1 Semua data pribadi disimpan di penyimpanan internal aplikasi. SC-1
SC-D2 Semua data dari penyimpanan eksternal diverifikasi sebelum diakses. SC-2
SC-D3

Semua intent dan siaran mengikuti praktik terbaik yang aman.

  1. Intent bersifat eksplisit jika aplikasi tujuan diketahui.
  2. Intent memberlakukan dan menggunakan izin yang sesuai.
  3. Intent yang berisi data dan payload diverifikasi sebelum digunakan.
SC-D4 Tidak ada data pengguna pribadi atau sensitif yang dicatat ke sistem atau log khusus aplikasi. SC-10
Komponen Aplikasi SC-P1

Yang diekspor hanya komponen aplikasi yang membagikan data dengan aplikasi lain, atau komponen yang harus dipanggil oleh aplikasi lain.

Ini termasuk aktivitas, layanan, penerima siaran, dan khususnya penyedia konten.

Selalu atur atribut android:exported secara eksplisit, terlepas dari apakah Anda mengekspor komponen aplikasi Anda atau tidak.

SC-5
SC-P2 Semua komponen aplikasi yang berbagi konten dengan aplikasi lain menetapkan (dan memberlakukan) izin yang sesuai. Ini termasuk aktivitas, layanan, penerima siaran, dan khususnya penyedia konten. SC-4
SC-P3 Semua penyedia konten yang berbagi konten antar aplikasi Anda menggunakan android:protectionLevel="signature". SC-3
Jaringan SC-N1 Semua lalu lintas jaringan dikirim melalui SSL. SC-9
SC-N2 Aplikasi menyatakan konfigurasi keamanan jaringan.
SC-N3 Jika aplikasi menggunakan layanan Google Play, penyedia keamanan akan diinisialisasi pada startup aplikasi.
Library SC-U1 Semua library, SDK, dan dependensi adalah yang terbaru.
WebView SC-W1 JavaScript dinonaktifkan di semua WebView (kecuali diperlukan). SC-6
SC-W2 WebView hanya memuat konten yang ada di daftar putih jika memungkinkan. SC-8
SC-W3

WebViews tidak menggunakan addJavaScriptInterface() dengan konten yang tidak tepercaya.

Di Android M dan di atasnya, saluran pesan HTML dapat digunakan sebagai gantinya.

SC-7
Eksekusi SC-E1 Aplikasi tidak secara dinamis memuat kode dari luar APK aplikasi.
Kriptografi SC-C1 Aplikasi menggunakan algoritme kriptografi kuat yang disediakan oleh platform dan tidak menerapkan algoritme khusus.
SC-C2 Aplikasi ini menggunakan generator angka acak aman secara tepat, khususnya untuk menginisialisasi kunci kriptografi.

Google Play

Kriteria ini memastikan bahwa aplikasi Anda siap untuk dipublikasikan di Google Play.

Area ID Keterangan Pengujian
Kebijakan GP-P1 Aplikasi secara ketat mematuhi ketentuan Kebijakan Materi Pengembang Google Play dan tidak menawarkan materi tidak pantas, tidak menggunakan kekayaan intelektual atau merek orang lain, dan seterusnya. GP-semua
GP-P2

Tingkat kedewasaan di aplikasi telah disetel dengan tepat, berdasarkan Panduan Rating Materi.

GP-1
GP-P3

Aplikasi mendukung fitur pengelolaan daya di Android 6.0+ (Istirahatkan dan Aplikasi Siaga) dengan benar. Jika fungsionalitas inti terganggu oleh pengelolaan daya, hanya aplikasi yang memenuhi syarat yang dapat meminta pengecualian. Lihat bagian Dukungan untuk kasus penggunaan lainnya dalam Istirahatkan dan Aplikasi Siaga.

GP-4
Halaman Detail Aplikasi GP-D1

Grafik fitur aplikasi mengikuti panduan yang diuraikan dalam postingan blog ini. Pastikan:

  1. Listingan aplikasi menyertakan grafik fitur berkualitas tinggi.
  2. Grafik fitur tidak berisi gambar perangkat, tangkapan layar, atau teks kecil yang tidak akan jelas bila diperkecil dan ditampilkan di ukuran layar terkecil yang menjadi target aplikasi Anda.
  3. Grafik fitur tidak menyerupai iklan.
GP-1, GP-2
GP-D2 Video dan screenshot aplikasi tidak menampilkan atau mengacu ke perangkat non-Android. GP-1
GP-D3 Video dan screenshot aplikasi tidak mencerminkan materi dan penggunaan aplikasi Anda dengan cara yang menyesatkan.
Dukungan Pengguna GP-X1 Bug yang dilaporkan pengguna umum dalam tab Reviews pada laman Google Play telah diatasi jika bisa diulangi dan terjadi di banyak perangkat berbeda. Jika bug terjadi di beberapa perangkat saja, Anda tetap harus mengatasinya jika perangkat itu sangat populer atau baru. GP-1

Menyiapkan lingkungan pengujian

Untuk menilai kualitas aplikasi, Anda perlu menyiapkan perangkat keras yang cocok atau lingkungan emulator untuk pengujian.

Lingkungan pengujian yang ideal di antaranya sejumlah kecil perangkat keras sungguhan yang mencerminkan faktor-bentuk dan kombinasi perangkat keras/perangkat lunak utama yang saat ini tersedia untuk konsumen. Anda tidak perlu menguji pada setiap perangkat yang ada di pasaran — melainkan harus fokus pada sejumlah kecil perangkat yang mewakilinya, meskipun hanya menggunakan satu atau dua perangkat untuk setiap faktor-bentuk.

Jika Anda tidak bisa mendapatkan perangkat keras sungguhan, Anda harus menyiapkan perangkat emulasi (AVD) untuk mewakili kombinasi faktor-bentuk dan perangkat keras/perangkat lunak paling umum.

Untuk melakukan pengujian lebih lanjut, Anda bisa menambahkan lebih banyak perangkat, faktor-bentuk, atau kombinasi perangkat keras/perangkat lunak baru pada lingkungan pengujian Anda. Anda juga bisa menambah jumlah atau kerumitan pengujian dan kriteria kualitas.

Prosedur pengujian

Prosedur pengujian ini membantu Anda menemukan berbagai tipe masalah kualitas dalam aplikasi Anda. Anda bisa mengombinasikan pengujian atau menyatukan beberapa kelompok pengujian ke dalam rencana pengujian sendiri. Lihat bagian di atas untuk referensi yang mengaitkan kriteria dengan prosedur uji ini.

Tipe Pengujian Keterangan
Paket Inti CR-0

Masuki semua bagian aplikasi — semua layar, dialog, setelan, dan semua alur pengguna.

  1. Jika aplikasi tersebut memungkinkan pengeditan atau pembuatan materi, memainkan game, atau pemutaran media, pastikan memasuki alur tersebut untuk membuat atau memodifikasi materi.
  2. Saat menjalankan aplikasi, masukkan perubahan sementara dalam konektivitas jaringan, fungsi baterai, ketersediaan GPS atau lokasi, pemuatan sistem, dan seterusnya.
CR-1 Dari setiap layar aplikasi, tekan tombol Beranda perangkat, kemudian buka kembali aplikasi dari layar Semua Aplikasi.
CR-2 Dari setiap layar aplikasi, beralihlah ke aplikasi lain yang sedang berjalan kemudian kembali ke aplikasi yang sedang diuji dengan menggunakan pengalih aplikasi Terbaru.
CR-3 Dari setiap layar aplikasi (dan dialog), tekan tombol Kembali.
CR-5 Dari setiap layar aplikasi, putar perangkat antara orientasi lanskap dan potret minimal tiga kali.
CR-6 Beralih ke aplikasi lain untuk mengirimkan aplikasi yang diuji ke latar belakang. Masuk ke setelan dan periksa apakah aplikasi yang diuji masih memiliki layanan yang sedang berjalan saat di latar belakang. Di Android 4.0 dan yang lebih tinggi, masuk ke layar Apps dan temukan aplikasi tersebut di tab "Sedang Berjalan".
CR-7 Tekan tombol daya untuk mengubah perangkat ke mode tidur, kemudian tekan lagi tombol daya untuk membangunkan layar.
CR-8 Setel agar perangkat dikunci bila tombol daya ditekan. Tekan tombol daya untuk menidurkan perangkat, kemudian tekan lagi tombol daya untuk membangunkan layar, kemudian buka kunci perangkat.
CR-9 Untuk perangkat yang memiliki keyboard geser, geserlah keyboard ke dalam dan ke luar setidaknya sekali. Untuk perangkat yang memiliki dok keyboard, pasang perangkat itu ke dok keyboard.
CR-10 Untuk perangkat yang memiliki port layar eksternal, hubungkan layar eksternal.
CR-11 Picu dan amati laci pemberitahuan untuk semua tipe pemberitahuan yang bisa ditampilkan aplikasi. Perluas notifikasi jika memungkinkan (Android 4.1 dan yang lebih tinggi), dan ketuk semua tindakan yang ditawarkan.
Instal di Kartu SD SD-1

Ulangi Paket Inti dengan aplikasi yang dipasang ke kartu SD perangkat (jika didukung oleh aplikasi).

Untuk memindahkan aplikasi ke kartu SD, Anda bisa menggunakan Setelan > Info Aplikasi > Pindahkan ke Kartu SD.

Akselerasi perangkat keras HA-1

Ulangi Paket Inti dengan akselerasi perangkat keras diaktifkan.

Untuk memaksa akselerasi perangkat keras yang telah diaktifkan (bila didukung oleh perangkat), tambahkan hardware-accelerated="true" ke <application> dalam manifes aplikasi lalu kompilasi ulang.

Performa dan Stabilitas SP-1 Tinjau file manifes Android dan buat konfigurasi untuk memastikan bahwa aplikasi dibuat menggunakan SDK terbaru yang tersedia (targetSdk dan compileSdk).
Pemantauan Performa PM-1

Ulangi Paket Inti dengan profil StrictMode diaktifkan seperti dijelaskan di bawah ini.

Perhatikan baik-baik pengumpulan sampah dan dampaknya pada pengalaman pengguna.

Baterai BA-1

Ulangi Paket Inti di siklus Istirahatkan dan Aplikasi Siaga.

Perhatikan baik-baik pada alarm, timer, notifikasi, sinkronisasi, dan seterusnya. Lihat Pengujian dengan Istirahatkan dan Aplikasi Siaga untuk persyaratan dan panduan.

Keamanan SC-1 Tinjau semua data yang disimpan dalam penyimpanan eksternal.
SC-2 Tinjau bagaimana data yang dimuat dari penyimpanan eksternal ditangani dan diproses.
SC-3 Tinjau semua penyedia konten yang ditentukan dalam file manifes Android untuk mengetahui protectionLevel.
SC-4 Tinjau semua izin yang diperlukan aplikasi Anda, dalam file manifes, saat runtime dan dalam setelan aplikasi (Settings > Info Aplikasi) pada perangkat.
SC-5 Tinjau semua komponen aplikasi yang ditentukan dalam file manifes Android untuk status ekspor yang sesuai. Properti ekspor harus ditetapkan secara eksplisit untuk semua komponen.
SC-6 Tinjau konfigurasi Keamanan Jaringan aplikasi, yang memastikan bahwa tidak ada pemeriksaan lint saat terjadi kegagalan konfigurasi.
SC-7 Untuk setiap WebView, navigasikan ke halaman yang membutuhkan JavaScript.
SC-8 Untuk setiap WebView, coba lihat situs dan konten yang berada di luar kendali Anda.
SC-9 Nyatakan Konfigurasi Keamanan Jaringan yang menonaktifkan lalu lintas teks, lalu jalankan aplikasi.
SC-10 Jalankan aplikasi dan lakukan semua fungsionalitas inti, sementara mengamati log perangkat. Tidak ada informasi pengguna pribadi yang harus dicatat.
Google Play GP-1 Login ke Google Play Developer Console untuk meninjau profil pengembang, deskripsi aplikasi, tangkapan layar, grafik fitur, peringkat konten, dan umpan balik pengguna Anda.
GP-2 Unduh gambar fitur dan tangkapan layar serta perkecil agar sesuai dengan ukuran layar perangkat dan faktor-bentuk yang Anda targetkan.
GP-3 Tinjau semua aset grafis, media, teks, library kode, dan materi lainnya yang dikemas dalam unduhan aplikasi atau unduhan file ekspansi.
GP-4 Tinjau bagian Dukungan untuk kasus penggunaan lainnya dalam Istirahatkan dan Aplikasi Siaga.
Pembayaran GP-4 Jelajahi semua layar aplikasi Anda dan masuki semua alur pembelian dalam aplikasi.

Pengujian dengan StrictMode

Untuk pengujian performa, kami merekomendasikan untuk mengaktifkan StrictMode dalam aplikasi Anda dan menggunakannya untuk menangkap operasi pada thread utama dan thread lain yang bisa memengaruhi performa, akses jaringan, baca/tulis file, dan seterusnya.

Anda bisa mempersiapkan kebijakan pemantauan per thread dengan menggunakan StrictMode.ThreadPolicy.Builder dan mengaktifkan semua pemantauan yang didukung dalam ThreadPolicy dengan menggunakan detectAll().

Pastikan mengaktifkan notifikasi visual dari pelanggaran kebijakan untuk ThreadPolicy dengan menggunakan penaltyFlashScreen().