今天公司有台android 5.1的的设备,其系统webview版本太低(39.0),给我手动升级了一下webview,顺便总结一下
一、前言
从Android4.4系统开始,Chromium内核取代了Webkit内核,正式地接管了WebView的渲染工作,Chromium在Android上面的实现是Android System WebView,
从Android5.0系统开始,WebView移植成了一个独立的apk,可以不依赖系统而独立存在和更新,所以从网上搜索Android System WebView这个apk即可下载更新(今天2020.01.07,最新版75.~)。但是这个apk安装后在系统注册的包名是
com.google.android.webview,而Android5~6的系统设置的默认webview包名是com.android.webview,这个配置信息在frameworks/base/core/res/res/values/config.xml里
<string name="config_webViewPackageName" translatable="false">com.android.webview</string>。
所以我们升级webview(安卓5-6)只需要干两件事,即1、下载安装Android System WebView.apk.2、修改系统配置的默认webview包名。第一步非常简单,第二步比较复杂,还要root。
二、具体操作
(安装了Android System WebView.apk
)
1、首先root,不同手机不一样,不过低版本的安卓都应该能容易root成功。我用的是网上搜的kingRoot的一款apk,装在手机上一键root,链接如下http://www.z4root.cn/yijianrootshouji/2013-12-23/784.html。查看是否root成功,可以通过usb调试,使用adb shell下, 输入su,看有没有反应
2、已安装的系统修改配置相当复杂,可能还需要重新编译。故看到网上一个方法,在xposed平台下有一个叫WebViewGoogle的模块,就是专门修改默认webview包名为新版的。所以安装这个模块就行。
方法如下:首先安装酷安APP,搜索xposed并安装,然后再在xposed中搜索WebViewGoogle安装。不在xposed软件里安装它也可以(但得有xposed才能生效),下载链接https://repo.xposed.info/module/net.typeblog.webview。安装后还得在xposed的模块里面启用该模块。以上安装过程重启几次和启动慢是正常现象。安装完成后再重启,不出意外的话,打开自带浏览器,在usb调试里就可以看到webview是新版的了
附:1、root是比较危险的操作,请小心谨慎
2、ubuntu下手机adb可调试:先lsusb,再插上手机lsusb,找出手机,找到显示的设备ID,如0e8d:201d,再sudo nano /etc/udev/rules.d/70-android.rules,添加如(对应id修改)SUBSYSTEM=="usb", ATTR{idVendor}=="0e8d", ATTRS{idProduct}=="201d", MODE="0666", GROUP="plugdev",保存,再nano ~/.android/adb_usb.ini,添加0x0e8d,
再adb kill-server, adb devices就可以看到设备了,再adb shell , su,试试有没有变成#输入
3、一加手机USB调试,需选择ptp连接模式,否则报Pending authentication: please accept debugging session on the device
4、安卓7以上直接更新Android System WebView
apk即可,无需root。小米手机要更新webview要先在开发者选项中关闭miu优化。小米浏览器,支付宝等都是有自己的webview的,不会受到影响。