Kiểm tra bản sao lưu

  
Khung kiểm thử tự động để xác minh rằng dữ liệu người dùng và thông tin đăng nhập tài khoản vẫn được bảo vệ an toàn sau khi nâng cấp thiết bị và khôi phục dữ liệu trên đám mây.
Bản cập nhật mới nhất Bản phát hành ổn định Bản phát hành dùng thử Bản phát hành beta Bản phát hành alpha
Ngày 21 tháng 10 năm 2026 - - - 1.0.0-alpha03

Khai báo phần phụ thuộc

Để thêm một phần phụ thuộc trên bản sao lưu kiểm thử, bạn phải thêm kho lưu trữ Google Maven vào dự án. Đọc nội dung Kho lưu trữ Maven của Google để biết thêm thông tin.

Thêm các phần phụ thuộc cho cấu phần phần mềm bạn cần trong tệp build.gradle cho ứng dụng hoặc mô-đun:

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

Để biết thêm thông tin về các phần phụ thuộc, hãy xem bài viết Thêm phần phụ thuộc vào bản dựng.

Ý kiến phản hồi

Ý kiến phản hồi của bạn có thể giúp chúng tôi cải thiện Jetpack. Hãy cho chúng tôi biết nếu bạn phát hiện lỗi mới hoặc có ý tưởng cải thiện thư viện này. Vui lòng xem các lỗi hiện có trong thư viện này trước khi báo một lỗi mới. Bạn có thể thêm lượt bình chọn cho lỗi hiện có bằng cách nhấp vào nút dấu sao.

Báo lỗi mới

Xem tài liệu về Trình theo dõi sự cố để biết thêm thông tin.

Phiên bản 1.0 của quy trình kiểm thử khôi phục bản sao lưu tự động

Phiên bản 1.0.0-alpha03

Ngày 21 tháng 10 năm 2026

Phát hành androidx.test.backup:backup:1.0.0-alpha03 và androidx.test.backup:backup-host:1.0.0-alpha03. Phiên bản 1.0.0-alpha03 bao gồm các thay đổi sau.

Tính năng mới

  • Đơn giản hoá quy trình thiết lập kiểm thử trong bộ kiểm thử dự phòng của Trình bổ trợ Android cho Gradle bằng cách tự động nhắm đến ứng dụng được kiểm thử khi bỏ qua @BackupRestoreConfig. (I1452b)
  • Thêm tính năng hỗ trợ kế thừa chế độ cài đặt @BackupRestoreConfig và @Isolation từ một lớp kiểm thử bên ngoài trong các lớp kiểm thử @Nested. (Ia45a8)
  • Thêm tính năng hỗ trợ chèn trực tiếp BackupRestoreController vào hàm khởi tạo lớp kiểm thử và phương thức thiết lập @BeforeAll. (I6e822, Ia2ebd)
  • Thêm tính năng hỗ trợ ghim một thiết bị cụ thể vào vai trò @Device trong các kiểm thử nhiều thiết bị bằng thuộc tính androidx.test.backup.device.serial.{role}. (I484be)

