سبد (0)

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

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

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

برای ساخت یک برنامه ی بک آپ داده لازم است برنامه ی خود را با سرویس 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را برای کنترل همه ی عملیات های بکاپ داده ارائه می دهد. برای استفاده از این کلاس , باید کلاس خود را با آن گسترش دهید. ترکیب آن در زیر آورده شده است:

 

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

 

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 بنویسید که کد آن در زیر ارائه شده است.

 

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

   <uses-sdk
      android:minSdkVersion="8"
      android:targetSdkVersion="17" />

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

تست کردن BackupAgent

زمانی که 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

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

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه