Test Yedekleme

  
Kullanıcı verilerinin ve hesap giriş bilgilerinin, cihaz yükseltme ve buluttan geri yükleme işlemlerinden sonra güvenli bir şekilde korunduğunu doğrulamak için otomatik test çerçevesi.
Son Güncelleme Kararlı Sürüm Sürüm Adayı Beta Sürümü Alfa Sürümü
21 Ekim 2026 - - - 1.0.0-alpha03

Bağımlılıkları bildirme

Test yedeklemesine bağımlılık eklemek için projenize Google Maven deposunu eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposu sayfasını okuyun.

Uygulamanız veya modülünüz için build.gradle dosyasında ihtiyacınız olan yapıların bağımlılıklarını ekleyin:

Eski

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")
}

Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.

Geri bildirim

Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir sorun için oy verebilirsiniz.

Yeni sorun oluşturma

Daha fazla bilgi için Issue Tracker belgelerine bakın.

Automated Backup Restore Test Sürüm 1.0

Sürüm 1.0.0-alpha03

21 Ekim 2026

androidx.test.backup:backup:1.0.0-alpha03 ve androidx.test.backup:backup-host:1.0.0-alpha03 yayınlandı. 1.0.0-alpha03 sürümü bu kayıtları içerir.

Yeni özellikler

  • @BackupRestoreConfig atlandığında test edilen uygulamayı otomatik olarak hedefleyerek Android Gradle eklentisi yedek test paketlerinde basitleştirilmiş test kurulumu. (I1452b)
  • @Nested test sınıflarında, @BackupRestoreConfig ve @Isolation ayarlarının dış test sınıfından devralınması için destek eklendi. (Ia45a8)
  • BackupRestoreController öğesini doğrudan test sınıfı oluşturucularına ve @BeforeAll kurulum yöntemlerine ekleme desteği eklendi. (I6e822, Ia2ebd)
  • androidx.test.backup.device.serial.{role} özelliği kullanılarak çeşitli cihaz testlerinde belirli bir cihazın @Device rolüne sabitlenmesi için destek eklendi. (I484be)

Hata Düzeltmeleri

  • Yedekleme atlandığında veya boş olduğunda, yedekleme hizmeti hata verdiğinde ya da yerel yedekleme arşivi farklı bir uygulamaya veya cihaza ait olduğunda testlerin sessizce geçmek yerine hemen başarısız olması için performBackup ve performRestore düzeltildi. (I7673d, I478ad, I0b989, I9a0ea, I79567)
  • Yedekleme, geri yükleme, cihaz işlemleri ve temizleme adımlarında zaman aşımı uygulayarak yanıt vermeyen cihazlarda testlerin süresiz olarak askıda kalması sorunu düzeltildi. (I10661, I9cdee, If5f92)
  • Test çalıştırması tamamlandığında oluşturulan yedek dosyalarını silen performBackup düzeltildi. Böylece, testlerden çıkıldıktan sonra yedek arşivleri artık diskte tutuluyor. (I8c13f)
  • Veritabanı test yardımcıları (StorageDomain.Database), null değerlerini doğru şekilde depolayıp kontrol edecek, test verilerini eklerken mevcut satırların üzerine yazacak, geçersiz tablo yapılandırmalarını erkenden yakalayacak ve beklenen bir veritabanı dosyası eksik olduğunda hata verecek şekilde düzeltildi. (Ib4767, Iddf87, I19c43, Ie8d78, I8bc18)
  • Veri türlerini doğru şekilde korumak ve null veya kaldırılan tercihlerin kontrol edilmesini desteklemek için SharedPreferences test yardımcıları düzeltildi. (I8456d9, I1d0fc2)
  • runOnDevice, büyük test yüklerini kilitlenmeden işleyecek, waitForDebugger etkinleştirildiğinde hata ayıklayıcı için duraklatılacak, özel test APK paketi adlarında test çalıştırıcıyı bulacak ve dahili çalıştırıcı işaretlerinin cihaz işlemlerine sızmasını engelleyecek şekilde düzeltildi. (Ic73bd, Iede17, I1d172, I84c15)
  • Test çalıştırması boyunca tek bir ADB bağlantısı paylaşarak, APK'ları cihaz başına yalnızca bir kez yükleyerek ve bir APK yüklenemediğinde veya başlatılamadığında net bir şekilde başarısız olarak test kararlılığı ve hızı iyileştirildi. (I62717, Iabf75, I14e6f, I4c3da5, I54077, Iee84e)
  • fetchDeviceLogs uygulamasının boş günlük dosyaları yazmasıyla ilgili sorun düzeltildi ve iptal edilen test çalıştırmalarının yanlış hata raporları oluşturması engellendi. (I736c4, I7b199, Ia847e)
  • backup-host bağımlılıkları temizlendi. Böylece adblib, doğrudan arayanlar tarafından kullanılabilir ve dahili günlük kaydı veya test kitaplıkları artık projenizin sınıf yoluyla çakışmaz. (I6e822, Iba9a4, Ib4ec9)

Sürüm 1.0.0-alpha02

7 Ekim 2026

androidx.test.backup:backup:1.0.0-alpha02 ve androidx.test.backup:backup-host:1.0.0-alpha02 yayınlandı. 1.0.0-alpha02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Yük anahtarları artık BackupDeviceAction üzerindeki sabitlerin yerine BackupActionInputKeys, BackupActionOutputKeys ve BackupActionValues olarak belgeleniyor. BackupDeviceActionResult.success() ve failure() fabrikaları ile isSuccess ve errorMessage erişimcileri eklendi. (Ibd493)

