关于 Android 上持久数据的建议?

2023-12-21

有一个网络服务提供了我的应用程序使用的一些数据。这些数据相当大,并且很少更改,因此我认为如果应用程序可以将其缓存在 SD 卡上并仅根据需要进行更新,那就太好了。

目前,我正在获取数据(一个 XML 文件)并使用 SAX 将其解析为对象树。通过我的 WIFI,此过程最多需要 2-3 秒。然而,将生成的对象序列化到 SDCard 需要的时间要长得多(一分钟或更长时间),并且反序列化它仍然比最初下载/解析花费的时间更长。

有没有人有任何改进此数据的建议或保留此数据的替代想法(除了保存 XML 文件并每次重新解析之外)?

UPDATE:这不仅仅是一个简单的记录集合。对象图实际上非常复杂,将其存储到数据库中会产生数十个表,每个表中只有一条记录。


Android序列化是臭名昭著地慢的。我强烈建议改用 XML 或 JSON(或其他)并以这种方式写入文件。由于您已经有了 XML 解析器,因此缓存您下载的原始 XML 文件并根据需要重新解析它可能是最有意义的。

我之前在应用程序中从 Serialized 切换到 JSON 文件存储,速度的提高令人难以置信,至少提高了一个数量级。

(我可能误解了你的问题 - 我假设你正在使用 Serialized 写入光盘。如果你正在复制 XML,那么我不确定为什么它在 SD 卡上慢得多。另外,我同意SQLite 数据库通常最有意义,但正如您已经说过的,它不适合您的应用程序的需求。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于 Android 上持久数据的建议? 的相关文章

随机推荐