1,参考了美团的WebView性能、体验分析与优化 – 美团技术团队
2,qq的70%以上业务由H5开发,手机QQ Hybrid 的架构如何优化演进?
把webview的优化分成三块,
1,webview初始化
2,建立链接,接收页面、样式、渲染(框架)
3,脚本解析,loading数据、渲染(数据)
针对这三块,分别有方案如下:
1,app启动时启动webview进程,提前初始化;
2,采用相同域名,节省dns时间、同步渲染用chunk编码分块输出;
3,对于htm的框架加载,参考雅虎14条性能优化(经典)-阿里云开发者社区
对于非首次打开的场景优化:
基本上把静态资源(除html、htm)都缓存,然后从缓存加载,就可以了,如下:
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) { String url = request.getUrl().toString(); if (WebCacheUtil.INSTANCE.checkUrl(url)) { return WebviewCacheManager.Companion.getInstance().interceptRequest(request); } else { return super.shouldInterceptRequest(view, request); } }