اندروید به شما اجازه می دهد تا از داده ها و اطلاعات اپلیکیشن خود برای ذخیره ی انبوه بک آپ (backup ) بگیرید تا یک نقطه ی بازگشت اطلاعات برای داده های برنامه و تنظیمات ایجاد کنید (اگر به هر دلیلی اطلاعات شما از بین رفت ).
شما فقط می توانید از داده های اپلیکیشن  بکاپ بگیرید اما برای دسترسی به داده های اپلیکیشن ها لازم است تلفن خود را روت (root) کنید.

برای ساخت یک اپلیکیشن  بک آپ (backup ) ، لازم است اپلیکیشن خود را با سرویس google backup ثبت کنید. این مسئله در مثال توضیح داده شده است. پس از ثبت اپلیکیشن باید دکمه ی آن را در AndroidManifest.XML مشخص کنید.

 

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

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

 

اندروید کلاس BackUpAgentHelper را برای کنترل همه اکتیویتی های بک آپ (backup ) ارائه می دهد. برای استفاده از این کلاس باید کلاس خود را با آن توسعه دهید. سینتکس آن مانند زیر می باشد :

 

public class MyBackUpPlace extends BackupAgentHelper {
}

 

داده ی پایداری که بک آپ آن را می خواهید به دو شکل وجود دارد. این داده می تواند SharedPrefrences یا File باشد. اندروید هر دو نوع بک آپ را در گروه های SharedPreferencesBackupHelper و FileBackupHelper پشتیبانی می کند.

برای استفاده از SharedPerefernceBackupHelper لازم است که آبجکت آن را با نام فایل sharedPerefernces به عنوان نمونه بیاورید. ترکیب آن مانند زیر می باشد.

 

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

آخرین کاری که لازم است انجام دهید، فراخوانی متد addHelper با مشخص کردن کلید رشته ی بک آپ (backup key string) و آبجکت کمک کننده ( helper object)  می باشد.
سینتکس آن در زیر آمده است :

 

addHelper(PREFS_BACKUP_KEY, helper);

 

روش addHelper به طور خودکار ، یک کمک کننده به زیر مجموعه ی داده ی ارائه شده اضافه می کند.
علاوه بر این متد ها، متدهای دیگری در کلاس BackupAgentHelper تعریف شده اند. لیست این متد ها به شرح زیر می باشند :

شماره متد و توضیحات
1 onBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState)

فرایند بک آپ را روی هرکدام از گردانندگان تنظیم شده اجرا می کند.

2 onRestore(BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState)

فرایند بازگردانی (restore) را روی هرکدام از گردانندگان تنظیم شده اجرا می کند.

روش های گروه SharedPreferencesBackUpHelper در زیر ارائه شده اند.

شماره متد و توضیحات
1 performBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState) گروه های تنظیم شده ی SharedPreferences را بک آپ می کند
2 restoreEntity(BackupDataInputStream data) یک مقدار را از جریان بازگشت داده به ذخیره فایل برتر به اشتراک گذاشته شده، بازمی گرداند.

مثال زیر استفاده از گروه BackupAgentHelper را برای ایجاد بک آپ از داده ی برنامه ی شما ارائه می دهد.

برای آزمایش با این مثال لازم است آن را روی یک دستگاه واقعی یا یک مقلد اجرا کنید.

مرحله توضیحات
1 برای ایجاد یک اپلیکیشن اندروید از Android studio استفاده نموده و آن را با نام Backup تحت پکیج com.example.backup نام گذاری کنید.
2 برنامه ی خود را با سرویس Google backup ثبت کنید.
3 AndroidManifest را برای افزودن کلید مربوط و  دیگر مولفه های لازم تغییر دهید.
4 گروه backup agent را با نامی که در AndroidManifest.XML مشخص کرده اید، ایجاد کنید.
5 برنامه را اجرا کرده و نتایج را بررسی کنید.

برنامه ی اندروید خود را با سرویس گوگل بک آپ (Google backup) ثبت کنید. شما باید با شرایط سرویس موافقت کرده و سپس نام پکیج را وارد کنید. این کار در زیر نمایش داده شده است

Android Data Backup Tutorial

سپس روی گزینه  Register with android backup service کلیک کنید که به شما کلید همراه با کد AndroidManifest را به صورت کپی می دهد. فقط کلید را کپی کنید، همان طور که در زیر می بینید :

Android Data Backup Tutorial

پس از کپی کردن کلید ، لازم است آن را در فایل 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 را می بینید. نام کلاس باید همانی باشد که در بخش تگ backupAgent در زیر برنامه AndroidManifest.XML مشخص کرده بودید.

 

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

Backup agent خود را تست کنید:

زمانی که backup agent را اجرا کنید می توانید آن را تست کرده و کاربرد آن را طی فرایند زیر و با استفاده از bmgr ببینید .

  • برنامه ی خود را روی یک سیستم تصویر اندروید مناسب نصب کنید :

اگر از یک امولاتور استفاده می کنید، یک AVD با (Android 2.2 (API Level 8 ایجاد کرده و از آن استفاده کنید.

اگر از یک دستگاه موبایل استفاده می کنید باید اجرا کننده  Android 2.2 یا بالاتر باشد و دارای Google play داخلی باشد.

  • مطمئن شوید که Data backup فعال می باشد:

اگر از یک امولاتور استفاده می کنید، می توانید بک آپ را با دستورات زیر از طریق مسیر SDK tools فعال کنید:

adb shell bmgr enable true

اگر از یک دستگاه استفاده می کنید، system Settings را باز کرده و Privacy را انتخاب کنید، سپس Back up my data و Automatic restore را فعال کنید.

اجرای بک آپ:

برای تست کردن می توانید درخواستی با دستور bmgr ایجاد کنید.

adb shell bmgr backup your.package.name

یک عملیات بک آپ را با تایپ کردن دستور زیر آغاز کنید :

adb shell bmgr run

این فرمان Backup Manager را مجبور به اجرای همه ی درخواست های موجود در صف داده ها می کند.

حذف کردن و نصب کردن دوباره ی برنامه ی خود

برنامه را با دستور زیر حذف کنید.

adb uninstall your.package.name

سپس برنامه را دوباره نصب کرده و نتایج را بررسی کنید.