已安装Android系统Webview,但未由应用程序使用


16

我从android平板电脑上的应用程序商店下载并安装了最新版本的android系统WebView(运行5.0.2)。

但是,应用程序仍然使用旧的Webview版本(39.0.0.0)。

如何让他们切换?

有关信息,我尝试禁用旧版本,并在打开使用Webview的应用程序时将其重新启用。


2
出于好奇,您如何知道应用程序正在使用哪个版本的Webview?
DukeSilversJazz

1
我一直在与几个应用程序,如Droidscript和浏览网页视图,并参观了测试whatsmyuseragent
克莱

我已经阅读了Lollipop的资料,这不应该发生。除非制造商用自己的WebViewFactory类替换了它,否则应该使用最新的。您正在运行什么确切的设备/型号和制造商提供的版本?
Mufasa

您好Musafa为什么删除您的答案?
克莱门汀

我使用的低成本平板电脑,我试图在几个品牌(从flipkart digiflip,时间2),我要去尝试对联想TAB 2 A7在未来的日子里
克莱

Answers:


19

如果没有root用户,则无法更改此设置。

系统框架经过硬编码,可以为请求WebView组件的应用程序使用特定的程序包。默认情况下(在AOSP中),它使用value com.android.webview,这是在AOSP构建过程中编译的版本。在制造商修改此组件的设备上,程序包名称可能有所不同。无论如何,为了替换设备随附的WebView,您必须将此值修改为com.google.android.webview

“手动”执行此操作的方法是从设备中提取framework-res.apk文件,对其进行反编译,然后更改config_webViewPackageName资源变量的值。它应该位于/res/values/strings.xml.apk中。完成此操作后,您将需要重新打包所有内容并将新的.apk推送到设备上,以替换旧的.apk。

您可以尝试的另一种方法是安装Xposed框架,然后使用WebViewGoogle模块。如果您使用自定义ROM,则还可以找到一个可以永久修改必要框架组件的程序包(或者默认情况下,可以使用Google的WebView构建该程序包)。

我的假设是存在此限制,部分原因是系统依赖于以某种形式存在的WebView实现,因此如果用户可以对其进行修改,则可能会以奇怪的方式破坏系统。允许应用覆盖系统WebView也会带来安全隐患,例如行为不当的人试图在用户不知情的情况下提供恶意的内容。

需要进一步说明的是:Play商店中首先提供System WebView的原因是Nexus设备(可能还有其他设备)已预先安装并配置为可以使用。实际上,这些设备就是系统WebView。因此,Google能够通过Play商店为这些设备提供WebView更新,这样就不必为了更新浏览器/ WebView而需要完整的系统OTA。Google还以类似的方式将其他组件迁移到Play商店更新,其理由实质上是它更快。电话和通讯录是最近的两种,链接的文章提供了有关Google为什么采用这种方法的更多详细信息。


1
感谢您的解释。但是,这个android系统webview应用程序的用途是什么?
克莱门汀

1
@ClémentineNexus设备(可能还有其他设备)已预先安装并配置为可以使用。实际上,这些设备就是系统WebView。因此,Google能够通过Play商店为这些设备提供WebView更新,这样就不必为了更新浏览器/ WebView而需要完整的系统OTA。Google还以类似的方式将其他组件迁移到Play商店更新,其理由实质上是它更快。
eldarerathis

1
为什么所有运行棒棒糖或更高版本操作系统的平板电脑都不将其用作默认系统WebView,听起来像是浪费!
克莱门汀

1
@ClémentineGoogle对第三方制造商的控制有所限制。他们可能会像Nexus设备一样选择使用Google的封闭源WebView,但出于某些原因,他们可能会选择不使用。我不确定Google如何将原始源代码应用程序许可给OEM的细节,但是这些术语(无论它们可能是什么)可能是制造商做出决定的一个因素。
eldarerathis,2016年

感谢所有这些信息。阐明了我脑海中浮现的许多问题。然后会寻找预装了平板电脑的平板电脑。
克莱
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.