赞
踩
因公司的很多项目都是Android和html5混合开发,会有很多页面的方法需要兼容。需要知道当前Android webview的内核是什么。
Android WebView的选择有三种方案,分别是
如上述三种方案,第1个是最原始的解决方案,第2,3个则分别是腾讯,corsswalk的解决方案
几种方案的对照如下表:
方案 | 方案说明 | 实际效果 | 优缺点 | html5test分数 |
---|---|---|---|---|
系统自带WebView | Android默认 | 最差 | 优:没有额外的JAR及负担,原生API 缺: 兼容性,性能在不同手机上显示差别很大 | 最差 |
X5 WebView | 腾讯产品,微信,QQ浏览器就是使用X5内核 | 一般 | 优:提供了一个兼容性的解决方案,且微信,QQ浏览器都在用,可信度高 缺: 解决的能力一般,而且某些方面反而加大了开发工作量;而且不支持cordova | 一般 |
crosswalk | 国外为Android提供的一个融合chrome webkit的解决方案 | 最佳 | 优:没有兼容性,性能问题,且支持corodva 缺:18M的包,而且区分不同的arm,x86等CPU | 较佳 |
查看当前版本,可以用WebView访问http://html5test.com/ 这个地址,查看具体的类型和版本
系统自带的WebView
下载对应你Android系统的chrome内核版本: Google个版本Webview下载(注意:可惜的是这个地址需要翻墙才行)
这里还要注意下载的webview.apk对应你的系统版本及架构(比如我的系统是arm64 的Android 7.1.1),下载时注意下图:
如果你编译的系统架构是arm64的就将下载下来的webview.apk替换system\app\webview\prebuilt\arm64里的webview.apk。(不同的手机操作系统,具体的路径不同)。
修改默认的包名:/frameworks/base/core/res/res/xml/config_webview_packages.xml ,由com.android.webview 修改成com.google.android.webview
重新编译系统源码即可。
注意: 不要用Chrome浏览器验证,因为Chrome浏览器默认自带内核的,它不使用Android系统自带Webview内核。比如下图是我装了Chrome浏览器后用命令测试结果(其使用的是Chrome自带的81内核,而不是我系统更新的72内核):
如何更新Android源码中的Webview内核_Xiaoma_Pedro的博客-CSDN博客_android webview源码
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。