webview 中文文档 下载 App

同源不同体:WebView 和 Chrome 共享内核但数据隔离

Chromium 是共同祖先

WebView 和 Chrome for Android 都是从 Chromium 开源项目派生的:

Google 工程师在 Chromium 上开发新特性时,默认就同时喂给 Chrome 和 WebView——WebView 不需要单独的分支。

两个独立的 APK

编译出来是两个不同的应用:

对比项Chrome for AndroidAndroid System WebView
包名com.android.chromecom.google.android.webview
主进程角色浏览器 UI + 调度中心仅调度中心,无自带 UI
是否提供可交互界面有(地址栏、标签页、设置页)无(界面由宿主 App 决定)
数据目录/data/user/0/com.android.chrome//data/user/0/com.google.android.webview/
Google 签名PlatformPlatform(同一枚)

数据隔离的具体表现

Android 7~9 的特殊时期

Google 曾尝试让 Chrome 兼任 WebView——在 Android 7 (Nougat) 到 9 (Pie) 上,如果设备装了 Chrome,系统会把 Chrome 设为 WebView provider,省出一份 APK 的磁盘占用。但这条路在 Android 10 后被放弃了,原因:

  1. Chrome 体积持续膨胀,兼任 WebView 反而更占
  2. 厂商定制 ROM(小米、华为等)和 Google Play 版本的 Chrome 行为不一致
  3. 用户"禁用 Chrome"导致 WebView provider 意外丢失,引发大规模应用故障

现在 WebView 和 Chrome 各走各的更新节奏,只是共用 Chromium 版本号。

→ 继续阅读:WebView 在应用里的工作方式