冗余的下载是不可忍受的

作者: rain 分类: 移动 发布时间: 2012-03-30 13:54 6 条评论

减少下载的基本原理是:只下载您需要的数据。从数据方面来看,实现REST 风格的API可以让您通过指定查询参数来限制返回数据的内容。

同样的,当下载图片的时候,选择在服务器端做缩小操作比下载一个大图片然后在客户端去缩小要好得多。传输缩小后的图片可以节省很多流量。

本地缓存文件

另外一个重要的技术就是避免下载重复的数据。可以通过缓存文件来到底该目的。总是选择尽可能长的缓存静态资源,包含即时需求的内容–比如 完整的图片。即时需求的内容应该和其他内容分开存储,这样当缓存内容过多的时候,您可以选择清除即时内容文件。

为了确保缓存中的数据是最新的,您需要查询缓存中的文件最新的更新时间是何时,当该文件过期的时候(HTTP响应头中包含该信息)就更新文件。

使用这种技术,您同样可以缓存动态内容。在显示该内容之前查询服务器数据是否更新了,如果更新了就重新下载新的数据显示。

对于不敏感的内容,可以缓存到外部的缓存目录中:

也可以缓存到内部安全的缓存中,注意:当系统内部存储空间不足的时候,内部缓存可能会被系统清除掉。

当程序被卸载的时候,任何地方的缓存数据都会被清除。

使用 HttpURLConnection 响应缓存

Android 4.0 给 HttpURLConnection 添加了一个响应(应答)缓存。可以通过反射的方式在支持该特性的设备上激活此功能:

上面的代码会激活4.0+系统上的响应缓存功能,同时不会影响其他版本运行该程序。

如果使用了缓存,一个完整缓存的HTTP请求可以直接从本地存储中返回,不需要打开网络连接去下载数据了。部分缓存可以从服务器端来验证数据是否过期,可以减少对流量的消耗。

没有缓存过的应答数据会被缓存到系统中,以便在后续请求中使用。

本文出自 云在千峰,转载时请注明出处及相应链接。

本文永久链接: http://blog.chengyunfeng.com/?p=383

Ɣ回顶部