android4.4 webview chromium与chromium for android硬件点染的异同

android4.4 webview chromium与chromium for android硬件渲染的异同

相同点:

android4.4 webview chromium的渲染流程与 chromium for android硬件渲染流程全解析(render进程) 中总结的五个子流程完全一致。

android4.4 webview chromium的渲染流程也是这五个子流程组成的。

不同点:

1.android4.4中网页渲染的驱动还是android的UI系统控制的。即WebView.onDraw()是渲染的入口。chromium for android没有用到WebView控件,绘制的驱动完全由底层chromium控制.WebView.onDraw()触发的是第二个流程。android ui系统调用WebView.onDraw(),才会触发网页内容的光栅化,随后执行三,四,五流程。

2.第二个流程光栅化中用到的内存来源不同。chromium for android用的是ashmem实现的sharedmemory. android4.4 webview是经过一个glue layer最终使用的是android系统的GraphicBuffer.

3.android4.4 webview chromium是将网页内容直接合成到on screen的framebuffer即webview对应的framebuffer上,chromium for android的render进程是将网页内容合成到off screen的framebuffer上。android4.4 webview chromium 调用的glBindFramebuffer绑定的framebuffer id为0,即是on screen的framebuffer.

4.android4.4 webview chromium是单进程,chromium for android是多进程。