2

对于我的 Android 应用程序,我希望将网络流量保持在尽可能低的水平(当然)。我知道HttpResponseCache但它只适用于 API >= 13,所以它不是我的选择。

我想到了使用LruCache,使用RESTUrl 作为键(假设没有POST数据)。当我从服务器 ( JSON) 收到响应时,我立即使用Gson.

  • 什么是更好的价值?JSON字符串,然后再次反序列化它或Gson存储POJOs? 我知道反序列化需要一点 cpu 时间,但是将POJOs 存储在我的缓存中可能有一个缺点?

  • 假设我有一个活动,它显示了一个POJO名为“产品”的内容(我从服务器获得JSON)。在方向更改时,我是否可以忘记保留产品POJO(通过savedInstanceState或其他方式),因为再次检索它的网络调用很可能是“免费”的(因为它仍在缓存中)?

  • 为不同类型的对象设置单独的缓存还是只使用一个大缓存会更好吗?

  • 关于如何确定缓存的合适大小的任何建议(在条目中MiB或仅在条目数中)

4

1 回答 1

2

一个很好的起点是 Virgil Dobjanschi 在 Google I/O 2010 上关于 Android 的 RESTful 模式的演讲:http ://www.google.com/events/io/2010/sessions/developing-RESTful-android-apps.html

简而言之,他提倡使用 SQLite 来跟踪 HTTP 请求的状态并缓存数据以最小化请求。我在这里找到了一个示例实现,但您可能想四处搜索有关该演讲中概述的模式的更多资源。

自从最初回答这个问题以来,已经出现了几个用于处理缓存 HTTP 请求的优秀 Android 开源库。 OkHttpVolley是两个可靠的选择。

于 2013-06-27T14:46:55.517 回答