为什么chromium webview不采用多进程

我们知道,从Android 4.4开始,系统开始使用chromium webview取代原来的webkit引擎,但和Chrome for Android不同的是,Chromium WebView采用了单进程模型,为什么不采用多进程模型呢?大概有如下几点原因:

  1. 在Android上,并不能自由的创建进程,必须由系统框架来起进程。Chrome for Android为了解决这一问题,起了一个service,该service进程作为render进程,但这要求在应用程序的manifest中增加一些定义。如果WebView也采用这种模式,那每个使用WebView的app都需要在manifest中定义这些内容,这容易给开发者带来困扰。如果app只是想添加一个WebView来简单的显示网页,开发者可能会困惑为什么要添加这些内容,WebView才能工作。从兼容性上讲,这也会带来问题,这意味着为Android 4.4之前开发的使用了WebView的app无法在新的Android系统上运行。
  2. 多进程会带来更多的内存消耗。
  3. 多进程会带来更多的电量消耗。

    这样说来,Chrome for Android为什么要采用多进程模型呢?其实多进程也有某些优势:

  4. 能够充分利用多核CPU,随着手机的CPU普遍采用四核、八核,多进程优势越加明显;
  5. 安全性,render进程运行在沙箱中,恶意代码无法访问系统底层;
  6. 增强程序的健壮性,某个网页崩溃,不会影响其它网页的浏览。

    为什么chromium webview不采用多进程_第1张图片

你可能感兴趣的:(1.Chromium研究)