Chromium架构
下图是chromium的架构图,由于chromium项目极其庞大,我们没法一一列举所有的模块,所以这里只是列出主要的模块图。Blink(WebKit)作为chromium的内核引擎,位于整个架构图的最底层,在WebKit架构一节会做详细的介绍,除此之外,还有很多chromium项目独有的模块,包括多进程模型、沙箱模型、CC(Chromium Compositor)、GPU/CommandBuffer(硬件加速架构)、IPC多进程通信等等。
Content模块是Chromium项目最主要的部分,Content对底下的模块进行了封装,向上提供了一套支持多进程架构的Content API接口,用于网页的渲染。当然,多进程架构是在Windows或Linux平台上的Chromium浏览器才有用,在Android平台上,Webview只支持单进程方式(Android O已经支持多进程了)。
AwContents是基于ContentAPI开发的模块,是Chromium为了对接到AndroidWebview而封装的一个新类,但是AwContents模块提供的还不是WebView接口,所以还需要一层桥接部分,将AwContents桥接到Android WebView。
Android WebView则是Android framework层提供给apk调用的一套标准接口,可以用来构建一个运行于Android平台的浏览器。