Android WebView性能优化

1,397 阅读1分钟

这是我参与8月更文挑战的第21天,活动详情查看:8月更文挑战

WebView性能优化问题:
导致WebView加载页面慢的原因:加载的过程中都会有较多的网络请求,除了 web 页面自身的 URL 请求,还会有 web 页面外部引用的JS、CSS、字体、图片等等都是个独立的 http 请求。这些请求都是串行的,这些请求加上浏览器的解析、渲染时间就会导致 WebView 整体加载时间变长。

解决方案:
1首次加载优化:直接将常用的 JS 脚本本地化,放入 asserts 文件夹,在 WebView 调用了onPageFinished() 方法后进行加载。

2二次加载优化:
合理使用缓存机制,打开 DomStorage 开关;Application Cache 存储机制;Indexed Database 存储机制;File System API

3延迟JS脚本载入,待到显现完页面后再出发脚本执行

4使用第三方 WebView 内核,如微信的X5内核。

关于WebView内存泄漏的问题:由于webview的OOMM主要来自其宿主Activity,所以让WebView 开启另外一个进程,通过 AIDL 与主进程进行通信,WebView 所在的进程可以根据业务的需要选择合适的时机进行销毁,从而达到内存的完整释放。