Hata Düzeltmeleri

  • BackupRestoreController.clearAppData, pm clear başarılı bir şekilde raporlanmadığında sessizce devam etmek yerine artık IOException hatası veriyor. (I61556)
  • Cihazda yürütme için BackupRestoreController aracına iletilen kabuk bağımsız değişkenleri, artık komut yerleştirmeyi önlemek ve boşluk içeren dosya yollarının güvenli bir şekilde işlenmesini sağlamak için doğru şekilde kodlanıyor.
  • Beklenen veriler eksik olduğunda testlerin kesinlikle başarısız olmasını sağlamak için paketlenmiş depolama işlemleri (PopulateStorageAction ve AssertStorageAction), sessiz doğrulama geçişlerine karşı güçlendirildi.
  • Ana makine tarafındaki test düzenleyiciler artık cihaz tarafından bildirilen bant içi işlem hatalarını yoksaymak yerine doğru şekilde dikkate alıyor.
  • Veritabanı 'values' kablo biçimini yüzde kodlamasıyla kodlayarak veritabanı satır doldurma ile ilgili bir sorun düzeltildi. Bu sayede, yük taşıma sırasında verilerin bozulması önlendi.
  • Bağımlılıklar yükseltilerek androidx.test.backup:backup-host uygulamasındaki güvenlik açıkları giderildi.

Sürüm 1.0.0-alpha01

23 Eylül 2026

androidx.test.backup:backup:1.0.0-alpha01 ve androidx.test.backup:backup-host:1.0.0-alpha01 yayınlandı. 1.0.0-alpha01 sürümü bu kayıtları içerir.

İlk sürümün özellikleri

Android için Otomatik Yedekleme ve Geri Yükleme Testi çerçevesinin ilk sürümü. Bu kitaplık, kullanıcı verilerinin ve hesap giriş bilgilerinin cihaz yükseltme ve buluttan geri yükleme işlemlerinden güvenli bir şekilde etkilenmediğini test etmek için otomatik ve uçtan uca bir yöntem sunar. Geliştiriciler, manuel testlere güvenmek yerine tüm yaşam döngüsünü otomatikleştirebilir: Uygulama durumunu başlatma, yapılandırılmış kurallarınıza göre yedekleme (dataExtractionRules ve fullBackupContent), uygulamayı silme ve geri yükleme sonrası veri bütünlüğünü doğrulama. Çerçeve iki yapı sağlar: androidx.test.backup:backup-host (ADB üzerinden yedekleme, silme ve geri yükleme işlemlerini düzenlemek için ana bilgisayarda çalışır) ve androidx.test.backup:backup (uygulama verilerini doldurmak ve doğrulamak için cihazda çalışır).

  • BackupRestoreController: Bir test cihazının yedekleme, silme, geri yükleme ve doğrulama iş akışlarını kontrol etmek için kullanılan ana makine tarafındaki birincil arayüz. runBackupRestoreFlow gibi kolaylık sağlayan ardışık düzenlerin yanı sıra ayrıntılı işlemler (performBackup, performRestore, clearAppData, fetchDeviceLogs ve runOnDevice) sunar. Hem Kotlin eş yordamlarını hem de Java ListenableFuture eşzamansız yürütmeyi destekler.
  • BackupRestoreExtension: BackupRestoreController parametrelerini çözümleyen ve test yöntemlerine ekleyen bir JUnit 5 Jupiter uzantısı. Bağımsız veya paylaşılan ADB oturumlarını yönetir, test edilen ve test APK'larını otomatik olarak yükler, kimlik bilgileriyle korunan depolama alanının kilidini açmak için cihaz kilit ekranlarını ve tuş kilitlerini kapatır ve test korumalı alan izolasyonunu zorunlu kılar.
  • BackupRestoreTestRunner: Uygulama korumalı alanında çalışan cihaz üzerinde Instrumentation test çalıştırıcısı. Ana makine düzenleyiciler tarafından gönderilen istenen BackupDeviceAction uygulamalarını dinamik olarak çözer ve yürütür. Ayrıca, Binder işlem arabelleği sınırlarını önlemek için büyük JSON sonuç yüklerini güvenli bir şekilde diske yönlendirir.
  • BackupDeviceAction: Veri ekleme (PHASE_POPULATE) veya geri yükleme sonrası doğrulama (PHASE_VERIFY) sırasında doğrudan hedef uygulama korumalı alanında yürütülen özel cihaz tarafı işlemler için sözleşme.
  • StorageDomain: Önceden oluşturulmuş işlem yardımcılarıyla (PopulateStorageAction ve AssertStorageAction) birlikte kullanılan, kesin olarak yazılmış tanımlayıcılar (Preference, Database, TextFile ve BinaryFile), hem Kimlik Bilgisi Korumalı (CE) hem de Cihaz Korumalı (DE) depolama bağlamlarında SharedPreferences, SQLite veritabanları ve ham dosyaları otomatik olarak doldurur ve onaylar.
  • BackupTransportMode: Test geçişleri sırasında simüle edilecek platform yedekleme aktarım topolojisini belirtir. Buna DEVICE_TO_DEVICE (USB veya Kablosuz Doğrudan Bağlantı aracılığıyla fiziksel cihaz taşıma), CLOUD_ENCRYPTED (istemci tarafı uçtan uca şifreleme ile bulut yedekleme), CLOUD_UNENCRYPTED (standart bulut yedekleme) ve LOCAL (çevrimdışı yerel dosya sistemi yedekleme) dahildir.
  • @Device ve @Isolation: Belirli seri numaraları, API düzeyleri veya çeşitli cihaz rolleriyle eşleşen bağlı cihazları seçmek ve test çalıştırmaları arasında korumalı alan izolasyon politikalarını yapılandırmak için ana makine ek açıklamaları (IsolationPolicy.AUTOMATIC ve IsolationPolicy.MANUAL).