Menguji Pencadangan
| Update Terbaru | Rilis Stabil | Kandidat Rilis | Rilis Beta | Rilis Alfa |
|---|---|---|---|---|
| 21 Oktober 2022 | - | - | - | 1.0.0-alpha03 |
Mendeklarasikan dependensi
Untuk menambahkan dependensi pada pencadangan pengujian, Anda harus menambahkan repositori Maven Google ke project Anda. Baca repositori Maven Google untuk mengetahui informasi selengkapnya.
Tambahkan dependensi untuk artefak yang diperlukan dalam file build.gradle bagi aplikasi atau modul Anda:
Groovy
dependencies { implementation "androidx.test.backup:backup:1.0.0-alpha03" implementation "androidx.test.backup:backup-host:1.0.0-alpha03" }
Kotlin
dependencies { implementation("androidx.test.backup:backup:1.0.0-alpha03") implementation("androidx.test.backup:backup-host:1.0.0-alpha03") }
Untuk informasi dependensi selengkapnya, lihat Menambahkan dependensi build.
Masukan
Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau mempunyai masukan untuk meningkatkan kualitas library ini. Harap periksa masalah yang sudah diketahui dalam library ini sebelum membuat laporan baru. Anda dapat memberikan suara untuk masalah yang sudah diketahui dengan mengklik tombol bintang.
Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.
Pengujian Pemulihan Cadangan Otomatis Versi 1.0
Versi 1.0.0-alpha03
21 Oktober 2022
androidx.test.backup:backup:1.0.0-alpha03 dan androidx.test.backup:backup-host:1.0.0-alpha03 dirilis. Versi 1.0.0-alpha03 berisi commit ini.
Fitur Baru
- Penyiapan pengujian yang disederhanakan di suite pengujian cadangan Plugin Android Gradle dengan otomatis menargetkan aplikasi yang diuji saat
@BackupRestoreConfigdihilangkan. (I1452b) - Menambahkan dukungan untuk mewarisi setelan
@BackupRestoreConfigdan@Isolationdari class pengujian luar di class pengujian@Nested. (Ia45a8) - Menambahkan dukungan untuk memasukkan
BackupRestoreControllerlangsung ke konstruktor class pengujian dan metode penyiapan@BeforeAll. (I6e822, Ia2ebd) - Menambahkan dukungan untuk menyematkan perangkat tertentu ke peran
@Devicedalam pengujian multiperangkat menggunakan propertiandroidx.test.backup.device.serial.{role}. (I484be)
Perbaikan Bug
- Memperbaiki
performBackupdanperformRestoresehingga pengujian langsung gagal, bukan lulus secara otomatis saat pencadangan dilewati atau kosong, saat layanan pencadangan mengalami error, atau saat arsip pencadangan lokal milik aplikasi atau perangkat lain. (I7673d, I478ad, I0b989, I9a0ea, I79567) - Memperbaiki pengujian yang berhenti tanpa batas waktu di perangkat yang tidak responsif dengan menerapkan waktu tunggu di seluruh langkah pencadangan, pemulihan, tindakan perangkat, dan pembersihan. (I10661, I9cdee, If5f92)
- Memperbaiki
performBackupyang menghapus file cadangan yang dihasilkan saat pengujian selesai, sehingga arsip cadangan kini disimpan di disk setelah pengujian selesai. (I8c13f) - Memperbaiki helper pengujian database (
StorageDomain.Database) untuk menyimpan dan memeriksa nilainulldengan benar, menimpa baris yang ada saat melakukan seeding data pengujian, mendeteksi konfigurasi tabel yang tidak valid lebih awal, dan gagal saat file database yang diharapkan tidak ada. (Ib4767, Iddf87, I19c43, Ie8d78, I8bc18) - Memperbaiki helper pengujian
SharedPreferencesuntuk mempertahankan jenis data secara akurat dan mendukung pemeriksaan preferensi yang dihapus ataunull. (I8456d9, I1d0fc2) - Memperbaiki
runOnDeviceuntuk menangani payload pengujian besar tanpa error, menjeda debugger saatwaitForDebuggerdiaktifkan, menemukan runner pengujian dalam nama paket APK pengujian kustom, dan memblokir flag runner internal agar tidak bocor ke tindakan perangkat. (Ic73bd, Iede17, I1d172, I84c15) - Meningkatkan stabilitas dan kecepatan pengujian dengan membagikan satu koneksi ADB di seluruh pengujian, menginstal APK hanya sekali per perangkat, dan gagal dengan jelas saat APK gagal diinstal atau diluncurkan. (I62717, Iabf75, I14e6f, I4c3da5, I54077, Iee84e)
- Memperbaiki
fetchDeviceLogsyang menulis file log kosong, dan menghentikan uji coba yang dibatalkan agar tidak menghasilkan laporan kegagalan palsu. (I736c4, I7b199, Ia847e) - Membersihkan dependensi
backup-hostsehinggaadblibtersedia langsung untuk pemanggil dan logging internal atau library pengujian tidak lagi bertabrakan dengan classpath project Anda. (I6e822, Iba9a4, Ib4ec9)
Versi 1.0.0-alpha02
7 Oktober 2026
androidx.test.backup:backup:1.0.0-alpha02 dan androidx.test.backup:backup-host:1.0.0-alpha02 dirilis. Versi 1.0.0-alpha02 berisi commit ini.
Perubahan API
- Kunci payload kini didokumentasikan sebagai
BackupActionInputKeys,BackupActionOutputKeys, danBackupActionValues, menggantikan konstanta diBackupDeviceAction. Menambahkan factoryBackupDeviceActionResult.success()danfailure(), beserta pengaksesisSuccessdanerrorMessage. (Ibd493)
Perbaikan Bug
BackupRestoreController.clearAppDatakini menampilkanIOExceptionsaatpm cleartidak melaporkan keberhasilan, bukan melanjutkan secara otomatis. (I61556)- Argumen shell yang diteruskan ke
BackupRestoreControlleruntuk eksekusi perangkat kini di-escape dengan benar untuk mencegah injeksi perintah dan memastikan jalur file dengan spasi ditangani dengan aman. - Memperkuat tindakan penyimpanan yang dipaketkan (
PopulateStorageActiondanAssertStorageAction) terhadap penerusan verifikasi otomatis untuk memastikan pengujian benar-benar gagal saat data yang diharapkan tidak ada. - Orchestrator pengujian sisi host kini mematuhi kegagalan tindakan in-band yang dilaporkan oleh perangkat dengan benar, bukan mengabaikannya.
- Memperbaiki masalah pengisian baris database dengan mengenkode persen format kabel
'values'database, sehingga mencegah kerusakan data selama pengiriman payload. - Mengatasi kerentanan keamanan di
androidx.test.backup:backup-hostdengan mengupgrade dependensi.
Versi 1.0.0-alpha01
23 September 2026
androidx.test.backup:backup:1.0.0-alpha01 dan androidx.test.backup:backup-host:1.0.0-alpha01 dirilis. Versi 1.0.0-alpha01 berisi commit ini.
Fitur Rilis Awal
Rilis awal framework Automated Backup and Restore Testing untuk Android. Library ini menyediakan cara otomatis dan menyeluruh untuk menguji apakah data pengguna dan kredensial akun dapat bertahan dengan aman saat upgrade perangkat dan pemulihan cloud. Alih-alih mengandalkan pengujian manual, developer dapat mengotomatiskan siklus proses penuh: melakukan seeding status aplikasi, mencadangkannya sesuai dengan aturan yang dikonfigurasi (dataExtractionRules dan fullBackupContent), menghapus total aplikasi, dan memverifikasi integritas data pasca-pemulihan. Framework ini menyediakan dua artefak: androidx.test.backup:backup-host (yang berjalan di komputer host untuk mengatur pencadangan, penghapusan total, dan pemulihan yang diteruskan melalui ADB) dan androidx.test.backup:backup (yang berjalan di perangkat untuk mengisi dan memverifikasi data aplikasi).
BackupRestoreController: Antarmuka utama sisi host yang digunakan untuk mengontrol alur kerja pencadangan, penghapusan total, pemulihan, dan verifikasi untuk perangkat pengujian. Menyediakan pipeline praktis sepertirunBackupRestoreFlowserta operasi yang mendetail (performBackup,performRestore,clearAppData,fetchDeviceLogs, danrunOnDevice). Mendukung coroutine Kotlin dan eksekusi asinkronListenableFutureJava.BackupRestoreExtension: Ekstensi JUnit 5 Jupiter yang me-resolve dan memasukkan parameterBackupRestoreControllerke dalam metode pengujian. Mengelola sesi ADB mandiri atau bersama, otomatis menginstal APK yang diuji dan APK pengujian, menutup layar kunci dan pengaman tombol perangkat untuk membuka kunci penyimpanan yang dilindungi kredensial, serta menerapkan isolasi sandbox pengujian.BackupRestoreTestRunner: Runner pengujianInstrumentationdi perangkat yang dijalankan di dalam sandbox aplikasi. Menyelesaikan dan menjalankan implementasiBackupDeviceActionyang diminta secara dinamis yang dikirim oleh orchestrator host dan mengalihkan payload hasil JSON yang besar dengan aman ke disk untuk mencegah batas buffer transaksi Binder.BackupDeviceAction: Kontrak untuk tindakan kustom di sisi perangkat yang dijalankan langsung dalam sandbox aplikasi target selama penyemaian data (PHASE_POPULATE) atau validasi pasca-pemulihan (PHASE_VERIFY).StorageDomain: Deskriptor yang diketik dengan kuat (Preference,Database,TextFile, danBinaryFile) yang digunakan bersama helper tindakan bawaan (PopulateStorageActiondanAssertStorageAction) untuk otomatis menyisipkan dan menegaskanSharedPreferences, database SQLite, dan file mentah di seluruh konteks penyimpanan Credential Protected (CE) dan Device Protected (DE) tanpa boilerplate.BackupTransportMode: Menentukan topologi transpor pencadangan platform yang akan disimulasikan selama pengujian, termasukDEVICE_TO_DEVICE(migrasi perangkat fisik melalui USB atau Wi-Fi Langsung),CLOUD_ENCRYPTED(pencadangan cloud dengan enkripsi end-to-end sisi klien),CLOUD_UNENCRYPTED(pencadangan cloud standar), danLOCAL(pencadangan sistem file lokal offline).@Devicedan@Isolation: Menghosting anotasi untuk memilih perangkat terhubung yang cocok dengan serial, level API, atau peran multiperangkat tertentu, dan mengonfigurasi kebijakan isolasi sandbox di antara pengujian (IsolationPolicy.AUTOMATICvs.IsolationPolicy.MANUAL).