android webview缓存访问优化

为了让WebView访问快,一般都是用缓存技术!这里简单介绍下:

其实http协议有自身的缓存机制,android这边通过简单配置就可实现,缓存一般都是说的对web静态资源缓存,如网页,js代码,图片等;

缓存配置主要是web前端和后台设置,如果前端和后台没有配置缓存的话,一般http服务器有默认的配置。例:默认没有配置Cache-Control,或者Expires字段,那还是要和服务器通信的

Android WebView自身缓存

Android WebView自身缓存,也就是http协议缓存,这里有个很大缺陷就是系统给的空间太小,只有12M(默认系统1/8),这个应该是几年前的标准了,目前个人觉得远远不够,所以这块需要改进

Android WebView缓存改进

通过拦截所有静态资源请求,然后对其改进,通过覆盖WebViewClient下面的方法:

@TargetApi(Build.VERSION_CODES.LOLLIPOP)//sdk21后调用
@Override
 public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request){
        return null;
}

再拦截所有的静态资源,并放到本地,这样就可以自己控制缓存了,以下两种模式:

  • 普通模式

    普通模式就是http协议的缓存默认,通过header里的缓存字段,先判断本地有没有,是否过期,没有过期从本地拿,过期了然后去服务器比较,比较完从服务器或着本地拿数据。如果web前端和后台没有设置缓存字段,还会有请求发生;

  • 强制模式

    忽略缓存的字段,强制缓存静态资源。如果资源要更新,那就让其修改资源链接,如加md5,versioncode等,注意:这块对于html网页需要走普通模式,因为有些html文件名是不会改变的,如index.html

基本流程图

基本流程

其他,为了让访问加速也可以通过其它方式

  • 第三方浏览器内核,如腾讯X5 腾讯浏览服务

    优点:内核级加速,比系统自带的浏览器内核快

    缺点:完全依赖第三方浏览器,灵活性差些(不建议,最好还是自己来一个)

  • VasSonic

    优点:并发,缓存和局部更新,速度很快

    缺点:配置比较复杂,需要服务器大量修改(不建议)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容