android4.4在保持webview接口不变的前提下,将webkit替换成了chromium.
这篇总结一下webview和chromium之间的桥接层结构。
1.WebView::ensureProviderCreated()调用WebViewFactory的接口得到
WebViewChromiumFactoryProvider的实例,调用
WebViewChromiumFactoryProvider::createWebView()得到
WebViewChromium的实例,并保存在mProvider变量中。
WebView将它的公共接口代理给WebViewChromium。
2.WebViewChromium包含的AwContents实例,AwContents包含
ContentViewCore。native层的ContentViewCore封装了WebContentImpl,是Browser组件的入口,完成WebView的具体功能。
3.WebViewClient和WebChromeClient是允许应用层重载的类,应用层将自己实现的
WebViewClient和WebChromeClient接口通过WebView的setWebViewClient和
setWebChromeClient最终设置给AwContents.