- Android 基础
- Android - 首页
- Android - 概述
- Android - 环境搭建
- Android - 架构
- Android - 应用组件
- Android - Hello World 示例
- Android - 资源
- Android - 活动 (Activities)
- Android - 服务 (Services)
- Android - 广播接收器 (Broadcast Receivers)
- Android - 内容提供器 (Content Providers)
- Android - 碎片 (Fragments)
- Android - 意图/过滤器 (Intents/Filters)
- Android - 用户界面
- Android - UI 布局
- Android - UI 控件
- Android - 事件处理
- Android - 样式和主题
- Android - 自定义组件
- Android 高级概念
- Android - 拖放
- Android - 通知
- 基于位置的服务
- Android - 发送邮件
- Android - 发送短信
- Android - 电话呼叫
- 发布 Android 应用
- Android 实用示例
- Android - 警报对话框
- Android - 动画
- Android - 音频捕获
- Android - AudioManager
- Android - 自动完成
- Android - 最佳实践
- Android - 蓝牙
- Android - 相机
- Android - 剪贴板
- Android - 自定义字体
- Android - 数据备份
- Android - 开发者工具
- Android - 模拟器
- Android - Facebook 集成
- Android - 手势
- Android - Google 地图
- Android - 图片特效
- Android - ImageSwitcher
- Android - 内部存储
- Android - JetPlayer
- Android - JSON 解析器
- Android - LinkedIn 集成
- Android - 加载微调器
- Android - 本地化
- Android - 登录界面
- Android - MediaPlayer
- Android - 多点触控
- Android - 导航
- Android - 网络连接
- Android - NFC 指南
- Android - PHP/MySQL
- Android - 进度圆圈
- Android - 进度条
- Android - 推送通知
- Android - RenderScript
- Android - RSS 阅读器
- Android - 屏幕录制
- Android - SDK 管理器
- Android - 传感器
- Android - 会话管理
- Android - 共享首选项
- Android - SIP 协议
- Android - 拼写检查器
- Android - SQLite 数据库
- Android - 支持库
- Android - 测试
- Android - 文字转语音
- Android - TextureView
- Android - Twitter 集成
- Android - UI 设计
- Android - UI 模式
- Android - UI 测试
- Android - WebView 布局
- Android - Wi-Fi
- Android - 小部件
- Android - XML 解析器
- Android 实用资源
- Android - 问答
- Android - 实用资源
- Android - 讨论
Android - 数据备份
Android 允许您将应用程序数据备份到远程“云”存储,以便为应用程序数据和设置提供还原点。您只能备份应用程序数据。要访问其他应用程序的数据,您需要 root 您的手机。
为了创建一个数据备份应用程序,您需要将您的应用程序注册到 Google 备份服务。这在示例中已解释。注册后,您必须在 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** 类来处理所有数据备份操作。要使用此类,您必须使用它扩展您的类。其语法如下:
public class MyBackUpPlace extends BackupAgentHelper { }
您想要备份的持久性数据有两种形式之一。它可以是 SharedPreferences,也可以是文件。Android 在 **SharedPreferencesBackupHelper** 和 **FileBackupHelper** 的相应类中支持这两种类型的备份。
要使用 **SharedPreferencesBackupHelper**,您需要使用共享首选项文件的名称实例化其对象。其语法如下:
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 类中还定义了其他方法。它们定义如下:
序号 | 方法及描述 |
---|---|
1 |
onBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState) 在每个已配置的处理程序上运行备份过程 |
2 |
onRestore(BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState) 在每个已配置的处理程序上运行还原过程 |
SharedPreferencesBackUpHelper 类的使用方法如下所示。
序号 | 方法及描述 |
---|---|
1 |
performBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState) 备份已配置的 SharedPreferences 组 |
2 |
restoreEntity(BackupDataInputStream data) 将一个实体从还原数据流还原到其正确的共享首选项文件存储区 |
示例
以下示例演示了如何使用 BackupAgentHelper 类创建应用程序数据的备份。
要试验此示例,您需要在实际设备或模拟器上运行它。
步骤 | 描述 |
---|---|
1 | 您将使用 Android Studio 创建一个 Android 应用程序,并将其命名为 Backup,包名为 com.example.backup。 |
2 | 将您的应用程序注册到 Google 备份服务。 |
3 | 修改 AndroidManifest 以添加相应的必要密钥和其他组件 |
4 | 创建备份代理类,其名称与您在 AndroidManifest.XML 中指定的名称相同。 |
5 | 运行应用程序并验证结果 |
将您的 Android 应用程序注册到 Google 备份服务。为此,请访问此链接。您必须同意服务条款,然后输入应用程序包名称。如下所示:
然后单击“使用 Android 备份服务注册”。它会提供您的密钥以及要复制的 AndroidManifest 代码。只需复制密钥即可。如下所示:
复制密钥后,您需要将其写入 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 类的代码。类的名称应与您在 AndroidManifest.XML 中 application 下的 backupAgent 标签中指定的名称相同。
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
实现备份代理后,您可以使用以下过程使用 bmgr 测试备份和还原功能。
将您的应用程序安装到合适的 Android 系统映像上。
如果使用模拟器,请创建并使用具有 Android 2.2(API 级别 8)的 AVD。
如果使用设备,则设备必须运行 Android 2.2 或更高版本,并且内置 Google Play。
确保已启用数据备份
如果使用模拟器,您可以使用 SDK tools/ 路径中的以下命令启用备份:
adb shell bmgr enable true
如果使用设备,请打开系统设置,选择隐私,然后启用“备份我的数据”和“自动还原”。
执行备份
出于测试目的,您还可以使用以下 bmgr 命令发出请求:
adb shell bmgr backup your.package.name
键入以下命令启动备份操作。
adb shell bmgr run
这会强制备份管理器执行其队列中的所有备份请求。
卸载并重新安装您的应用程序
使用以下命令卸载应用程序:
adb uninstall your.package.name
然后重新安装应用程序并验证结果。