新的代码库显示Android 15将可以更好地处理WebView崩溃问题
内容提要
Android System WebView是安卓系统的核心组件之一,用于加载网页内容。2021年出现异常导致应用程序崩溃,谷歌发布新版本解决。谷歌计划在Android 15中将WebView API放入新模块WebViewBootstrap,用于紧急情况下快速更新。新模块将添加功能,检测无法启动的WebView并弹出通知。到Android 16时OEM将强制执行该模块。
延伸解读
WebView 崩溃的根源与模块化局限
文章指出,尽管 WebView 已通过 Google Play 模块化更新,但集成 WebView 核心框架的 API 仍由 OEM 处理,谷歌无法直接更新。这正是 WebView 异常时应用反复崩溃的原因之一。Android 15 将 WebView API 放入 WebViewBootstrap 模块,正是为了绕过 OEM 依赖,实现紧急情况下快速更新。
新模块的应急定位与开发者影响
谷歌计划将大量 WebView API 代码放入 WebViewBootstrap,但仅用于紧急情况,如 WebView 彻底无法启动时。常规情况下不会修改 API 内容,因此开发者几乎不需要重新适配。这降低了开发者的维护负担,同时保留了快速修复严重问题的能力。
从崩溃到通知:用户体验的改进
文章提到,新模块将添加检测 WebView 无法启动的功能,并弹出友好通知提醒用户,而不是让应用直接崩溃。这有助于用户理解问题,避免反复崩溃带来的困惑。该功能随 Android 15 发布,但 OEM 可选执行,到 Android 16 将强制要求。
Q&A
Android System WebView 是什么?它在安卓系统中起什么作用?
Android System WebView 是安卓系统的核心组件之一,本质上是一个基于 Chromium 开发的浏览器组件,用于帮助开发者在应用程序中加载网页内容。
2021 年 WebView 出现了什么问题?后来是如何解决的?
2021 年 WebView 组件出现异常,导致许多调用 WebView 的应用程序反复崩溃。谷歌随后发布了 WebView 的新版本解决了该问题,因为 WebView 可以通过 Google Play 更新,所以解决起来不算太麻烦。
为什么 WebView 崩溃会导致整个应用崩溃,而不是弹出错误提示?
因为用于集成 WebView 核心框架的 API 是由 OEM 处理的,谷歌无法直接更新这部分。当 WebView 发生异常时,应用无法检测到并弹出通知,而是直接导致整个应用反复崩溃。
谷歌在 Android 15 中为 WebView 引入了什么新模块?它的作用是什么?
谷歌在 Android 15 的 AOSP 中添加了名为 WebViewBootstrap 的新 Project Mainline 模块,用于对系统组件进行模块化更新,而不依赖于常规的 OTA 更新。该模块允许在紧急情况下快速更新 WebView API,例如当 WebView 彻底无法启动时。
WebViewBootstrap 模块会带来哪些新功能?开发者需要重新适配吗?
新模块将添加功能,用于检测 WebView 组件无法启动,并在检测到无法启动时弹出友好通知提醒用户。谷歌并不准备在常规情况下使用 WebView API 修改内容,该功能仅预留用于紧急情况,因此 API 不会有明显变更,开发者几乎不需要重新进行适配。
OEM 在 Android 15 和 Android 16 中对 WebViewBootstrap 模块的执行要求有何不同?
在 Android 15 中,OEM 可以选择是否执行该模块;而到 Android 16 时,谷歌将要求 OEM 强制执行该模块,以便后续可以处理紧急问题。