我正在开发一个定期向外部服务器发送信息的应用程序.我为发送的数据制作了本地副本,以备份.
在节省电池寿命方面,存储数据的最佳选择是什么?每个数据提交都是一个序列化对象(该类有5个字段,包括日期,数字和字符串),大约5K-10K.
还有其他想法吗?
我不相信你使用SQLite还是文件,因为SQLite数据库只是系统上的一个文件(存储在其中/data/data/
).您需要在正确的时间提交数据库,就像在正确的时间将文件保存到硬盘驱动器所需的那样.换句话说,您可以使用同样多的硬盘驱动器写入.
我认为您选择的内容更多地取决于您节省的数据类型.如果你需要拥有db的权力(例如查询),那么一定要使用SQLite.但是,如果您不需要数据库,或者您的数据变化很大(并且无法在关系数据库中轻松设置),那么我将使用文件.
我可以告诉你肯定的是,你应该不使用序列化保存文件,如果这是你选择走的路线.Android序列化速度慢,速度慢,创建大文件.出于性能原因,编写自己的XML或JSON格式要好得多.
我不知道电池寿命直接但一个标准更容易管理?管理数据的操作更少意味着更少的CPU周期,从而延长电池寿命.
我会说SQLite选项更容易.您可以在SQLite表中放置一个日期列来存储您的数据,这样可以删除您不再需要的旧提交 - 并且所有这些都通过本机SQL库处理.使用您自己的Java代码管理整个文件负载 - 或者更糟糕的单个文件 - 将会更加有效.
此外,您可以将数据写入数据库,只需忘记它,直到您需要再次阅读它.如果您将数据存储在文件中,则需要在应用程序读取和编写Android应用程序生命周期中的文件时进行计算.如果您担心电池,您可能不希望更频繁地编写文件,并将数据缓存在内存中,但是您需要确保在应用暂停或销毁时没有丢失任何数据.在我看来,使用SQLite数据库要容易得多,而不用担心这一点.