就电池寿命而言,最好的数据存储选项是什么?每个数据提交都是一个序列化对象(该类具有5个字段,包括日期、数字和字符串),大约5K-10K。
还有什么其他想法吗?
我认为使用SQLite还是文件并不重要,因为SQLite数据库只是系统上的一个文件(存储在/data/data/<your_package>/databases/
)。你需要在正确的时机提交到数据库,就像你需要在正确的时机将文件保存到硬盘一样。换句话说,无论哪种方法,你都会使用同样多的硬盘写入。
我认为你选择使用什么取决于你要保存的数据类型。如果你需要数据库提供的功能(例如查询),那么请务必使用SQLite。但是,如果你不需要数据库,或者你有各种各样变化的数据(无法轻松地设置关系型数据库),那么我会选择文件。
我可以肯定告诉你的是,如果你选择这条路,则不应使用序列化来保存文件。Android的序列化速度很慢,并且会创建大文件。出于性能原因,最好编写自己的XML或JSON格式。
我不清楚电池续航方面的直接影响,但一个标准是哪种更容易管理?较少的数据操作意味着较少的 CPU 循环,从而延长电池寿命。
我认为 SQLite 选项更简单。您可以在 SQLite 表中放置一个日期列,用于存储数据,这使得删除不再需要的旧提交非常容易 - 并且所有处理都通过本地 SQL 库进行。使用自己的 Java 代码管理整个文件负载 - 或者更糟糕的是单个文件 - 将需要更多的工作。
此外,您可以将数据写入数据库并忘记它,直到您需要再次读取它。如果您将数据存储在文件中,则需要在 Android 应用程序生命周期方面确定何时应读取和写入文件。如果您担心电池寿命,您可能不希望更频繁地写入文件,并在内存中缓存数据,但您需要确保在暂停或销毁应用程序时不会丢失任何数据。在我看来,使用 SQLite 数据库更容易,不需要担心这些问题。
您的应用程序是否是多线程的?如果有多个线程访问数据存储,则建议使用SQLite。让SQLite处理锁定问题。