Sửa lỗi

  • Đã sửa performBackup và performRestore để các bài kiểm thử không thành công ngay lập tức thay vì vượt qua một cách thầm lặng khi bản sao lưu bị bỏ qua hoặc trống, khi dịch vụ sao lưu gặp lỗi hoặc khi bản lưu trữ sao lưu cục bộ thuộc về một ứng dụng hoặc thiết bị khác. (I7673d, I478ad, I0b989, I9a0ea, I79567)
  • Khắc phục lỗi kiểm thử bị treo vô thời hạn trên các thiết bị không phản hồi bằng cách thực thi thời gian chờ trong các bước sao lưu, khôi phục, thao tác trên thiết bị và dọn dẹp. (I10661, I9cdee, If5f92)
  • Khắc phục lỗi performBackup xoá các tệp sao lưu đã tạo khi quá trình chạy kiểm thử kết thúc, nhờ đó, các tệp lưu trữ sao lưu hiện được lưu giữ trên ổ đĩa sau khi thoát kiểm thử. (I8c13f)
  • Sửa các trình trợ giúp kiểm thử cơ sở dữ liệu (StorageDomain.Database) để lưu trữ và kiểm tra các giá trị null đúng cách, ghi đè các hàng hiện có khi gieo dữ liệu kiểm thử, phát hiện sớm các cấu hình bảng không hợp lệ và không thành công khi thiếu tệp cơ sở dữ liệu dự kiến. (Ib4767, Iddf87, I19c43, Ie8d78, I8bc18)
  • Sửa các trình trợ giúp kiểm thử SharedPreferences để duy trì chính xác các loại dữ liệu và hỗ trợ kiểm tra các lựa chọn ưu tiên null hoặc đã bị xoá. (I8456d9, I1d0fc2)
  • Sửa lỗi runOnDevice để xử lý tải trọng thử nghiệm lớn mà không gặp sự cố, tạm dừng trình gỡ lỗi khi bật waitForDebugger, tìm trình chạy thử nghiệm trong tên gói APK thử nghiệm tuỳ chỉnh và chặn cờ trình chạy nội bộ rò rỉ vào các thao tác trên thiết bị. (Ic73bd, Iede17, I1d172, I84c15)
  • Cải thiện độ ổn định và tốc độ kiểm thử bằng cách chia sẻ một kết nối ADB duy nhất trong suốt quá trình chạy kiểm thử, chỉ cài đặt APK một lần cho mỗi thiết bị và thông báo rõ ràng khi không cài đặt hoặc khởi chạy được APK. (I62717, Iabf75, I14e6f, I4c3da5, I54077, Iee84e)
  • Khắc phục lỗi fetchDeviceLogs ghi tệp nhật ký trống và ngăn các lần chạy kiểm thử bị huỷ tạo báo cáo lỗi sai. (I736c4, I7b199, Ia847e)
  • Dọn dẹp các phần phụ thuộc backup-host để adblib có sẵn trực tiếp cho phương thức gọi và thư viện kiểm thử hoặc ghi nhật ký nội bộ không còn xung đột với classpath của dự án. (I6e822, Iba9a4, Ib4ec9)

Phiên bản 1.0.0-alpha02

Ngày 7 tháng 10 năm 2026

Phát hành androidx.test.backup:backup:1.0.0-alpha02 và androidx.test.backup:backup-host:1.0.0-alpha02. Phiên bản 1.0.0-alpha02 bao gồm các thay đổi sau.

Thay đổi về API

  • Giờ đây, các khoá tải trọng được ghi lại dưới dạng BackupActionInputKeys, BackupActionOutputKeys và BackupActionValues, thay thế các hằng số trên BackupDeviceAction. Thêm các nhà máy BackupDeviceActionResult.success() và failure(), cùng với các phương thức truy cập isSuccess và errorMessage. (Ibd493)

Sửa lỗi

  • BackupRestoreController.clearAppData hiện gửi IOException khi pm clear không báo cáo thành công, thay vì tiếp tục mà không thông báo. (I61556)
  • Các đối số shell được truyền đến BackupRestoreController để thực thi thiết bị hiện được thoát đúng cách để ngăn chặn việc chèn lệnh và đảm bảo các đường dẫn tệp có dấu cách được xử lý một cách an toàn.
  • Tăng cường các thao tác lưu trữ đi kèm (PopulateStorageAction và AssertStorageAction) để chống lại các lượt xác minh thầm lặng nhằm đảm bảo các kiểm thử chắc chắn sẽ không thành công khi thiếu dữ liệu dự kiến.
  • Giờ đây, trình điều phối kiểm thử phía máy chủ sẽ tuân thủ chính xác các lỗi hành động trong băng tần do thiết bị báo cáo thay vì bỏ qua các lỗi đó.
  • Khắc phục vấn đề về việc điền hàng trong cơ sở dữ liệu bằng cách mã hoá phần trăm định dạng dây 'values' của cơ sở dữ liệu, ngăn chặn tình trạng hỏng dữ liệu trong quá trình truyền tải tải trọng.
  • Khắc phục các lỗ hổng bảo mật trong androidx.test.backup:backup-host bằng cách nâng cấp các phần phụ thuộc.

Phiên bản 1.0.0-alpha01

Ngày 23 tháng 9 năm 2026

Phát hành androidx.test.backup:backup:1.0.0-alpha01 và androidx.test.backup:backup-host:1.0.0-alpha01. Phiên bản 1.0.0-alpha01 bao gồm các thay đổi sau.

Các tính năng của bản phát hành ban đầu

