记录安卓Chrome浏览器闪退解决方案
背景:Chrome浏览器闪退,尝试多个版本都不行,最后通过升级Android System WebView解决。
注意:不建议轻易尝试!
Android System WebView
Android System WebView 是一个系统组件,用于在 Android 应用程序中显示网页内容。它基于 Chromium 浏览器,允许应用在不需要全功能浏览器的情况下渲染和显示网页。
历经多个版本的演变
早期发展
Android 系统最初版本的 WebView 是基于 WebKit 浏览器引擎。WebKit 是一个开源的浏览器引擎,广泛用于早期的浏览器,如 Safari 和 Chrome 的早期版本。
WebView 的目标是让应用能嵌入和显示网页内容,同时保持与 Android 操作系统的紧密集成。
Chromium 集成
从 Android 4.4(KitKat)开始, WebView 组件逐步迁移到 Chromium 引擎。Chromium 是一个开源的浏览器项目,作为 Google Chrome 的基础,提供了更先进的网页渲染能力和更好的性能。
这种迁移带来了对现代网页技术的更好支持,比如 HTML5 和 CSS3。
独立更新
从 Android 5.0(Lollipop)开始, WebView 组件被拆分为独立的应用,可以通过 Google Play 商店进行单独更新。这使得 WebView 可以更频繁地更新,而不必依赖于系统更新。
用户和开发者可以更快速地获取最新的安全补丁和功能改进。
Chrome浏览器闪退
软件闪退,那是因为 WebView 太旧或国产手机厂商魔改不兼容国际APP导致。
更新
通过Play商店更新Android System Webview版本,更新后我的问题得到解决;设置-开发者选项-WebView实现 能看到版本号和切换。
一般来讲不建议自己手动更新,因为国内开发环境使用的安卓系统是定制版的,如果更新太勤,软件开发商没有对新版本做兼容优化,会有几率导致一些使用这个组件的软件闪退,不兼容。
不更新:国际APP可能闪退,更新:国内APP可能闪退
替换
部分国产手机厂商自己改了一个 WebView ,并改了包名,然后修改了系统去调用他们改过的那个 WebView ,而不用Google提供的 WebView 。所以在应用商店升级 WebView 没效果,系统根本不调用。
一般,厂商改过的 WebView 包名叫 com.android.webview ,而应用商店更新的叫 com.google.android.webview 。要用上更新的 WebView ,就必须让系统调用Google的 WebView ,而不是厂商自己改过的那个。
下面是解决方法,注意本人未亲自验证,仅猜测,请谨慎尝试:
通过Play商店或其他途经手动安装Android System Webview,安装或许需要root权限。安装成功后,通过设置-开发者选项-WebView实现切换刚刚安装的版本。
参考文献:
[1]www.bilibili.com/read/cv3312… [2]bbs.oneplus.com/thread/5020…