Android优化实战系列文章之WebView的加载速度优化

大家好,我是Ellen,好久没写博客了,最近项目中需要对WebView进行优化,因此这里就总结一下笔者在WebView优化过程中遇到的问题以及解决思路,我相信你只要认真看完,一定会有许许多多的收获。按照惯例我们先来上一张脑图:

在这里插入图片描述

1.Android中WebView的加载过程

  我们先来通过一张图看看WebView的加载过程:

在这里插入图片描述

  可以从图中看到WebView在第一次启动的时候是需要进行初始化的,然后经过和服务器沟通阶段,此阶段WebView一直白屏,接着才会渲染出来,因此对于一个普通的用户而言,经历了以下几个阶段:

  • 1.交互无反馈
  • 2.到达新的页面,页面白屏
  • 3.页面基本框架出现,但是没有数据;页面处于loading状态
  • 4.出现所需的数据

  为什么WebViw加载没有原生那么快界面显示出来呢?经过反复查看上方WebView的加载过程,你会发现,WebView主要耗时是在初始化和服务器进行数据请求,在通过这两个过程之后WebView才会将界面渲染出来,那么我们如何进行优化呢?

WebView优化思路:
1.让WebView的初始化过程提前准备。
2.资源不让WebView进行请求,在WebVie进行预备工作时候请求html数据(并行思维)

接下来,我们来看看如何实现这两个思路:

2.让WebView的初始化过程提前准备

  笔者这里的思路就是当开启应用进入到主界面时,就把WebView准备好,当其它界面需要用到时,就将这个准备好的WebView交给它,交给它的同时再去准备下一个,这样预准备过程就悄无声息的提前准备了,页面就会加载的很快,但是随即而来的是另外一个问题,那就是内存占用问题,所以如果app里面WebView的界面较多,建议采用复用思维(例如:使用复用池的思维进行复用)进行封装。笔者这里已经封装了一套WebViewCachePool

感谢以下文章的指点:
WebView性能、体验分析与优化(美团技术团队)
有赞webview加速平台探索与建设(三)——html加速(有赞技术团队)

发布了86 篇原创文章 · 获赞 353 · 访问量 24万+

猜你喜欢

转载自blog.csdn.net/ClAndEllen/article/details/103023613