在Android中备份Sqlite对象
我即将为我的Android应用程序实现备份,我的问题是:数据驻留在sqlite数据库中。有些数据只是为了方便用户而存在,可以从其他来源重新创建。因此,为了最小化大小,我只希望导出相关数据(使用Google API的备份限制为1mb) 所有数据都有类等价物,它们通过我的SQLiteOpenHelper实现填充。这意味着我可以实现序列化 到目前为止,我可以看到以下选项:在Android中备份Sqlite对象,android,sqlite,backup,Android,Sqlite,Backup,我即将为我的Android应用程序实现备份,我的问题是:数据驻留在sqlite数据库中。有些数据只是为了方便用户而存在,可以从其他来源重新创建。因此,为了最小化大小,我只希望导出相关数据(使用Google API的备份限制为1mb) 所有数据都有类等价物,它们通过我的SQLiteOpenHelper实现填充。这意味着我可以实现序列化 到目前为止,我可以看到以下选项: 使用Java Serializable进行序列化,并将所有对象写入一个二进制块并将其传递给writeEntityData() 使
- 使用Java Serializable进行序列化,并将所有对象写入一个二进制块并将其传递给writeEntityData()
- 使用XML或JSON(可能与zip API一起)进行序列化,并将文件作为二进制块转储
- 仅使用相关对象克隆数据库。可能要做很多工作
我想听听你对此的看法 我建议您使用vacuum()缩小db大小,或者使用。 如果你的数据库很大,你可以试着压缩它。 删除所有不必要的lib(例如,如果不需要compat_v7)。 尝试用压缩图像。 尝试将wav或mp3转换为aac
而且。。。我们讨论的是多少Mb?我看不出删除libs会对数据库产生什么影响?(最终未使用的lib将从发布版APK中剥离)初始数据库可能是7-800kb(目前),但可能会增长到2mb。对于用户添加的数据(正在备份),我们可以讨论1-200KB。如果我备份整个DB映像,真空绝对是一个选择,我不会这么做。不,我是说减小apk大小。也许你必须考虑更改表/字段结构。序列化将使数据库增长,所以。。。我认为你的数据库结构一定是最重要的一点。我们可以看到您的数据库结构和关系吗?APK大小与此无关,数据库的结构(尽可能好)与此无关。。。序列化与数据库的大小完全无关;序列化是关于传输/持久化对象的。我的问题是关于备份选定数据集的最佳实践。