การทดสอบการกู้คืนข้อมูลสำรองอัตโนมัติ

  
เฟรมเวิร์กการทดสอบอัตโนมัติเพื่อยืนยันว่าข้อมูลผู้ใช้และข้อมูลเข้าสู่ระบบของบัญชีจะยังคงอยู่ได้อย่างปลอดภัยเมื่ออัปเกรดอุปกรณ์และกู้คืนข้อมูลในระบบคลาวด์
อัปเดตล่าสุด รุ่นที่เสถียร รุ่นที่อาจได้รับการเผยแพร่ รุ่นเบต้า รุ่นอัลฟ่า
23 กันยายน 2026 - - - 1.0.0-alpha01

ความคิดเห็น

ความคิดเห็นของคุณช่วยให้ Jetpack ทำงานได้ดีขึ้น โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมี ไอเดียในการปรับปรุงไลบรารีนี้ โปรดดู ปัญหาที่มีอยู่ ในไลบรารีนี้ก่อนสร้างปัญหาใหม่ คุณสามารถโหวตปัญหาที่มีอยู่ได้โดย คลิกปุ่มดาว

สร้างปัญหาใหม่

ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของ Issue Tracker

การทดสอบการกู้คืนข้อมูลสำรองอัตโนมัติ เวอร์ชัน 1.0

เวอร์ชัน 1.0.0-alpha01

23 กันยายน 2026

androidx.test.backup:backup:1.0.0-alpha01 และ androidx.test.backup:backup-host:1.0.0-alpha01 เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha01 มีการเปลี่ยนแปลงเหล่านี้

ฟีเจอร์ของรุ่นแรก

