Home

Android Auto Backup

· xedi

Android Auto Backup

Android menyediakan fitur backup otomatis untuk setiap aplikasi sejak Android 6.0 ( API Level 23 ) , yang rilis sejak akhir 2015. Fitur backup otomatis ini maksudnya : sistem Android akan melakukan online backup data dari sebuah aplikasi, tanpa sepengetahuan pengguna, dengan cara meng-upload data aplikasi ke Google Drive. Dari perspektif developer app, yang perlu dilakukan hanya menambahkan field android:allowBackup=“true”, tanpa perlu adanya code tambahan. Field di android manifest ini, tidaklah wajib ada saat diperkenalkan, namun secara default nilainya true .

Karena default-nya true, banyak developer mungkin tidak terlalu sadar bahwa data aplikasi mereka ikut masuk ke sistem backup Android. Aplikasi di-install, user memakai aplikasi, data tersimpan di local storage seperti SharedPreferences, database SQLite, file internal, atau konfigurasi lain. Lalu ketika aplikasi di-uninstall dan di-install lagi, sebagian data tersebut bisa muncul kembali secara otomatis.

Dari sisi pengguna, fitur ini sebenarnya sangat membantu. Misalnya pengguna ganti HP, install ulang aplikasi, atau melakukan reset perangkat, data aplikasi tidak langsung hilang begitu saja. Pengguna tidak perlu melakukan backup manual. Selama akun Google yang digunakan masih sama dan fitur backup di perangkat aktif, Android bisa mencoba mengembalikan data aplikasi tersebut saat aplikasi dipasang kembali.

Namun dari sisi developer, fitur ini kadang bisa membingungkan.

Misalnya saat kita sedang melakukan testing. Kita uninstall aplikasi, lalu install ulang dengan harapan aplikasi berada dalam kondisi benar-benar bersih seperti pengguna baru. Tapi ternyata data lama muncul kembali. Setting lama masih ada. Status login masih terbaca. Database lokal masih berisi data sebelumnya. Akibatnya, proses debugging menjadi tidak akurat karena kita merasa sedang mengetes fresh install, padahal sebenarnya Android sedang melakukan restore data dari backup sebelumnya.

Hal ini juga bisa mengganggu ketika aplikasi sudah memiliki sistem backup sendiri. Misalnya aplikasi menyediakan backup ke Firebase Storage, server pribadi, Dropbox, atau sistem cloud lain. Ketika Android Auto Backup juga aktif, maka ada dua mekanisme backup yang berjalan bersamaan. Dalam beberapa kasus, ini bisa menimbulkan konflik: data dari backup Android masuk lebih dulu, lalu sistem backup aplikasi mencoba melakukan restore versi lain. Hasil akhirnya bisa membuat state aplikasi menjadi tidak sesuai ekspektasi.

Secara default, Auto Backup dapat menyimpan sebagian besar data aplikasi, tetapi ada batasannya. Dokumentasi Android menyebutkan bahwa setiap aplikasi mendapat kuota backup sampai 25 MB per user, dan data disimpan di Google Drive milik user. Pada Android 9 ke atas, backup juga dapat dilindungi dengan enkripsi end-to-end menggunakan PIN, pattern, atau password perangkat. (Android Developers)

Untuk menonaktifkan fitur ini sepenuhnya, developer bisa menambahkan konfigurasi berikut pada AndroidManifest.xml:

<application
    android:allowBackup="false"
    ... >
</application>

Dengan konfigurasi ini, Android tidak akan melakukan backup otomatis terhadap data aplikasi. Ini cocok untuk aplikasi yang datanya sensitif, aplikasi yang sudah memiliki sistem backup sendiri, atau aplikasi yang memang ingin memastikan data lokal hilang ketika aplikasi dihapus.

Namun untuk aplikasi modern, terutama yang menargetkan Android 12 ke atas, konfigurasi backup menjadi sedikit lebih detail. Android menyediakan dataExtractionRules untuk menentukan data apa saja yang boleh ikut di-backup atau ditransfer ke perangkat baru. Untuk Android 11 ke bawah, konfigurasi serupa menggunakan fullBackupContent. Dokumentasi Android juga menyarankan penggunaan file rules, misalnya backup_rules.xml, untuk mengecualikan data tertentu dari backup. (Android Developers)

Contohnya:

<application
    android:allowBackup="true"
    android:fullBackupContent="@xml/backup_rules"
    android:dataExtractionRules="@xml/data_extraction_rules"
    ... >
</application>

Dengan pendekatan ini, developer tidak harus mematikan backup sepenuhnya. Kita bisa memilih data mana yang aman untuk di-backup dan data mana yang sebaiknya tidak ikut.

Misalnya, data yang cocok untuk di-backup:

- preferensi tampilan aplikasi
- pengaturan user
- catatan lokal yang memang penting bagi user
- konfigurasi ringan yang tidak sensitif

Sedangkan data yang sebaiknya tidak di-backup:

- token login
- session sementara
- cache
- file hasil download yang bisa dibuat ulang
- data sensitif
- data yang sudah tersinkronisasi dengan server

Untuk file yang benar-benar tidak ingin ikut backup, Android juga menyediakan folder khusus bernama no_backup. File yang disimpan di folder ini tidak akan masuk ke Auto Backup. Ini berguna untuk menyimpan data sementara atau identitas lokal yang tidak boleh ikut berpindah ke perangkat lain.

Dari pengalaman developer, hal penting yang perlu diingat adalah: uninstall aplikasi belum tentu berarti semua data aplikasi benar-benar hilang. Jika Auto Backup aktif, Android bisa mengembalikan sebagian data ketika aplikasi di-install ulang. Jadi kalau sedang testing fitur backup, login, onboarding, migrasi database, atau first-run experience, pastikan kondisi backup Android sudah dipahami.

Untuk testing fresh install, beberapa pilihan yang bisa dilakukan adalah:

1. Matikan allowBackup untuk build debug.
2. Hapus data aplikasi lewat Settings > Apps > Storage > Clear Data.
3. Gunakan adb untuk menghapus data aplikasi.
4. Matikan backup di perangkat test.
5. Gunakan package name berbeda untuk build testing.
6. Simpan data tertentu di folder no_backup.

Contoh konfigurasi yang sering dipakai untuk debug build adalah mematikan backup hanya pada variant debug, sementara release tetap mengizinkan backup. Dengan begitu, proses testing lebih bersih, tetapi pengguna release tetap mendapatkan manfaat backup otomatis.

Pada akhirnya, Android Auto Backup adalah fitur yang bagus, tetapi developer perlu sadar bahwa fitur ini aktif secara default. Untuk aplikasi sederhana, fitur ini bisa sangat membantu pengguna. Tapi untuk aplikasi yang punya data sensitif, sistem login, sinkronisasi cloud, atau sistem backup sendiri, fitur ini perlu dikontrol dengan hati-hati.

Backup yang baik bukan hanya soal “data tidak hilang”, tetapi juga soal kapan data harus dikembalikan, data mana yang aman dikembalikan, dan siapa yang bertanggung jawab terhadap proses restore tersebut. Android sudah menyediakan mekanismenya. Tugas developer adalah menentukan aturan yang paling aman dan paling sesuai untuk aplikasinya.