Android-data-backup

提供:Dev Guides
移動先:案内検索

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クラスで定義されている他のメソッドがあります。 それらは以下で定義されます-

Sr.No Method & description
1

onBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState)

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

2

onRestore(BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState)

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

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

Sr.No Method & description
1

performBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState)

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

2

restoreEntity(BackupDataInputStream data)

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

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

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

Steps Description
1 You will use Android studio to create an Android application and name it as Backup under a package com.example.backup.
2 Register your application with Google backup service.
3 Modify the AndroidManifest to add respective necessary key and other components
4 Create backup agent class with the name you specify at AndroidManifest.XML
5 Run the application and verify the results

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

Androidデータバックアップチュートリアル

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

Androidデータバックアップチュートリアル

キーをコピーしたら、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のapplicationの下にある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以降を実行し、Google Playが組み込まれている必要があります。

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

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

adb shell bmgr enable true

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

バックアップを実行する

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

adb shell bmgr backup your.package.name

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

adb shell bmgr run

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

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

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

adb uninstall your.package.name

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