文件或数据库? - 在Android设备上保存对象的最佳实践

JU5*_*1C3 9 database android json file gson

我正在java中构建一个android应用程序,我在其中定义了一些像"user"或"playlist"等对象.

如何在设备上保存这些自定义对象以供以后访问?

    Gson gson = new Gson();
    String json = gson.toJson(user);
Run Code Online (Sandbox Code Playgroud)

我可以通过GSON将对象解析为JSONObject或JSONArray.现在我有两个选项来保存字符串:在数据库或文件中.我知道如何使用android数据库类和文件编写器/阅读器类,但在性能,可访问性,尤其是简单性方面,最佳做法是什么?

Sam*_*uel 5

数据库扩展性好,数据库引擎解决了内存管​​理问题,数据库具有良好的性能(使用得当),数据库引擎允许您运行复杂查询而无需编写大量Java代码,数据库引擎允许您插入或删除行而不编写整个文件,Android的小部件本机支持该数据库.请记住,您的应用程序可以使用多少内存,因此如果您的JSON文件变得非常大,您将无法将它们完全加载到内存中.


Bog*_*rac 5

这真的取决于您的用例

如果您的应用程序数据变化不大(想想一年使用一两次的会议应用程序),那么您可以使用 ContentProvider + CursorAdapters,这将使您的生活更轻松。

如果您的应用程序数据变化很大(想想 Gmail,每天可以弹出数百封电子邮件,或者一个新闻提要,或者像 Google+ 这样的社交网络应用程序),那么数据库可能会让您的生活变得更糟。在这种情况下,您应该使用第三方缓存系统,例如 Google Volley 或 RoboSpice 等,它可以为您处理所有 JSON 对象的缓存以及出现的所有并发问题等。