APP数据备份
来源:互联网 发布:花椒直播mac版 编辑:程序博客网 时间:2024/05/23 14:09
APP数据备份
Android API 8供了备份和恢复应用程序数据的功能,用户可通过adb backup进行备份,备份文件存放在电脑上自定义位置,再通过adb restore来进行对应用数据的恢复。这种恢复不受限于手机,可将手机A上的备份数据,在装有相同APP的手机B上进行恢复。
Android支持两类数据备份:
- SharedPreferences文件:通过 SharedPreferencesBackupHelper备份
- 其他文件: 通过FileBackupHelper 备份,需要注意的是,一般备份小的配置文件。
一、演示思路
编写一个简单的登陆页面,只包含账号、密码输入框,及登陆按钮。
页面启动时,从SharedPreferences查询账号密码,显示到页面,点击“ENTER”按钮时,向SharedPreferences存入新的账号密码。
演示步骤:
1、点击“ENTER”按钮后,将账号密码存入SharedPreferences。
2、备份数据
3、清除APP数据
4、重启APP,看数据是否被清除
5、还原数据
6、重启APP,看数据是否被恢复
二、代码
数据备份不需要权限声明。默认情况下,是允许数据备份的。
如果要禁用备份功能,需要在application标签下声明:
android:allowBackup="false"
再看看activity的代码:
/** * 测试android:allowBackup数据备份。 * 备份:adb backup -f allowBackup.ab -noapk com.example.mytestpro * 恢复:adb restore allowBackup.ab */public class MainActivity extends Activity implements OnClickListener{ public static final String NAME = "NAME"; public static final String PWD = "PWD"; public static final String SP_NAME = "TEST_SP"; private EditText et_name; private EditText et_pwd; private Button btn_enter; private SharedPreferences sp; private Editor editor; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sp = getSharedPreferences(SP_NAME, Context.MODE_PRIVATE); editor = sp.edit(); initView(); } private void initView() { et_name = (EditText) findViewById(R.id.et_name); et_pwd = (EditText) findViewById(R.id.et_pwd); btn_enter = (Button) findViewById(R.id.btn_enter); btn_enter.setOnClickListener(this); if (sp != null) { et_name.setText(sp.getString(NAME, "")); et_pwd.setText(sp.getString(PWD, "")); } } @Override public void onClick(View v) { editor.putString(NAME, et_name.getText().toString()); editor.putString(PWD, et_pwd.getText().toString()); editor.commit(); Toast.makeText(this, "Enter an activity...", Toast.LENGTH_SHORT).show(); }}
布局文件非常简单,此处不在给出。
三、测试操作
1、准备
安装app,并输入账号密码,点“ENTER”出现上面展示的页面。
2、备份
执行备份命令:
此时Android会弹出提示窗口:
密码可以为空,即不加密。点击备份,等待备份完成。我的备份文件allowBack.ab放在PC默认用户路径下。
3、清空APP数据
清空APP的数据,重新进入页面会看到记录的账号密码都丢失了:
4、还原APP数据
使用备份的文件allowBack.ab,恢复APP数据:
此时Android系统也会弹出恢复提示:
如果备份时没有输入密码,此处也可以不输入。
点击恢复后,APP需要重启,重启之后就会看到本文第一张图的页面(此处不再贴图),证明数据恢复成功。
注意:
· 如果在系统弹出的备份或恢复页面等待太久,可能出现备份或恢复失败(可能是我测试机的问题)。
· 在android:allowBackup=”false”时,备份依然能成功,但是恢复必定失败。
以上就是简单的APP数据备份及还原操作。
Android还提供了定义备份还原的API,我们可以自定义这个操作过程及操作范围。
四、自定义备份
可以通过使用BackupAgentHelper类来定义APP数据备份,如名,这是一个备份的代理帮助类。要使用这个代理,需要在AndroidManifest.xml中注册。
详细可以参考这篇博客
- APP数据备份
- Android备份App及数据
- Android 数据存数 II-数据备份简介和APP的安装路径
- 数据备份
- 数据备份
- 数据备份
- 数据备份
- 数据备份
- 备份数据
- 数据备份
- 数据备份
- 数据备份
- 数据备份
- 数据备份
- 数据备份
- 数据备份
- 数据备份
- 数据备份
- MVC,MVP 和 MVVM 模式如何选择?
- 1064. 朋友数(20)
- 基于L0范数平滑的图像漫画特效生成算法
- 用Spark和DBSCAN对地理定位数据进行聚类
- C语言中二维数组和指针
- APP数据备份
- storm集成kafka
- 日请求从百万到八亿的技术历程
- JDBC案例演示,供参考
- Linux基础-文件权限管理
- 在STM32上创建一个自己的操作系统
- 1029_魔咒词典
- Docker基本操作
- Lock和synchronized比较详解