Bản phát hành đầu tiên của Khung kiểm thử sao lưu và khôi phục tự động cho Android. Thư viện này cung cấp một cách tự động, toàn diện để kiểm tra xem dữ liệu người dùng và thông tin đăng nhập tài khoản có được bảo vệ an toàn trong quá trình nâng cấp thiết bị và khôi phục dữ liệu trên đám mây hay không. Thay vì dựa vào quy trình kiểm thử thủ công, nhà phát triển có thể tự động hoá toàn bộ vòng đời: gieo trạng thái ứng dụng, sao lưu theo quy tắc đã định cấu hình (dataExtractionRules và fullBackupContent), xoá ứng dụng và xác minh tính toàn vẹn của dữ liệu sau khi khôi phục. Khung này cung cấp hai cấu phần phần mềm: androidx.test.backup:backup-host (chạy trên máy tính lưu trữ để điều phối các lượt sao lưu, xoá và khôi phục qua ADB) và androidx.test.backup:backup (chạy trên thiết bị để điền và xác minh dữ liệu ứng dụng).

  • BackupRestoreController: Giao diện chính phía máy chủ dùng để kiểm soát quy trình sao lưu, xoá, khôi phục và xác minh cho thiết bị thử nghiệm. Cung cấp các quy trình thuận tiện như runBackupRestoreFlow cũng như các thao tác chi tiết (performBackup, performRestore, clearAppData, fetchDeviceLogs và runOnDevice). Hỗ trợ cả coroutine Kotlin và thực thi không đồng bộ ListenableFuture Java.
  • BackupRestoreExtension: Một tiện ích JUnit 5 Jupiter giúp phân giải và chèn các tham số BackupRestoreController vào phương thức kiểm thử. Quản lý các phiên ADB độc lập hoặc dùng chung, tự động cài đặt APK đã kiểm thử và APK kiểm thử, đóng màn hình khoá và khoá phím của thiết bị để mở khoá bộ nhớ được bảo vệ bằng thông tin xác thực, đồng thời thực thi việc tách biệt hộp cát kiểm thử.
  • BackupRestoreTestRunner: Trình chạy kiểm thử Instrumentation trên thiết bị thực thi bên trong hộp cát ứng dụng. Tự động phân giải và thực thi các phương thức triển khai BackupDeviceAction được yêu cầu do trình điều phối máy chủ gửi đi, đồng thời chuyển hướng an toàn các tải trọng kết quả JSON lớn sang ổ đĩa để tránh giới hạn vùng đệm giao dịch của Binder.
  • BackupDeviceAction: Hợp đồng cho các hành động tuỳ chỉnh phía thiết bị thực thi trực tiếp trong hộp cát ứng dụng mục tiêu trong quá trình gieo dữ liệu (PHASE_POPULATE) hoặc xác thực sau khi khôi phục (PHASE_VERIFY).
  • StorageDomain: Các chỉ số mô tả được nhập chính xác (Preference, Database, TextFile và BinaryFile) được dùng cùng với các trình trợ giúp hành động tạo sẵn (PopulateStorageAction và AssertStorageAction) để tự động gieo mầm và xác nhận SharedPreferences, cơ sở dữ liệu SQLite và tệp thô trên cả bối cảnh lưu trữ được bảo vệ bằng thông tin xác thực (CE) và được bảo vệ bằng thiết bị (DE) mà không cần mã nguyên mẫu.
  • BackupTransportMode: Chỉ định cấu trúc liên kết truyền tải sao lưu nền tảng để mô phỏng trong quá trình kiểm thử, bao gồm DEVICE_TO_DEVICE (di chuyển thiết bị thực qua USB hoặc Wi-Fi Direct), CLOUD_ENCRYPTED (sao lưu trên đám mây bằng phương thức mã hoá hai đầu phía máy khách), CLOUD_UNENCRYPTED (sao lưu trên đám mây tiêu chuẩn) và LOCAL (sao lưu hệ thống tệp cục bộ khi không có mạng).
  • @Device và @Isolation: Chú thích máy chủ để chọn thiết bị thông minh khớp với số sê-ri, cấp độ API hoặc vai trò nhiều thiết bị cụ thể, đồng thời định cấu hình chính sách tách biệt hộp cát giữa các lần chạy kiểm thử (IsolationPolicy.AUTOMATIC so với IsolationPolicy.MANUAL).