การเปิดตัวเฟรมเวิร์กการทดสอบการสำรองข้อมูลและกู้คืนอัตโนมัติสำหรับ Android ครั้งแรก ไลบรารีนี้มีวิธีแบบอัตโนมัติตั้งแต่ต้นจนจบในการทดสอบว่าข้อมูลผู้ใช้และข้อมูลเข้าสู่ระบบบัญชีจะยังคงอยู่ได้อย่างปลอดภัยหลังจากการอัปเกรดอุปกรณ์และการกู้คืนข้อมูลในระบบคลาวด์ นักพัฒนาแอปสามารถทำให้วงจรทั้งหมดเป็นแบบอัตโนมัติได้แทนที่จะต้องพึ่งพาการทดสอบด้วยตนเอง ซึ่งรวมถึงการเริ่มต้นสถานะของแอป การสำรองข้อมูลตามกฎที่กำหนดค่าไว้ (dataExtractionRules และ fullBackupContent) การล้างข้อมูลแอป และการยืนยันความสมบูรณ์ของข้อมูลหลังการกู้คืน เฟรมเวิร์กมีอาร์ติแฟกต์ 2 รายการ ได้แก่ androidx.test.backup:backup-host (ซึ่งทำงานในคอมพิวเตอร์โฮสต์เพื่อจัดระเบียบการสำรองข้อมูล การล้างข้อมูล และการกู้คืนผ่าน ADB) และ androidx.test.backup:backup (ซึ่งทำงานในอุปกรณ์เพื่อป้อนและยืนยันข้อมูลแอป)

  • BackupRestoreController: อินเทอร์เฟซฝั่งโฮสต์หลักที่ใช้ควบคุมเวิร์กโฟลว์การสำรองข้อมูล การล้างข้อมูล การกู้คืน และการยืนยันสำหรับอุปกรณ์ทดสอบ มีไปป์ไลน์ที่สะดวก เช่น runBackupRestoreFlow รวมถึงการดำเนินการแบบละเอียด (performBackup, performRestore, clearAppData, fetchDeviceLogs และ runOnDevice) รองรับทั้งโครูทีน Kotlin และการดำเนินการแบบไม่พร้อมกันของ Java ListenableFuture
  • BackupRestoreExtension: ส่วนขยาย JUnit 5 Jupiter ที่แก้ไขและแทรกพารามิเตอร์ BackupRestoreController ลงในวิธีการทดสอบ จัดการเซสชัน ADB แบบสแตนด์อโลนหรือแบบแชร์ ติดตั้ง APK ที่ทดสอบแล้วและ APK สำหรับทดสอบโดยอัตโนมัติ ปิดหน้าจอล็อกและ Keyguard ของอุปกรณ์เพื่อปลดล็อกพื้นที่เก็บข้อมูลที่ป้องกันด้วยข้อมูลเข้าสู่ระบบ และบังคับใช้การแยกแซนด์บ็อกซ์ทดสอบ
  • BackupRestoreTestRunner: โปรแกรมเรียกใช้การทดสอบ Instrumentation ในอุปกรณ์ที่ดำเนินการภายในแซนด์บ็อกซ์ของแอปพลิเคชัน แก้ไขและดำเนินการตามการติดตั้งใช้งาน BackupDeviceAction ที่ขอแบบไดนามิกซึ่งจัดส่งโดยผู้ประสานงานโฮสต์ และเปลี่ยนเส้นทางเพย์โหลดผลลัพธ์ JSON ขนาดใหญ่ไปยังดิสก์อย่างปลอดภัยเพื่อป้องกันขีดจำกัดบัฟเฟอร์ธุรกรรม Binder
  • BackupDeviceAction: สัญญาสำหรับการดำเนินการที่กำหนดเองในฝั่งอุปกรณ์ซึ่งดำเนินการโดยตรงภายในแซนด์บ็อกซ์ของแอปพลิเคชันเป้าหมายระหว่างการเริ่มต้นข้อมูล (PHASE_POPULATE) หรือการตรวจสอบหลังการกู้คืน (PHASE_VERIFY)
  • StorageDomain: ตัวอธิบายที่พิมพ์อย่างเข้มงวด (Preference, Database, TextFile และ BinaryFile) ที่ใช้ร่วมกับตัวช่วยการดำเนินการที่สร้างไว้ล่วงหน้า (PopulateStorageAction และ AssertStorageAction) เพื่อเริ่มต้นและยืนยัน SharedPreferences, ฐานข้อมูล SQLite และไฟล์ดิบโดยอัตโนมัติในบริบทพื้นที่เก็บข้อมูลที่ป้องกันด้วยข้อมูลเข้าสู่ระบบ (CE) และที่ป้องกันด้วยอุปกรณ์ (DE) โดยไม่ต้องใช้บอยเลอร์เพลต
  • BackupTransportMode: ระบุโทโพโลยีการรับส่งข้อมูลสำรองของแพลตฟอร์มเพื่อจำลองระหว่างการทดสอบ รวมถึง DEVICE_TO_DEVICE (การย้ายข้อมูลอุปกรณ์จริงผ่าน USB หรือ Wi-Fi Direct), CLOUD_ENCRYPTED (การสำรองข้อมูลในระบบคลาวด์ด้วยการเข้ารหัสจากต้นทางถึงปลายทางฝั่งไคลเอ็นต์), CLOUD_UNENCRYPTED (การสำรองข้อมูลในระบบคลาวด์มาตรฐาน) และ LOCAL (การสำรองข้อมูลระบบไฟล์ในเครื่องแบบออฟไลน์)
  • @Device และ @Isolation: คำอธิบายประกอบของโฮสต์สำหรับการเลือกอุปกรณ์ที่เชื่อมต่อซึ่งตรงกับหมายเลขซีเรียล ระดับ API หรือบทบาทแบบหลายอุปกรณ์ที่เฉพาะเจาะจง และการกำหนดค่านโยบายการแยกแซนด์บ็อกซ์ระหว่างการทดสอบ (IsolationPolicy.AUTOMATIC กับ IsolationPolicy.MANUAL)