webview 中文文档 下载 App

Android WebView 架构全景图:从 APK 到渲染进程

它是一个 APK,不是系统库

这是理解 WebView 架构的关键设计。从 Android 5.0 开始,WebView 被正式拆成一个独立签名的 APK 文件:

对比之下,Android 4.4 及更早版本里的 WebView 是编译进系统镜像里的静态库——改一个字符就要刷固件,完全不可持续。

三层调用关系

┌──────────────────────────────┐
│ 宿主应用(App)              │  ← 调用 android.webkit.WebView 类
├──────────────────────────────┤
│  Android Framework API       │  ← webkit 包做一层桥接
├──────────────────────────────┤
│ WebView APK(Chromium 内核) │  ← com.google.android.webview
│  · Blink 渲染引擎            │
│  · V8 JavaScript 引擎        │
│  · 网络栈 / 安全沙箱         │
└──────────────────────────────┘

App 开发时写的 WebView webView = new WebView(this) 只是创建了一个 View 容器。真正做渲染的 Chromium 进程跑在 WebView APK 自己的进程里,与宿主 App 进程隔离——这意味着渲染层崩溃不会让整个 App 跟着崩。

进程模型

WebView 使用多进程架构:

这种多进程隔离是 Chromium 的安全基石——渲染进程崩溃只会黑屏,不会影响宿主 App。

版本对应关系

WebView 的大版本号(127 → 128 → 129...)直接对应 Chromium 的大版本号:

Chromium 版本WebView 版本(示例)主要特性
M125125.x隐私沙箱 v3、CSS nesting
M126126.xURL 标准对齐、WebGPU 进一步稳定
M127127.xPopover API、View Transitions API
M128128.xSpeculation Rules API 2

同属一个 Chromium 大版本的 Chrome 和 WebView 在渲染上应该表现一致,但不共享数据。

→ 继续阅读:WebView 与 Chrome 的内核同源但不共享数据