バックアップをテストする
| 最新の更新 | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
|---|---|---|---|---|
| 2026 年 10 月 21 日 | - | - | - | 1.0.0-alpha03 |
依存関係の宣言
test backup への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。
アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。
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") }
依存関係について詳しくは、ビルド依存関係の追加をご覧ください。
フィードバック
お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。
詳細については、Issue Tracker のドキュメントをご覧ください。
自動バックアップ復元テスト バージョン 1.0
バージョン 1.0.0-alpha03
2026 年 10 月 21 日
androidx.test.backup:backup:1.0.0-alpha03 と androidx.test.backup:backup-host:1.0.0-alpha03 がリリースされました。バージョン 1.0.0-alpha03 に含まれる commit については、こちらをご覧ください。
新機能
@BackupRestoreConfigが省略された場合にテスト対象のアプリを自動的にターゲットに設定することで、Android Gradle プラグインのバックアップ テストスイートでのテスト設定を簡素化しました。(I1452b)@Nestedテストクラスで、外部テストクラスから@BackupRestoreConfigと@Isolationの設定を継承するサポートを追加しました。(Ia45a8)- テストクラスのコンストラクタと
@BeforeAllセットアップ メソッドにBackupRestoreControllerを直接挿入するためのサポートを追加しました。(I6e822、Ia2ebd) androidx.test.backup.device.serial.{role}プロパティを使用して、マルチデバイス テストで特定のデバイスを@Deviceロールに固定するサポートを追加しました。(I484be)
バグの修正
performBackupとperformRestoreを修正し、バックアップがスキップされた場合や空の場合、バックアップ サービスがエラーになった場合、ローカル バックアップ アーカイブが別のアプリやデバイスに属している場合に、テストがサイレントで合格するのではなく、すぐに失敗するようにしました。(I7673d、I478ad、I0b989、I9a0ea、I79567)- バックアップ、復元、デバイス アクション、クリーンアップの各ステップでタイムアウトを適用することで、応答しないデバイスでテストが無限にハングする問題を修正しました。(I10661、I9cdee、If5f92)
- テスト実行の終了時に生成されたバックアップ ファイルを
performBackupが削除する問題を修正しました。これにより、テストの終了後もバックアップ アーカイブがディスクに保持されるようになりました。(I8c13f) - データベース テスト ヘルパー(
StorageDomain.Database)を修正し、null値を適切に保存して確認し、テストデータのシード時に既存の行を上書きし、無効なテーブル構成を早期にキャッチし、想定されるデータベース ファイルがない場合に失敗するようにしました。(Ib4767、Iddf87、I19c43、Ie8d78、I8bc18) SharedPreferencesテストヘルパーを修正し、データ型を正確に保持し、nullまたは削除された設定のチェックをサポートするようにしました。(I8456d9、I1d0fc2)runOnDeviceを修正し、クラッシュすることなく大規模なテスト ペイロードを処理できるようにしました。また、waitForDebuggerが有効になっている場合にデバッガを一時停止し、カスタム テスト APK パッケージ名でテストランナーを検索し、内部ランナーフラグがデバイス アクションに漏洩しないようにしました。(Ic73bd、Iede17、I1d172、I84c15)- テスト実行全体で単一の ADB 接続を共有し、デバイスごとに APK を 1 回だけインストールし、APK のインストールまたは起動に失敗した場合は明確に失敗することで、テストの安定性と速度を向上させました。(I62717、Iabf75、I14e6f、I4c3da5、I54077、Iee84e)
fetchDeviceLogsが空のログファイルを書き込む問題を修正し、キャンセルされたテスト実行が誤った失敗レポートを生成しないようにしました。(I736c4、I7b199、Ia847e)backup-hostの依存関係をクリーンアップし、adblibを呼び出し元から直接利用できるようにしました。また、内部ロギング ライブラリやテスト ライブラリがプロジェクトのクラスパスと競合しないようにしました。(I6e822、Iba9a4、Ib4ec9)
バージョン 1.0.0-alpha02
2026 年 10 月 7 日
androidx.test.backup:backup:1.0.0-alpha02 と androidx.test.backup:backup-host:1.0.0-alpha02 がリリースされました。バージョン 1.0.0-alpha02 に含まれる commit については、こちらをご覧ください。
API の変更
- ペイロード キーが
BackupActionInputKeys、BackupActionOutputKeys、BackupActionValuesとしてドキュメント化され、BackupDeviceActionの定数が置き換えられました。BackupDeviceActionResult.success()ファクトリとfailure()ファクトリ、isSuccessアクセサとerrorMessageアクセサを追加しました。(Ibd493)
バグの修正
BackupRestoreController.clearAppDataが、pm clearが成功を報告しない場合に、サイレントに続行するのではなく、IOExceptionをスローするようになりました。(I61556)- デバイス実行のために
BackupRestoreControllerに渡されるシェル引数が正しくエスケープされるようになり、コマンド インジェクションが防止され、スペースを含むファイルパスが安全に処理されるようになりました。 - バンドルされたストレージ アクション(
PopulateStorageActionとAssertStorageAction)を強化し、サイレント検証に合格しないようにしました。これにより、想定されるデータが欠落している場合にテストが確実に失敗するようになります。 - ホスト側のテスト オーケストレーターが、デバイスから報告されたインバンド アクションの失敗を無視せず、正しく処理するようになりました。
- データベースの
'values'ワイヤー形式をパーセント エンコードすることで、データベース行の入力に関する問題を修正し、ペイロード転送中のデータ破損を防止しました。 - 依存関係をアップグレードすることで、
androidx.test.backup:backup-hostのセキュリティの脆弱性に対処しました。
バージョン 1.0.0-alpha01
2026 年 9 月 23 日
androidx.test.backup:backup:1.0.0-alpha01 と androidx.test.backup:backup-host:1.0.0-alpha01 がリリースされました。バージョン 1.0.0-alpha01 に含まれる commit については、こちらをご覧ください。
初回リリースの機能
Android 向け自動バックアップ / 復元テスト フレームワークの初回リリース。このライブラリは、ユーザーデータとアカウント認証情報がデバイスのアップグレードやクラウドの復元後も安全に保持されることをテストするための、自動化されたエンドツーエンドの方法を提供します。手動テストに頼る代わりに、デベロッパーはライフサイクル全体を自動化できます。アプリの状態をシードし、構成されたルール(dataExtractionRules と fullBackupContent)に従ってバックアップし、アプリをワイプして、復元後のデータの完全性を検証します。このフレームワークには、androidx.test.backup:backup-host(ホスト コンピュータ上で動作し、ADB を介してバックアップ、ワイプ、復元のパスをオーケストレートする)と androidx.test.backup:backup(デバイス上で動作し、アプリデータを入力して検証する)という 2 つのアーティファクトが用意されています。
BackupRestoreController: テストデバイスのバックアップ、ワイプ、復元、検証のワークフローを制御するために使用される、プライマリ ホスト側インターフェース。runBackupRestoreFlowなどの便利なパイプラインと、きめ細かいオペレーション(performBackup、performRestore、clearAppData、fetchDeviceLogs、runOnDevice)を提供します。Kotlin コルーチンと JavaListenableFuture非同期実行の両方をサポートしています。BackupRestoreExtension:BackupRestoreControllerパラメータを解決してテストメソッドに挿入する JUnit 5 Jupiter 拡張機能。スタンドアロンまたは共有の ADB セッションを管理し、テスト対象の APK とテスト APK を自動的にインストールします。また、デバイスのロック画面とキーガードを解除して、認証情報で保護されたストレージのロックを解除し、テスト サンドボックスの分離を適用します。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)。