• 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命令行工具,它允许对应用程序强制执行备份与恢复。这对开发应用很有用,因为可以用它检查一切是否正常。

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

  • 相关阅读:
    spring中bean的生命周期
    【数据结构与算法】2.2 数组实现循环队列思路、代码
    【数据结构与算法】2.1、数组队列场景、思路、实现
    【Java 基础领域】手气红包实现思路、代码
    【数据结构与算法】1、稀疏数组场景、思路、代码实现
    【Java基础领域】 byte num = 100 没有强制类型转换,为什么也可以编译通过
    【程序人生】程序员发展的7大方向
    【读书笔记】老许的架构
    对于开发中为什么很少用设计模式的思考
    Java编程思想目录
  • 原文地址:https://www.cnblogs.com/liyuanjinglyj/p/4656559.html
Copyright © 2020-2023  润新知