Android 6.0 memberi Anda kesempatan untuk memastikan aplikasi bekerja dengan platform versi berikutnya. Rilis ini mencakup sejumlah API dan perubahan perilaku yang dapat memengaruhi aplikasi Anda, seperti yang dijelaskan dalam Ringkasan API dan Perubahan Perilaku. Dalam menguji aplikasi dengan rilis ini, ada beberapa perubahan sistem spesifik yang harus Anda fokuskan untuk memastikan pengguna mendapatkan pengalaman yang baik.
Panduan ini menjelaskan apa dan bagaimana menguji fitur Android 6.0 dengan aplikasi Anda. Anda harus memprioritaskan pengujian fitur spesifik ini, karena potensi dampaknya yang tinggi terhadap perilaku aplikasi:
Izin Pengujian
Model Izin yang baru mengubah cara alokasi izin untuk aplikasi Anda oleh pengguna. Sebagai ganti memberikan semua izin selama prosedur penginstalan, aplikasi Anda harus meminta izin kepada pengguna secara individual saat runtime. Bagi pengguna, perilaku ini memberi kontrol yang lebih detail atas setiap aktivitas aplikasi, serta konteks yang lebih baik untuk memahami alasan aplikasi meminta izin tertentu. Pengguna dapat memberikan atau mencabut izin yang diberikan ke aplikasi satu per satu kapan saja. Fitur rilis ini kemungkinan besar berdampak pada perilaku aplikasi Anda dan dapat membuat beberapa fitur aplikasi tidak berfungsi, atau mungkin berfungsi dalam kondisi menurun.
Perubahan ini memengaruhi semua aplikasi yang berjalan di platform baru, bahkan aplikasi yang tidak menargetkan versi platform baru. Platform ini memberikan perilaku kompatibilitas terbatas untuk aplikasi lama, tetapi Anda harus mulai merencanakan migrasi aplikasi ke model izin baru sekarang juga, dengan tujuan memublikasikan versi terbaru aplikasi saat peluncuran platform secara resmi.
Tip pengujian
Gunakan tips pengujian berikut untuk membantu Anda merencanakan dan menjalankan pengujian aplikasi dengan perilaku izin yang baru.
- Identifikasi izin aplikasi Anda saat ini dan lokasi kode yang terkait.
- Uji alur pengguna pada semua layanan dan data yang dilindungi izin.
- Uji dengan berbagai kombinasi izin yang diberikan/dicabut.
- Gunakan alat
adb
untuk mengelola izin dari command line:- Cantumkan daftar izin dan status menurut grupnya:
adb shell pm list permissions -d -g
- Beri atau cabut satu atau beberapa izin menggunakan sintaksis berikut:
adb shell pm [grant|revoke] <permission.name> ...
- Cantumkan daftar izin dan status menurut grupnya:
- Analisis aplikasi Anda untuk mengidentifikasi layanan yang menggunakan izin.
Strategi pengujian
Perubahan izin memengaruhi struktur dan desain aplikasi Anda, begitu juga pengalaman pengguna dan alur yang Anda sediakan untuk pengguna. Anda harus menilai penggunaan izin aplikasi saat ini dan mulai merencanakan alur baru yang ingin ditawarkan. Rilis resmi platform ini menyediakan perilaku kompatibilitas, tetapi Anda harus merencanakan pembaruan aplikasi dan tidak bergantung pada perilaku ini.
Identifikasi izin yang benar-benar diperlukan dan digunakan aplikasi Anda, lalu temukan berbagai jalur
kode yang menggunakan layanan yang dilindungi izin. Anda dapat melakukannya melalui kombinasi
pengujian pada platform baru dan analisis kode. Dalam pengujian, Anda harus berfokus pada pemilihan
izin runtime dengan mengubah targetSdkVersion
aplikasi ke level API 23.
Uji dengan berbagai kombinasi izin yang dicabut dan ditambahkan, untuk menyoroti alur penggunaan yang bergantung pada izin. Jika dependensi tidak jelas atau logis, Anda harus mempertimbangkan pemfaktoran ulang atau kompartementalisasi alur tersebut untuk menghilangkan dependensi atau menjelaskan alasan izin diperlukan.
Untuk informasi selengkapnya tentang perilaku izin runtime, pengujian, dan praktik terbaik, lihat developer Bekerja dengan Izin Sistem.
Menguji Istirahatkan dan Aplikasi Siaga
Fitur penghematan daya Istirahatkan dan Aplikasi Standby membatasi jumlah pemrosesan latar belakang yang dapat dilakukan aplikasi Anda saat perangkat dalam keadaan tidak ada aktivitas atau saat aplikasi Anda sedang tidak fokus. Pembatasan yang dapat diberlakukan oleh sistem pada aplikasi mencakup akses jaringan terbatas atau tidak ada, tugas latar belakang yang ditangguhkan, Notifikasi yang ditangguhkan, permintaan bangun yang diabaikan, dan alarm. Untuk memastikan aplikasi Anda berperilaku dengan benar pada pengoptimalan penghematan daya ini, Anda harus menguji aplikasi dengan menyimulasikan status daya rendah ini.
Menguji aplikasi dengan mode Istirahatkan
Untuk menguji Istirahatkan dengan aplikasi Anda:
- Konfigurasikan perangkat hardware atau perangkat virtual dengan image sistem Android 7.0 (API level 24).
- Hubungkan perangkat ke mesin development lalu pasang aplikasi Anda.
- Jalankan aplikasi Anda dan biarkan aktif.
- Simulasikan perangkat yang sedang masuk ke dalam mode Istirahatkan dengan menjalankan perintah berikut:
$ adb shell dumpsys battery unplug $ adb shell dumpsys deviceidle step $ adb shell dumpsys deviceidle -h
- Amati perilaku aplikasi Anda saat perangkat diaktifkan kembali. Pastikan aplikasi pulih dengan baik saat perangkat keluar dari mode Istirahatkan.
Menguji aplikasi dengan Aplikasi Siaga
Untuk menguji mode Aplikasi Standby dengan aplikasi Anda:
- Konfigurasikan perangkat keras atau perangkat virtual dengan image sistem Android 7.0 (API level 24).
- Hubungkan perangkat ke mesin development lalu pasang aplikasi Anda.
- Jalankan aplikasi Anda dan biarkan aktif.
- Simulasikan aplikasi yang sedang masuk ke dalam mode siaga dengan menjalankan perintah berikut:
$ adb shell am broadcast -a android.os.action.DISCHARGING $ adb shell am set-idle <packageName> true
- Simulasikan membangunkan aplikasi Anda menggunakan perintah berikut:
$ adb shell am set-idle <packageName> false
- Amati perilaku aplikasi Anda saat dibangunkan. Pastikan aplikasi pulih dengan baik dari mode siaga. Secara khusus, Anda harus memeriksa apakah Notifikasi aplikasi dan tugas latar belakang tetap berjalan sebagaimana yang diharapkan.
Auto Backup For Apps dan Identifier Perangkat Spesifik
Jika aplikasi Anda mempertahankan ID khusus perangkat, seperti ID pendaftaran Google Cloud Messaging, dalam penyimpanan internal, pastikan untuk mengikuti praktik terbaik guna mengecualikan lokasi penyimpanan dari pencadangan otomatis, seperti yang dijelaskan dalam Mencadangkan Data Pengguna dengan Pencadangan Otomatis.