Android-データバックアップ

Androidでは、アプリケーションデータと設定の復元ポイントを提供するために、アプリケーションデータをリモートの「クラウド」ストレージにバックアップできます。アプリケーションデータのみをバックアップできます。他のアプリケーションデータにアクセスするには、電話をルート化する必要があります。

データバックアップアプリケーションを作成するには、アプリケーションをGoogleバックアップサービスに登録する必要があります。これは例で説明されています。登録後、AndroidManifest.XMLでそのキーを指定する必要があります

<application
   android:allowBackup="true"
   android:backupAgent="MyBackupPlace">

   <meta-data 
      android:name="com.google.android.backup.api_key"
      android:value="AEdPqrEAAAAIErlxFByGgNz2ywBeQb6TsmLpp5Ksh1PW-ZSexg" />
</application>

Androidは提供します BackUpAgentHelperデータバックアップのすべての操作を処理するクラス。このクラスを使用するには、クラスを拡張する必要があります。その構文を以下に示します-

public class MyBackUpPlace extends BackupAgentHelper {
}

バックアップする永続データは、2つの形式のいずれかです。SharedPrefrencesまたはFileのいずれかです。Androidは、のそれぞれのクラスで両方のタイプのバックアップをサポートしていますSharedPreferencesBackupHelper そして FileBackupHelper

使用するために SharedPerefernceBackupHelper、sharedPereferncesファイルの名前でオブジェクトをインスタンス化する必要があります。その構文を以下に示します-

static final String File_Name_Of_Prefrences = "myPrefrences";
SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this, File_Name_Of_Prefrences);

最後に行う必要があるのは、バックアップキー文字列とヘルパーオブジェクトを指定してaddHelperメソッドを呼び出すことです。その構文を以下に示します-

addHelper(PREFS_BACKUP_KEY, helper);

addHelperメソッドは、エージェントの構成の特定のデータサブセットにヘルパーを自動的に追加します。

これらのメソッドとは別に、BackupAgentHelperクラスで定義されている他のメソッドがあります。それらは以下に定義されています-

シニア番号 方法と説明
1

onBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState)

構成された各ハンドラーでバックアッププロセスを実行します

2

onRestore(BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState)

構成された各ハンドラーで復元プロセスを実行します

SharedPreferencesBackUpHelperクラスのメソッドを以下に示します。

シニア番号 方法と説明
1

performBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState)

構成済みのSharedPreferencesグループをバックアップします

2

restoreEntity(BackupDataInputStream data)

1つのエンティティを復元データストリームから適切な共有設定ファイルストアに復元します

次の例は、BackupAgentHelperクラスを使用してアプリケーションデータのバックアップを作成する方法を示しています。

この例を試すには、これを実際のデバイスまたはエミュレーターで実行する必要があります。

ステップ 説明
1 Android Studioを使用してAndroidアプリケーションを作成し、com.example.backupパッケージの下にバックアップという名前を付けます。
2 アプリケーションをGoogleバックアップサービスに登録します。
3 AndroidManifestを変更して、それぞれの必要なキーとその他のコンポーネントを追加します
4 AndroidManifest.XMLで指定した名前でバックアップエージェントクラスを作成します
5 アプリケーションを実行し、結果を確認します

AndroidアプリケーションをGoogleバックアップサービスに登録します。これを行うには、このリンクにアクセスしてください。利用規約に同意してから、アプリケーションパッケージ名を入力する必要があります。以下に示します-

次に、[Androidバックアップサービスに登録]をクリックします。コピーするAndroidManifestコードとともに、キーが提供されます。キーをコピーするだけです。以下に示します-

キーをコピーしたら、AndroidManifest.XMLファイルに書き込む必要があります。そのコードを以下に示します-

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.backup" >

   <application
      android:allowBackup="true"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:backupAgent="MyBackUpPlace"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name="com.example.backup.MainActivity"
         android:label="@string/app_name" >
         
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         
      </activity>
      
      <meta-data 
         android:name="com.google.android.backup.api_key"
         android:value="AEdPqrEAAAAIErlxFByGgNz2ywBeQb6TsmLpp5Ksh1PW-ZSexg" />

   </application>
</manifest>

これがBackUpAgentHelperクラスのコードです。クラスの名前は、AndroidManifest.XMLのアプリケーションの下にあるbackupAgentタグで指定したものと同じである必要があります。

package com.example.backup;

import android.app.backup.BackupAgentHelper;
import android.app.backup.SharedPreferencesBackupHelper;

public class MyBackUpPlace extends BackupAgentHelper {
   static final String File_Name_Of_Prefrences = "myPrefrences";
   static final String PREFS_BACKUP_KEY = "backup";
   
   @Override
   public void onCreate() {
      SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this, 
      File_Name_Of_Prefrences);
      addHelper(PREFS_BACKUP_KEY, helper);
   }
}

BackupAgentをテストします

バックアップエージェントを実装したら、bmgrを使用して、次の手順でバックアップと復元の機能をテストできます。

適切なAndroidシステムイメージにアプリケーションをインストールします。

エミュレーターを使用する場合は、Android 2.2(APIレベル8)でAVDを作成して使用します。

デバイスを使用する場合、デバイスはAndroid 2.2以降を実行しており、GooglePlayが組み込まれている必要があります。

データバックアップが有効になっていることを確認します

エミュレーターを使用している場合は、SDKツール/パスから次のコマンドを使用してバックアップを有効にできます-

adb shell bmgr enable true

デバイスを使用している場合は、システム設定を開き、[プライバシー]を選択して、[データのバックアップ]と[自動復元]を有効にします。

バックアップの実行

テストの目的で、次のbmgrコマンドを使用してリクエストを行うこともできます-

adb shell bmgr backup your.package.name

次のコマンドを入力して、バックアップ操作を開始します。

adb shell bmgr run

これにより、バックアップマネージャはキューにあるすべてのバックアップ要求を実行するように強制されます。

アプリケーションをアンインストールして再インストールします

次のコマンドでアプリケーションをアンインストールします-

adb uninstall your.package.name

次に、アプリケーションを再インストールして、結果を確認します。