Android应用数据备份
在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应用数据备份的更多相关文章
- Linux文件系统应用---系统数据备份和迁移(用户角度)
1 前言 首先承诺:对于从Windows系统迁移过来的用户,困扰大家的 “Linux系统下是否可以把系统文件和用户文件分开到C盘和D盘中” 的问题也可以得到完满解决. 之前的文章对Linux的文 ...
- Android笔记——Android中数据的存储方式(二)
我们在实际开发中,有的时候需要储存或者备份比较复杂的数据.这些数据的特点是,内容多.结构大,比如短信备份等.我们知道SharedPreferences和Files(文本文件)储存这种数据会非常的没有效 ...
- Android笔记——Android中数据的存储方式(一)
Android中数据的存储方式 对于开发平台来讲,如果对数据的存储有良好的支持,那么对应用程序的开发将会有很大的促进作用. 总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络.其 ...
- Android实现数据存储技术
转载:Android实现数据存储技术 本文介绍Android中的5种数据存储方式. 数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用Shar ...
- 数据备份的OSS接口
最近在做一个新的项目,从RDS备份到OSS,进行数据备份以及后续的还原.这边对阿里云的OSS数据上传接口进行说明,先做下笔记先简单介绍下OSS: ①Object 在OSS中,用户操作的基本数据单元是O ...
- 两种适用于中小量数据的mysql数据备份
近来项目的业务量开始大了,感觉如果数据不周期性地备份一下,很可能会出现问题,虽然我每天都有阿里云的自动快照,上网找了一下方法,找到两种相对简单而又适合中小项目或者中小公司的数据备份策略,以下都是数据库 ...
- Android中数据存储(一)
国庆没有给国家添堵,没有勾搭妹子,乖乖的写着自己的博客..... 本文将为大家介绍Android中数据存储的五种方式,数据存储可是非常重要的知识哦. 一,文件存储数据 ①在ROM存储数据 关于在ROM ...
- redis主从复制 从而 数据备份和读写分离
蜗牛Redis系列文章目录http://www.cnblogs.com/tdws/tag/NoSql/ 爬虫转载注明地址本文地址—博客园蜗牛 http://www.cnblogs.com/tdws/p ...
- MySQL 数据备份与还原
一.数据备份 1.使用mysqldump命令备份 mysqldump命令将数据库中的数据备份成一个文本文件.表的结构和表中的数据将存储在生成的文本文件中. mysqldump命令的工作原理很简单.它先 ...
随机推荐
- C++ Bit Fields
http://msdn.microsoft.com/en-us/library/ewwyfdbe%28v=vs.71%29.aspx Note An unnamed bit field of widt ...
- java搭建finagle(2)
上篇文章是1年前写的惭愧惭愧,今天一个同事问我要demo然后看了下文章 好吧主要的代码 没写出来,今天补充下 上篇地址:http://www.cnblogs.com/rufus-hua/p/41592 ...
- java学习笔记(5)——内部类
一.内部类 1,静态内部类 使用static修饰,声明在类体中 静态内部类中可以访问外部类的静态成员 2,成员内部类 声明在类体中,不使用static,具有类的成员特征,也就是,必须有类的实例才能 创 ...
- Out of resources when opening file 错误解决
mysqldump: Got error: 23: Out of resources when opening file ‘./mydb/tax_calculation_rate_title.MYD’ ...
- windows 支持curl命令
curl 是一般linux发行版中都带有的小工具,利用这个工具可以很方便的下载文件, 我一般使用这个工具来查看某个页面相应的HTTP头信息,在Windows系统中我们也一样可以使用这个工具,如果不需要 ...
- IOS编程之多线程
IOS编程之多线程 目录 概述——对多线程的理解 IOS中实现多线程的三种方式 NSThread 线程创建 线程的同步与锁 线程间的交互 线程的操作方法 NSOperation and NSOpera ...
- mysql优化之连接优化(open-files-limit与table_open_cache)
MySQL打开的文件描述符限制 Can't open file: '.\test\mytable.frm' (errno: 24) OS error code : Too many open file ...
- Shell中的函数
一.在脚本中定义函数 与变量一样,在使用函数之前应该对函数进行定义.与其他编程类语言相比,由于没有数据类型的概念,因此也不必定义函数的类型. (1)在脚本中可以使用以下方式定义函数: function ...
- 浅谈 qmake 之 pro、pri、prf、prl文件
尽管每次和cmake对比起来,我们总是说 qmake 简单.功能少.但是qmake仍然是一个非常复杂的东西,我想大多人应该和我一样吧: 不是太清楚CONFIG等变量到底如何起作用的 用过的qmake内 ...
- Sublime text 2下alignment插件无效的解决办法
在sublime text 2中安装了alignment插件,但使用快捷键‘ctrl+alt+a'无效,经过各种方法依然无效,最后找到了这个“Doesn't work at all for me (f ...