android webview 复用,Android WebView 优化汇总

本文详细介绍了Android WebView的加载流程,包括WebView的初始化、DNS解析、资源下载、HTML解析等环节的优化策略。提出了WebView复用、DNS缓存、资源压缩、离线包预加载、并行加载等优化方法,旨在提升WebView的加载速度和用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

引言:Html加载流程

加载流程各节点耗时分析优化

加载流程结构优化

客户端优化

Html加载流程

创建并初始化WebView

下载网页所需资源文件

渲染展示网页

6179d51281da

HTML加载流程.png

加载流程各节点耗时分析优化

WebView创建初始化

首次初始化WebView会比第二次初始化慢很多。初始化后,即使WebView已释放,但一些多WebView共用的全局服务/资源对想仍未释放,而第二次初始化不需要生成,因此初始化变快。

1. 提前初始化, 提前预备全局WebView,Application中初始化WebView备用

@Override

public void onCreate() {

// Application中提前初始化WebView

WebView mWebView = new WebView(new MutableContextWrapper(this))

}

注:该方式会增加冷启动时间

2. WebView复用,维护WebView pool,避免每次打开网页创建WebView。

DNS解析耗时

html网页文件获取过程中,首先需要将url链接解析成ip地址,根据ip地址获取到对应html文件。

1. DNS会在系统级别进行缓存,对于WebView的地址,如果使用的域名与原生api的相同,则可直接使用缓存,避免DNS解析耗时。

资源文件下载耗时

弱网情况下,下载网页资源耗时,导致白屏时间过长。

1. 网页资源压缩,并CDN加速处理,缩短请求耗时。

2. 服务端下发填充好首屏数据的网页,作为网页首屏展示,减少网页上数据请求时间。

3. App闲置状态时,下载离线包到本地,加载时优先加载离线包数据。后续更新接收下发的差异包,与当前离线包合并成完整包。

HTML解析耗时

解析html文件,构建DOM树,耗时取决于html节点嵌套复杂程度,与

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值