Android memiliki fokus untuk membantu pengguna memanfaatkan inovasi terbaru sekaligus menjadikan keamanan dan privasi sebagai prioritas utama.
Beberapa praktik terbaik yang dijelaskan di halaman ini juga muncul di tips praktis.
Perhatikan izin
Bangun kepercayaan pengguna dengan bersikap transparan dan memungkinkan mereka mengontrol
pengalamannya saat menggunakan aplikasi Anda.
Minta izin minimum yang dibutuhkan fitur Anda. Setiap kali Anda memperkenalkan perubahan besar pada aplikasi, tinjau izin yang diminta untuk memastikan bahwa fitur aplikasi Anda masih memerlukannya.
- Perlu diingat bahwa versi baru Android sering kali memperkenalkan cara untuk mengakses data dengan cara yang sensitif terhadap privasi tanpa memerlukan izin. Untuk mengetahui informasi selengkapnya, lihat Mengevaluasi apakah aplikasi Anda perlu mendeklarasikan izin.
- Jika aplikasi Anda didistribusikan di Google Play, Android vitals menunjukkan persentase pengguna yang menolak izin di aplikasi Anda. Gunakan data ini untuk menilai ulang desain fitur yang izinnya paling sering ditolak.
Ikuti alur yang direkomendasikan untuk menjelaskan mengapa fitur di aplikasi Anda memerlukan izin. Mintalah izin hanya jika diperlukan, bukan saat aplikasi dimulai sehingga kebutuhan izin Anda dapat dipahami dengan jelas oleh pengguna.
Perlu diingat bahwa pengguna atau sistem mungkin menolak izin beberapa kali. Android menghargai pilihan pengguna ini dengan mengabaikan permintaan izin dari aplikasi yang sama.
Lakukan degradasi halus apabila pengguna menolak atau mencabut izin. Misalnya, nonaktifkan fitur input suara aplikasi jika pengguna tidak memberikan izin mikrofon.
Saat mengupdate aplikasi, hapus akses aplikasi ke izin runtime yang tidak lagi diperlukan aplikasi Anda.
Jika Anda menggunakan SDK atau library yang mengakses data yang dilindungi oleh izin berbahaya, biasanya pengguna akan mengaitkannya ke aplikasi Anda. Pastikan Anda memahami izin yang diperlukan SDK beserta alasannya.
- Jika Anda menguji aplikasi di Android 11 (API level 30), gunakan audit akses data untuk menemukan tempat dalam kode Anda dan dalam kode library pihak ketiga tempat data pribadi diakses.
Minimalkan penggunaan lokasi
Jika aplikasi dapat mendukung kasus penggunaannya tanpa memerlukan data lokasi, jangan minta izin akses lokasi apa pun. Jika aplikasi Anda meminta izin untuk mengakses lokasi, bantu pengguna untuk membuat keputusan yang tepat.
- Jika aplikasi Anda perlu mengumpulkan informasi lokasi, jelaskan kepada pengguna tentang cara aplikasi menggunakan informasi ini untuk memberikan manfaat khusus kepada mereka.
- Jika aplikasi perlu menyambungkan perangkat pengguna dengan perangkat di sekitar melalui Bluetooth atau Wi-Fi, gunakan pengelola perangkat pendamping, yang tidak memerlukan izin akses lokasi.
- Tinjau tingkat perincian lokasi yang dibutuhkan aplikasi Anda. Akses lokasi sementara cukup untuk memenuhi sebagian besar kasus penggunaan terkait lokasi.
- Akses data lokasi saat aplikasi Anda sedang ditampilkan oleh pengguna. Dengan demikian, pengguna dapat lebih memahami alasan aplikasi Anda meminta informasi lokasi.
- Jika aplikasi Anda memerlukan lokasi latar belakang, seperti saat menerapkan pembatasan wilayah, pastikan bahwa fungsi tersebut penting bagi fungsi inti aplikasi, dan dilakukan dengan cara yang jelas bagi pengguna. Pelajari lebih lanjut pertimbangan untuk menggunakan lokasi latar belakang.
- Di Android 10 (API level 29) dan yang lebih baru, pengguna dapat membatasi akses lokasi aplikasi saat aplikasi sedang digunakan. Rancang aplikasi agar dapat melakukan degradasi halus ketika tidak memiliki akses sepanjang waktu ke lokasi.
- Jika aplikasi perlu mempertahankan akses lokasi untuk tugas yang dimulai pengguna dan masih berlangsung
setelah mereka menutup UI aplikasi, mulai layanan
latar depan sebelum aplikasi Anda beralih ke
latar belakang. Anda dapat melakukannya di salah satu callback siklus proses Android, seperti
onPause()
. - Jangan mulai layanan latar depan dari latar belakang. Pertimbangkan untuk meluncurkan aplikasi dari notifikasi, lalu eksekusi kode lokasi saat UI aplikasi Anda sedang ditampilkan.
Tangani data dengan aman
Catatan: Baca selengkapnya tentang data yang dianggap sebagai data sensitif di halaman artikel Data Pengguna di Pusat Kebijakan Developer Google Play.
Selalu bersikap transparan dan waspada saat menangani data sensitif.
- Beri tahu pengguna kapan dan mengapa aplikasi Anda mengumpulkan, menggunakan, atau berbagi data sensitif.
- Gunakan model penyimpanan terbatas jika memungkinkan. Pelajari cara bermigrasi ke penyimpanan terbatas berdasarkan kasus penggunaan aplikasi.
- Selalu gunakan koneksi jaringan yang aman. Untuk data aplikasi dalam penyimpanan, gunakan enkripsi kredensial bawaan Android. Untuk data dalam pengiriman, gunakan TLS, penerus SSL, untuk semua transmisi data terlepas dari sensitivitasnya.
- Tempatkan file yang berisi data sensitif di direktori pribadi aplikasi dalam penyimpanan internal.
- Di Android 10 (API level 29), hanya simpan file yang relevan dengan aplikasi Anda di direktori khusus aplikasi di penyimpanan eksternal. Pelajari penyimpanan terbatas lebih lanjut.
- Jika perlu meneruskan data sensitif ke aplikasi lain, gunakan intent eksplisit. Izinkan akses data satu kali untuk lebih membatasi akses aplikasi lain.
- Meskipun aplikasi berada di latar depan, tunjukkan indikasi real-time bahwa Anda sedang merekam dari mikrofon atau kamera. Perhatikan bahwa Android 9 (API level 28) dan yang lebih baru tidak mengizinkan akses mikrofon atau kamera saat aplikasi berada di latar belakang.
- Jangan sertakan data sensitif dalam pesan logcat atau file log aplikasi Anda. Pelajari cara menangani data pengguna lebih lanjut.
Jetpack menawarkan beberapa library untuk meningkatkan keamanan data aplikasi Anda. Pelajari lebih lanjut dalam panduan tentang penggunaan library Keamanan Jetpack dan library Preferensi Jetpack.
Gunakan ID yang dapat direset
Hargai privasi pengguna dan gunakan ID yang dapat direset. Lihat
Praktik terbaik untuk ID unik
untuk informasi selengkapnya.
- Jangan mengakses IMEI atau nomor seri perangkat karena ID ini bersifat
persisten. Jika Anda mencoba mengakses ID ini di aplikasi yang menargetkan
Android 10 (API level 29) atau yang lebih baru,
SecurityException
akan terjadi. - Hanya gunakan ID Iklan untuk profiling pengguna atau kasus penggunaan iklan. Untuk aplikasi di Google Play, langkah ini bersifat wajib. Selalu hargai preferensi pengguna terkait pelacakan iklan untuk personalisasi.
- Untuk sebagian besar kasus penggunaan non-iklan, gunakan ID unik secara global (GUID) yang disimpan secara pribadi, yang dibatasi menurut aplikasi.
- Gunakan ID Android setelan aman (SSAID) untuk berbagi status antar-aplikasi yang Anda miliki tanpa mengharuskan pengguna login ke suatu akun. Pelajari cara melacak preferensi pengguna yang logout antara aplikasi lebih lanjut.