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

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

‎ ‎

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

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

addHelper(PREFS_BACKUP_KEY, helper);‎

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

شماره

روشها و توضیحات

۱

onBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState)

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

۲

onRestore(BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState)

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

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

شماره

روشها و توضیحات

۱

performBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState)

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

۲

restoreEntity(BackupDataInputStream data)

یک مقدار را از جریان بازگشت داده به ذخیره فایل برتر به اشتراک گذاشته شده، بازمی گرداند.

مثال

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

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

مراحل

توضیحات

۱

برای ایجاد یک برنامه ی اندروید از Eclipse IDE استفاده خواهید کرد و آن را با عنوان Backup تحت بسته ی com.example.backup نام گذاری کنید. زمان ایجاد این برنامه مطمئن شوید که Target SDK و Compile With در آخرین ورژن Android SDK هستند تا از سطوح بالاتر API استفاده کنید.

۲

برنامه ی خود را با سرویس Google backup ثبت کنید.

۳

AndroidManifest را برای افزودن کلید مربوط و لازم و دیگر مولفه ها تغییر دهید.

۴

گروه backup agent را با نامی که در AndroidManifest.XML مشخص کرده اید، ایجاد کنید.

۵

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

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

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

پس از کپی کردن کلید لازم است آن را در فایل AndroidManifest.XML بنویسید که کد آن در زیر ارائه شده است.

‎‎‎‎‎‎‎‎

در اینجا کد گروه 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

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