مشخصات مقاله
-
1805
-
0.0
-
6010
-
0
-
0
آموزش پشتیبان گیری از داده ها در اندروید
آموزش حاضر به شرح توابع کتابخانه ای Android data backup API پرداخته و نحوه ی استفاده از آن برای بازگردانی داده های مربوط به تنظیمات و Configuration اپلیکیشن را توضیح می دهد.
Backup در اندروید
هدف از تهیه ی نسخه ی پشتیبان از داده ها
سرویس backup گیری اندروید به توسعه دهنده این امکان را می دهد تا داده های ماندگار اپلیکیشن را در حافظه ی راه دور cloud ذخیره نماید. بدین وسیله زمانی که کاربر دستگاه اندروید خود را عوض می کند یا اپلیکیشنی را مجددا نصب می نماید و یا factory reset گوشی را فعال می کند، داده های اپلیکیشن و اطلاعات مربوط به تنظیمات همگی به راحتی قابل بازگردانی خواهد بود.
البته تمامی دستگاه های اندروید لزوما قابلیت data backup را ندارند. همچنین حافظه ی cloud ممکن است از جانب تولید کننده ی دستگاه مورد نظر به صورت اختصاصی تنظیم شده باشد. از این رو تیم توسعه ی محیط اندروید به هیچ وجه امنیت و سلامت کامل داده ها را به هنگام backup و بازگردانی تضمین نمی کند.
چنانچه سرویس در دستگاه مد نظر موجود نباشد، متعاقبا سرویس backup فراخوانی نمی شود. از این رو بهتر است ابتدا سرویس را پیاده سازی نموده و سپس آن را بر روی دستگاه دلخواه اجرا نمایید.
برای استفاده از سرویس backup گیری، ابتدا لازم است اسم پکیج اپلیکیشن خود را در آدرس اینترنتی https://developer.android.com/google/backup/signup.html ثبت نمایید. پس از معرفی کردن اسم پکیج اپلیکیشن خود، این سایت یک کلید backup در اختیار شما قرار می دهد که برای تهیه ی نسخه ی پشتیبان از داده های اپلیکیشن مورد نظر در آینده از آن استفاده خواهید نمود.
تهیه ی نسخه ی پشتیبان از shared preferences (داده های کوچک همچون اطلاعات مربوط به تنظیمات اپلیکیشن) و فایل ها
برای ذخیره ی دائمی داده ها و بازگردانی آن ها، ابتدا یک کلاس تعریف کنید که توابع و فیلدهای کلاس BackupAgent را به ارث می برد.
ساده ترین راه برای پیاده سازی backup استفاده از SharedPreferencesBackupHelper ویژه ی backup گیری از داده های کوچک همچون اطلاعات مربوط به تنظیمات اپلیکیشن و استفاده از FileBackupHelper ویژه ی تهیه ی نسخه ی پشتیبان از داده های مستقر در حافظه ی داخلی سیستم می باشد. دو کلاس کمکی (helper) نام برده به صورت خودکار تمامی فایل های ثبت شده را ذخیره کرده و بازگردانی می نماید.
تهیه ی Backup کلی
به منظور تهیه ی backup پیچیده و کلی تر، می توانید خود کلاس BackupAgent و متدهای save /restore آن را به صورت مستقیم پیاده سازی نمایید. برای مطالعه ی جزئیات بیشتر می توانید به آدرس http://developer.android.com/guide/topics/data/backup.html مراجعه نمایید.
تمرین: پیاده سازی backup گیری از داده های مربوط به تنظیمات اپلیکیشن
پیاده سازی پروژه
اپلیکیشنی که کد آن را در زیر مشاهده می کنید از پکیج com.vogella.android.databackup در بالای فایل XML استفاده می کند. این پکیج در گوگل سرویس ثبت شده است.
Backup agenda و registration key در فایل تنظیمات اپلیکیشن AndroidManifest.xml به صورت زیر درج می شود.
<?xml version="1.0" encoding="utf-8" ?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.vogella.android.databackup"
android:versioncode="1"
android:versionname="1.0">
<uses-sdk android:minsdkversion="17"
android:targetsdkversion="17" />
<application android:allowbackup="true"
android:backupagent="MyBackupAgent"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity android:name="com.vogella.android.databackup.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="AEdPqrEAAAAI4SfiyaQncNamIUH0NboU3tzOjXGztXLv2LZkEw" />
</application>
</manifest>
Backup agent مربوطه را می توان به صورت زیر پیاده سازی کرد.
package com.vogella.android.databackup;
import android.app.backup.BackupAgentHelper;
import android.app.backup.SharedPreferencesBackupHelper;
public class MyBackupAgent extends BackupAgentHelper {
// The name of the SharedPreferences file
static final String PREFS = "myprefs";
// A key to uniquely identify the set of backup data
static final String PREFS_BACKUP_KEY = "myprefs";
@Override
public void onCreate() {
SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(
this, PREFS);
addHelper(PREFS_BACKUP_KEY, helper);
}
}
راه اندازی و فعال کردن پروسه های backup و restore (بازگردانی داده ها)
Backup manager پیاده سازی شده، به صورت اتوماتیک و بدون دخالت و تعامل کاربر shared preferences و تنظیمات دلخواه ثبت شده کاربر را به طور دائمی ذخیره نموده و بازگردانی می نماید. کافی است shared preferences را تحت فایلی که اپلیکیشن خود را با نام آن ثبت کردید، تغییر داده و ذخیره نمایید.
چنانچه مایلید عملیات ذخیره و بازگردانی داده ها را از طریق پنجره ی فرمان adb shell command تست نمایید، در آن صورت می توانید دستورات زیر را به کار ببرید.
# Trigger a backup, usage: # adb shell bmgr backup <package> # schedule backup adb shell bmgr backup com.vogella.android.databackup # ensure scheduled backup run adb shell bmgr run # to restore you backup use bmgr restore adb shell bmgr restore com.vogella.android.databackup