Android可以備份應(yīng)用程序的數(shù)據(jù)到遠(yuǎn)程“云”存儲(chǔ),以應(yīng)用程序的數(shù)據(jù)和設(shè)置的一個(gè)還原點(diǎn)??梢灾粋浞輵?yīng)用程序數(shù)據(jù)。為了訪問其他應(yīng)用程序的數(shù)據(jù),需要以root在手機(jī)上操作。
為了使數(shù)據(jù)備份的應(yīng)用程序,需要注冊(cè)使用谷歌備份服務(wù)應(yīng)用程序。這已在實(shí)施例進(jìn)行了說明。注冊(cè)后必須在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類來處理數(shù)據(jù)備份的所有操作。為了使用這個(gè)類,必須使用它的擴(kuò)展類。它的語法如下:
public class MyBackUpPlace extends BackupAgentHelper { }
要備份的持久性數(shù)據(jù)無論是哪兩種形式。它可以是SharedPrefrences或者它可能是文件。 Android支持兩種類型的備份在 SharedPreferencesBackupHelper 和 FileBackupHelper 各自的類。
為了使用SharedPerefernceBackupHelper,需要實(shí)例的對(duì)象sharedPerefernces文件的名稱。它的語法如下:
static final String File_Name_Of_Prefrences = "myPrefrences"; SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this, File_Name_Of_Prefrences);
需要做的最后一件事是通過指定的備份鍵字符串和輔助對(duì)象調(diào)用addHelper方法。它的語法如下:
addHelper(PREFS_BACKUP_KEY, helper);
addHelper方法將一個(gè)輔助自動(dòng)添加到給定數(shù)據(jù)集,以代理的配置。
除了這些方法,也有在 BackupAgentHelper 類中定義的其他方法。它們被定義如下:
Sr.No | Method & description |
---|---|
1 |
onBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState) 運(yùn)行備份過程的每個(gè)配置處理程序 |
2 |
onRestore(BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState) 運(yùn)行在每個(gè)處理器配置的恢復(fù)過程 |
所述SharedPreferencesBackUpHelper類的方法在下面列出。
Sr.No | Method & description |
---|---|
1 |
performBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState) 備份配置SharedPreferences群體 |
2 |
restoreEntity(BackupDataInputStream data) 還原一個(gè)實(shí)體的恢復(fù)數(shù)據(jù)流的正確共享的首選項(xiàng)文件存儲(chǔ) |
下面的例子演示了如何使用BackupAgentHelper類來創(chuàng)建應(yīng)用程序數(shù)據(jù)的備份。
為了試驗(yàn)這個(gè)例子,需要在實(shí)際設(shè)備或模擬器運(yùn)行此。
Steps | 描述 |
---|---|
1 | 使用Android Studio創(chuàng)建Android應(yīng)用程序,并將其命名為Backup。在創(chuàng)建這個(gè)項(xiàng)目,確保目標(biāo)SDK編譯在Android SDK最新版本或使用更高級(jí)別的API。 |
2 | 注冊(cè)谷歌備份服務(wù)應(yīng)用程序。 |
3 | 修改AndroidManifest添加相應(yīng)的必要的密鑰和其他組件 |
4 | 在AndroidManifest.xml中指定的名稱創(chuàng)建備份代理類 |
5 | 運(yùn)行應(yīng)用程序并驗(yàn)證結(jié)果 |
注冊(cè)您的Android應(yīng)用程序使用谷歌備份服務(wù)。為了做到這一點(diǎn),訪問這個(gè)鏈接. 必須同意服務(wù)條款,然后輸入應(yīng)用程序包的名稱。它如下所示:
然后點(diǎn)擊注冊(cè)與Android備份服務(wù)。這會(huì)給定鑰匙,以及AndroidManifest代碼進(jìn)行復(fù)制剛才的鍵。它如下所示:
復(fù)制的鍵之后,需要寫入到AndroidManifest.xml文件。其代碼如下:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.yiibai.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.yiibai.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標(biāo)簽下的應(yīng)用程序在AndroidManifest.xml中指定的類的名稱應(yīng)該是相同的
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); } }
實(shí)現(xiàn)備份代理之后,就可以測(cè)試備份和恢復(fù)功能如以下步驟,使用BMGR。
如果使用模擬器,創(chuàng)建和使用AVD采用Android2.2(API等級(jí)8級(jí))。
如果使用的設(shè)備,設(shè)備必須運(yùn)行Android 2.2或更高版本,并已Google Play內(nèi)置
如果使用模擬器,啟用備份SDK工具/路徑下面的命令:
adb shell bmgr enable 上一篇:Android UI控件下一篇:Android Alertdialog(警告對(duì)話框)