安卓webview源码分析

comliesdkversion 33

1.首先看下构造方法,webview 共计7个构造方法但是最终都会调用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
**在这里插入图片描述**
在这里插入图片描述

通过上图可以看到这个provider类是通过WebViewFactoryProvider接口的实现类的createWebView方法创建出来的,那么就去找他的实现类

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

WebViewProvider是一个接口,具体的实现不在framework里面。最开始的时候,WebView是android framework的一部分,从Android 5.0 (Lollipop)开始,WebView的实现由一个单独的apk来提供,apk 预置在设备里面,可以和普通应用一样更新

如下为4.4之前还是在framework里面的
在这里插入图片描述

WebView的实现apk的源代码保存在
https://github.com/chromium/chromium/tree/master/android_webview
作为Chromium项目代码的一部分,当前AOSP已经不支持从源代码里面编译出WebView

其中WebViewProvider的实现类是WebViewChromium,这个实现类是通过下面的工厂类声场出来的

在这里插入图片描述

WebViewChromiumFactoryProvider的实现类如下所示

在这里插入图片描述

知道了mprovider的实现类就可以看他的loadurl的实现了
在这里插入图片描述
通过上图可以看到加载url的功能转给mAwContents对象,这个类在哪里呢
在这里插入图片描述

看一下这个类的一个实现
在这里插入图片描述
然后调用了下面的方法
在这里插入图片描述

app和h5互相调用
1.h5调用app
1.必须要先注册再loadurl,不能先loadurl在注册
注册方法
在这里插入图片描述
h5调用方式是
在这里插入图片描述

2.app调用h5

在这里插入图片描述

在这里插入图片描述
执行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值