Android 基础知识

Android - 主页 Android - 概述 Android - 下载安装和设置 Android - Studio IDE Android - 架构 Android - 应用程序组件 Android - Hello World 示例 Android - 资源 Android - 活动 Android - 服务 Android - 广播接收器 Android - 内容提供者 Android - 片段 Android - Intents/Filters

Android - 用户界面

Android - UI 布局 Android - UI 控件 Android - 事件处理 Android - 样式和主题 Android - 自定义组件

Android 高级概念

Android - 拖放 Android - 通知 Android - 基于位置的服务 Android - 发送电子邮件 Android - 发送短信 Android - 拨打电话 Android - 发布应用程序

Android 实用示例

Android - 警报对话框 Android - 动画 Android - 音频捕捉 Android - 音频管理器 Android - 自动完成 Android - 最佳实践 Android - 蓝牙 Android - 相机 Android - 剪贴板 Android - 自定义字体 Android - 数据备份 Android - 开发者工具 Android - 模拟器 Android - Facebook 集成 Android - 手势 Android - 谷歌地图 Android - 图像效果 Android - 图像切换 Android - 内部存储 Android - JetPlayer Android - JSON 解析器 Android - Linkedin 集成 Android - 旋转加载器 Android - 本地化 Android - 登录应用 Android - 媒体播放器 Android - 多点触控 Android - 导航 Android - 网络连接 Android - NFC 指南 Android - PHP/MySQL Android - 进度圈 Android - 进度条 Android - 推送通知 Android - 渲染脚本 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 - Widgets Android - XML 解析器

Android 其他

Android - 面试问题 Android - 有用的资源 Android - 测验


Android - 数据备份

Android 允许您将应用程序数据备份到远程"云"存储,以便为应用程序数据和设置提供还原点。 您只能备份您的应用程序数据。 要访问其他应用程序数据,您需要 root 你的手机。

为了制作数据备份应用程序,您需要向谷歌备份服务注册您的应用程序。 这已在示例中进行了说明。 注册后,您必须在 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 {
}

您要备份的持久数据有两种形式之一。它可以是 SharedPrefrences,也可以是 File。 Android 在 SharedPreferencesBackupHelperFileBackupHelper 各自的类中支持这两种类型的备份。

为了使用 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 类中还定义了其他方法。 它们定义如下 −

序号 方法 & 描述
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 以添加相应的必要 key 和其他组件
4 使用您在 AndroidManifest.XML 中指定的名称创建备份代理类
5 运行应用程序并验证结果

使用谷歌备份服务注册你的安卓应用程序。 请访问此链接https://developer.android.com/google/backup/signup.html。您必须同意服务条款,然后输入应用程序包名称。 如下图所示 −

Android 数据备份教程

然后点击注册安卓备份服务。 它会为您提供您的密钥以及要复制的 AndroidManifest 代码。 只需复制密钥。 如下图所示 −

Android 数据备份教程

复制密钥后,您需要将其写入 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

然后重新安装应用程序并验证结果。