Cara kerja pencadangan dan pemulihan di aplikasi yang berjalan dan menargetkan Android 12 mengalami perubahan. Ada dua bentuk pencadangan dan pemulihan Android:
- Pencadangan cloud: Data pengguna disimpan di Google Drive pengguna agar dapat dipulihkan di perangkat tersebut atau di perangkat baru.
- Transfer perangkat ke perangkat (D2D): Data pengguna dikirim langsung ke perangkat baru pengguna dari perangkat lama mereka, seperti dengan menggunakan kabel.
Untuk informasi selengkapnya tentang cara pencadangan dan pemulihan data, lihat Mencadangkan data pengguna dengan Pencadangan Otomatis dan Mencadangkan pasangan nilai kunci dengan Android Backup Service.
Perubahan fungsi transfer D2D
Untuk aplikasi yang berjalan di dan menargetkan Android 12 dan versi lebih tinggi:
Menentukan bahwa
android:allowBackup="false"
akan menonaktifkan pencadangan ke Google Drive, tetapi tidak menonaktifkan transfer D2D untuk aplikasi.Menentukan aturan yang disertakan dan dikecualikan dengan mekanisme konfigurasi XML tidak lagi memengaruhi transfer D2D, meskipun masih memengaruhi pencadangan Google Drive. Untuk menentukan aturan transfer D2D, Anda harus menggunakan konfigurasi baru yang dibahas di bagian berikutnya.
Format baru yang disertakan dan dikecualikan
Aplikasi yang berjalan di dan menargetkan Android 12 dan versi yang lebih tinggi menggunakan format berbeda untuk konfigurasi XML. Format ini menjadi pembeda antara pencadangan Google Drive dan transfer D2D dengan mengharuskan Anda menentukan aturan yang disertakan dan dikecualikan secara terpisah untuk pencadangan cloud dan untuk transfer D2D.
Secara opsional, Anda juga dapat menggunakannya untuk menentukan aturan pencadangan yang dalam hal ini mengabaikan konfigurasi lama.
Perubahan format XML
Berikut adalah format yang digunakan untuk konfigurasi pencadangan dan pemulihan di Android 11 dan yang lebih lama:
<full-backup-content> <include domain=["file" | "database" | "sharedpref" | "external" | "root"] path="string" requireFlags=["clientSideEncryption" | "deviceToDeviceTransfer"] /> <exclude domain=["file" | "database" | "sharedpref" | "external" | "root"] path="string" /> </full-backup-content>
Berikut ini menunjukkan perubahan dalam format yang dicetak tebal.
<data-extraction-rules> <cloud-backup [disableIfNoEncryptionCapabilities="true|false"]> ... <include domain=["file" | "database" | "sharedpref" | "external" | "root"] path="string"/> ... <exclude domain=["file" | "database" | "sharedpref" | "external" | "root"] path="string"/> ... </cloud-backup> <device-transfer> ... <include domain=["file" | "database" | "sharedpref" | "external" | "root"] path="string"/> ... <exclude domain=["file" | "database" | "sharedpref" | "external" | "root"] path="string"/> ... </device-transfer> </data-extraction-rules>
Setiap bagian konfigurasi (<cloud-backup>
, <device-transfer>
)
berisi aturan yang hanya berlaku untuk jenis transfer tertentu. Hal itu memungkinkan
Anda, misalnya, mengecualikan file atau direktori dari pencadangan Google Drive sembari
masih mentransfernya selama transfer D2D. Hal ini mungkin berguna jika Anda memiliki file
berukuran terlalu besar untuk dicadangkan ke cloud, tetapi dapat
ditransfer antar perangkat tanpa masalah.
Jika tidak ada aturan untuk mode pencadangan tertentu, seperti jika
bagian <device-transfer>
tidak ada, mode tersebut akan diaktifkan sepenuhnya untuk
semua konten kecuali untuk direktori no-backup
dan cache
, seperti yang dijelaskan di File
yang dicadangkan.
Aplikasi Anda dapat menetapkan flag disableIfNoEncryptionCapabilities
di
bagian <cloud-backup>
untuk memastikan pencadangan hanya terjadi jika dapat
dienkripsi, seperti saat pengguna memiliki layar kunci. Menyetel batasan ini
akan mencegah cadangan dikirim ke cloud jika perangkat pengguna tidak dapat mendukung
enkripsi. Akan tetapi, karena transfer D2D tidak dikirim ke server, pencadangan akan
terus berjalan bahkan pada perangkat yang tidak mendukung enkripsi.
Flag manifes untuk aplikasi
Arahkan aplikasi ke konfigurasi XML baru menggunakan
atribut android:dataExtractionRules
di file manifes. Saat Anda mengarahkan kursor ke konfigurasi XML baru,
atribut android:fullBackupContent
yang mengarah ke konfigurasi lama
akan diabaikan. Contoh kode berikut menunjukkan entri file manifes yang baru:
<application ... <!-- The below attribute is ignored. --> android:fullBackupContent="old_config.xml" <!-- You can point to your new configuration using the new dataExtractionRules attribute . --> android:dataExtractionRules="new_config.xml" ...> </application>