HttpResponseCache原理分析

摘要

从Android4.0(API 14)开始,SDK源码中新增了一个类:android.net.http.HttpResponseCache.使用这个类可以很方便的对HTTP和HTTPS请求实现cache,所有的缓存逻辑再也不用自己写了,只要你使用HttpURLConnection或者HttpsURLConnection作为默认的网络请求库(也是Google官方建议使用的),底层默认帮你实现的缓存的管理,不支持HttpClient。

阅读更多

(转)Android实战之你应该使用哪个网络库

摘要

摘自Android实战之你应该使用哪个网络库

最早的时候Android只有两个主要的HTTP客户端: HttpURLConnection, Apache HTTP Client。根据Google官方博客的内容,HttpURLConnection在早期的Android版本中可能存在一些Bug:

在Froyo版本之前,HttpURLConnection包含了一些很恶心的错误。特别是对于关闭可读的InputStream时候可能会污染整个连接池。

同样,Google官方并不想转到Apache HTTP Client中:

Apache HTTP Client中复杂的API设计让人们根本不想用它,Android团队并不能够有效地工作。

阅读更多

深入理解SharedPreferences

摘要

关于SharedPreferences需要知道的问题:

  1. SharedPreferences的线程安全吗?
  2. 每次调用getSharedPreferences时都会创建一个SharedPreferences对象吗?这个对象具体是哪个类对象?
  3. 在UI线程中调用getXXX有可能导致ANR吗?
  4. 为什么SharedPreferences只适合用来存放少量数据,为什么不能把SharedPreferences对应的xml文件当成普通文件一样存放大量数据?
  5. commit和apply有什么区别?
  6. SharedPreferences每次写入时是增量写入吗?

阅读更多