webview 中文文档 下载 App

从 WebKit 到 Chromium 再到独立 APK:4.3→5.0 解耦是最关键的转变

Android 4.4 KitKat:第一次换内核

Android 4.4 (2013) 之前的 WebView 基于旧 WebKit。旧 WebKit 的问题:

4.4 KitKat 把内核换成了 Chromium 30,这是当时最大的单一 WebView 升级。但此时的 WebView 仍然编译进系统镜像——Chromium 的代码被并入 Android 源码树,没有独立的 APK 文件。

这意味着:想更 Chromium?刷固件。

Android 5.0 Lollipop:正式拆成 APK

2014 年 Lollipop 是真正的转折点——Google 把 WebView 拆成一个独立 APK:

为什么这是关键?因为从此以后:

  1. 普通用户不用刷系统就能拿到 Chromium 的安全补丁
  2. 功能更新可以跟着 Chromium 的节奏(2~3 月一个大版本),不用等 Android 的年度发布
  3. Google 开始可以强制推送安全补丁,厂商 ROM 无法阻止(毕竟是系统签名的 APK)

那签名呢?

拆包之后签名策略有微妙变化:

开发者感受到的变化

5.0 之后,App 开发者第一次可以假定 WebView 具备 Chromium 能力,不再需要写两套渲染代码(一套给旧 WebKit WebView,一套给浏览器)。这对微信、支付宝、游戏开发商来说是巨大的利好——它们开始全面押注 WebView 内嵌。

历史的注脚

这次解耦被 Chromium 官方博客称为 "The most significant change to WebView ever"——至今仍是 WebView 架构的基石。之后的所有更新(Chrome 兼任时期、拆回独立等)都是这个架构基础上的调整。

→ 继续阅读:7~9 Nougat/Oreo/Pie 的 Chrome 兼任时期