在Android上可以很方便地管理数据备份,那些不慎丢失设备的用户会对该功能感激不尽。备份数据会很安全地存储在云端,并且只在具有相同谷歌ID设备上恢复数据。

下面是典型的AndroidManifest.xml文件片段:

<application

android:allowBackup="true"

android:backupAgent="MyBackupAgent"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme">

<meta-data android:name="com.google.android.backup.api_key"

android:value="backup-key_string"/>

.......

</application>

要打开应用程序的备份功能,只需要在android:backupAgent属性中指定备份代理的类名。该类会处理应用数据的备份与恢复。前例的meta_data属性指定了在谷歌备份服务中注册API密匙。具体注册网址为:https://developer.android.com/google/backup/signup.html。

注册并获取API密匙后,把它赋值给android:value属性,如上面所示。虽然密匙是和应用程序的包名绑定的,不能用于其他应用程序,开发者还是要注意不要在发布的任何代码中公开分享它。

下面的类是一个简单的备份代理,用于备份和恢复默认的偏好文件。

注意:从PreferenceManager.getDefaultPreferences()得到的偏好文件名为<package-name>_preferences,API文档中并没说明,了解这一点对备份偏好文件有很大的帮助。

public class MyBackupAgent extends BackupAgentHelper{

public static final String PREFS_BACKUP_KEY="prefsBackup";

@Override

public void onCreate(){

super.onCreate();

SharedPreferencesBackupHelper sharedPreferencesBackupHelper=new SharedPreferencesBackupHelper(this,getPackageName()+"_preferences");

addHelper(PREFS_BACKUP_KEY,sharedPreferencesBackupHelper);

}

}

BackupAgentHelper类会自动备份与恢复选择的偏好文件。也可以使用FileBackupHelper类为其他常规文件添加备份。

谷歌为Android应用提供的备份代理适合少量的数据。虽然备份SQLite数据库在技术上是可行的,但是最好还是先把数据库的内容转成序列化格式,然后压缩内容,最后备份文件。

Android SDK提供了bmgr命令行工具,它允许对应用程序强制执行备份与恢复。这对开发应用很有用,因为可以用它检查一切是否正常。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android应用数据备份的更多相关文章

  1. Linux文件系统应用---系统数据备份和迁移(用户角度)

    1   前言 首先承诺:对于从Windows系统迁移过来的用户,困扰大家的  “Linux系统下是否可以把系统文件和用户文件分开到C盘和D盘中” 的问题也可以得到完满解决. 之前的文章对Linux的文 ...

  2. Android笔记——Android中数据的存储方式(二)

    我们在实际开发中,有的时候需要储存或者备份比较复杂的数据.这些数据的特点是,内容多.结构大,比如短信备份等.我们知道SharedPreferences和Files(文本文件)储存这种数据会非常的没有效 ...

  3. Android笔记——Android中数据的存储方式(一)

    Android中数据的存储方式 对于开发平台来讲,如果对数据的存储有良好的支持,那么对应用程序的开发将会有很大的促进作用. 总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络.其 ...

  4. Android实现数据存储技术

    转载:Android实现数据存储技术 本文介绍Android中的5种数据存储方式. 数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用Shar ...

  5. 数据备份的OSS接口

    最近在做一个新的项目,从RDS备份到OSS,进行数据备份以及后续的还原.这边对阿里云的OSS数据上传接口进行说明,先做下笔记先简单介绍下OSS: ①Object 在OSS中,用户操作的基本数据单元是O ...

  6. 两种适用于中小量数据的mysql数据备份

    近来项目的业务量开始大了,感觉如果数据不周期性地备份一下,很可能会出现问题,虽然我每天都有阿里云的自动快照,上网找了一下方法,找到两种相对简单而又适合中小项目或者中小公司的数据备份策略,以下都是数据库 ...

  7. Android中数据存储(一)

    国庆没有给国家添堵,没有勾搭妹子,乖乖的写着自己的博客..... 本文将为大家介绍Android中数据存储的五种方式,数据存储可是非常重要的知识哦. 一,文件存储数据 ①在ROM存储数据 关于在ROM ...

  8. redis主从复制 从而 数据备份和读写分离

    蜗牛Redis系列文章目录http://www.cnblogs.com/tdws/tag/NoSql/ 爬虫转载注明地址本文地址—博客园蜗牛 http://www.cnblogs.com/tdws/p ...

  9. MySQL 数据备份与还原

    一.数据备份 1.使用mysqldump命令备份 mysqldump命令将数据库中的数据备份成一个文本文件.表的结构和表中的数据将存储在生成的文本文件中. mysqldump命令的工作原理很简单.它先 ...

随机推荐

  1. CSS规则整理

    一. 善用css缩写规则 /*注意上.右.下.左的书写顺序*/1. 关于边距(4边):1px 2px 3px 4px (上.右.下.左)1px 2px 3px (省略的左等于右)1px 2px (省略 ...

  2. Java数据结构之树和二叉树

    从这里开始将要进行Java数据结构的相关讲解,Are you ready?Let's go~~ Java中的数据结构模型可以分为一下几部分: 1.线性结构 2.树形结构 3.图形或者网状结构 接下来的 ...

  3. Python 条件语句

    Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false. Py ...

  4. C#如何通过NCO3.0来连接SAP并调用SAP中的RFC

    ,这是SAP针对.Net开发的专用组件,安装完成之后在C:\Program Files\SAP\SAP_DotNetConnector3_x86目录下面会有sapnco_utils.dll sapnc ...

  5. cookie标准话

    php设置cookie setcookie( * * ,'/'); setcookie( * * ,'/'); //清除cookie setcookie("loginname",' ...

  6. 利用FluorineFX录制音频与视频

    要做一个完整的录制程序,处理RPC请求的类不仅要继承ApplicationAdapter,还要继承IStreamService接口,该接口定义了play(),pause(),publish(),cre ...

  7. EntityFrameWork关系映射

    转:http://kb.cnblogs.com/page/108643/ Entity Framework 实体关系总结 作者: dudu  来源: 博客园  发布时间: 2011-10-28 20: ...

  8. Centos系统使用vpnc连接cisco的vpn服务

    安装vpnc 因为Centos官方源中,所含的软件安装包较少,这里需增加Fedora的源,依次执行: sudo rpm -ivh http://dl.fedoraproject.org/pub/epe ...

  9. vim的列编辑操作

    转载:http://www.cnblogs.com/xiaowant/articles/1992923.html 删除列 1.光标定位到要操作的地方. 2.CTRL+v 进入“可视 块”模式,选取这一 ...

  10. 1.4.10 Schemaless模式

    Schemaless模式 schemaless模式是一组solr功能的集合,允许用户通过简单的索引例子数据快速构建一个有效的schema,而不需要手动的编辑schema.这些solr功能都是在solr ...