亦然莹儿
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
因公司的很多项目都是Android和html5混合开发,会有很多页面的方法需要兼容。需要知道当前Android webview的内核是什么。
1. 介绍
Android WebView的选择有三种方案,分别是
- 使用Android系统自带的WebView
- 使用X5内核的WebView
- 使用基于chrome webkit的crosswalk WebView
如上述三种方案,第1个是最原始的解决方案,第2,3个则分别是腾讯,corsswalk的解决方案
几种方案的对照如下表:
系统自带WebView | Android默认 | 最差 | 优:没有额外的JAR及负担,原生API 缺: 兼容性,性能在不同手机上显示差别很大 | 最差 |
X5 WebView | 腾讯产品,微信,QQ浏览器就是使用X5内核 | 一般 | 优:提供了一个兼容性的解决方案,且微信,QQ浏览器都在用,可信度高 缺: 解决的能力一般,而且某些方面反而加大了开发工作量;而且不支持cordova | 一般 |
crosswalk | 国外为Android提供的一个融合chrome webkit的解决方案 | 最佳 | 优:没有兼容性,性能问题,且支持corodva 缺:18M的包,而且区分不同的arm,x86等CPU | 较佳 |
查看当前版本,可以用WebView访问//html5test.com/ 这个地址,查看具体的类型和版本
系统自带的WebView
2. 更新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源码
android webView 内核对比_w2ndong的专栏-CSDN博客_android webview内核
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
查看Andriod内置浏览器WebView版本
方法一:手机上设置中查看
设置–>应用程序管理–>全部–>Android System WebView
方法二:电脑Chome浏览器的devTools中查看
1、连接设备到电脑,打开Android设备的开发者模式,并勾选USB调试授权PC连接到Android设备。
2、在Chrome浏览器打开:chrome://inspect/#devices
3、在设备端运行进行了如下设置(开启远程调试)的Webview的demo
开启WebView调试:
WebView.setWebContentsDebuggingEnabled(true)方法三:adb指令查看(前提,已安装android sdk环境)
1、连接设备到电脑,打开Android设备的开发者模式,并勾选USB调试授权PC连接到Android设备。
2、打开win+R 输入cmd打开命令窗口,输入指令:adb shell am start -a android.intent.action.VIEW -d //liulanmi.com/labs/core.html
108.0.5359.61 30 11月 2022
107.0.5304.141 26 11月 2022
107.0.5304.105 9 11月 2022
107.0.5304.91 28 10月 2022
107.0.5304.54 26 10月 2022
106.0.5249.126 14 10月 2022
106.0.5249.79 1 10月 2022
106.0.5249.38 18 9月 2022
105.0.5195.124 14 9月 2022
105.0.5195.79 5 9月 2022
105.0.5195.68 1 9月 2022
105.0.5195.35 20 8月 2022
105.0.5195.26 11 8月 2022
105.0.5195.17 6 8月 2022
103.0.5060.129 20 7月 2022
103.0.5060.71 5 7月 2022
103.0.5060.70 30 6月 2022
103.0.5060.53 22 6月 2022
102.0.5005.125 15 6月 2022
102.0.5005.99 10 6月 2022
在做系统修改的过程中,android自带的webview版本不能满足OEM客户的要求,此种现象在android低版本中尤为更甚;因此我们需要自己对webview的版本进行升级。在Android 4.4版本以前,google采用的是webkit内核,也没有把webview作为一个apk独立出来,所以我们升级webview只能再Android 5.0以后; 目前通用的方法就是在浏览器中输入 liulanmi.com/labs/core.html进行查看,我的理解,应该有其他方式,但一直未找到,还望指教。 1637893915(1).jpg //www.apkmirror.com/uploads/?q=android-system-webview 目前我修改过6.0 和10系统,二者存在一定差异,但大同小异,猜测其他版本应该也差异不大 4.编译 4.编译 在调试6.0的时候,网上大部分博客修改的webview.apk都是修改arm64目录下的,导致我一直不能编译出正常的apk文件,最后我发现,在 prebuild统计目录的 Android,mk 文件中有这个配置 最后一行指定了使用的webview.apk在哪个目录下,但是 my_src_arch 这个变量值未找到定义的地方;那就开启盲猜模式,既然arm64目录不行,那就只能是arm目录;实践证明,猜测正确。后来思考一下,我们可以通过打印的方式,来看这个变量值到底是什么! Android程序员面试宝典 android系统定制系列: android系统定制从听说到入门一 android系... 马伟奇阅读 16,652评论 8赞 35 前言 Android 的系统碎片化问题可以说是 Android 系统最大的硬伤了,自这个系统诞生以来十几年过去了,... 环境
Hardware:MTK6737DeviceOS:Android6.0Kernel: Linux3.18Ho... 两种方式,一种是修改/system/framework/framework-res.apk中资源文件,另一种是自定... 自由之海阅读 3,303评论 1赞 50 在之前的公司参与项目开发的时候,虽然不负责系统固件编译脚本的维护,但为了工作的过程中更加的顺利,便学习了一下And...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你... 平台 平台:Mstar Android 8.0 TV 问题 问题:在Browser里面去播放网络视频,或者是播放音... 为什么要进行内存优化:APP运行内存限制,OOM导致APP崩溃。APP性能:流畅性、响应速度和用户体验,因为GC回... 需求因为系统代码中内置的webview内核太旧,性能不满足现在需求。
1.下载对应需要的webview内核 htt... 1:InputChannel提供函数创建底层的Pipe对象 2: 1)客户端需要新建窗口 2)new ViewRo... 本文是Android虚拟机系列文章的最后一篇,会讲解Android上的ART虚拟机。 从Android 5.0(L... [DESCRIPTION] 开关机、重启时间优化: 开机性能优化:是用功能和其它因素多方面平衡的结果,片面追求单方... 提问 1.想修改第三方的资源文件,该怎么处理?例如Google某一个apk中的字符串太长了,影响了美观。 2.为了... 锄禾豆阅读 9,230评论 4赞 2 layout:
wikititle: Android逆向分析笔记categories: Reverse_Engin... 超哥__阅读 10,173评论 1赞 17 概述 __ 分析步骤 通用逆向分析步骤 1.了解该模块正向编程相关方法 2.使用apktool解密apk,得到资源... 萌木盖阅读 3,580评论 0赞
5 今天青石的票圈出镜率最高的,莫过于张艺谋的新片终于定档了。 一张满溢着水墨风的海报一次次的出现在票圈里,也就是老谋... 青石电影阅读 9,355评论 1赞 3 一、jQuery简介 JQ是JS的一个优秀的库,大型开发必备。在此,我想说的是,JQ里面很多函数使用和JS类似,所... 字符串 1.什么是字符串 使用单引号或者双引号括起来的字符集就是字符串。 引号中单独的符号、数字、字母等叫字符。 ... 《闭上眼睛才能看清楚自己》这本书是香海禅寺主持贤宗法师的人生体悟,修行心得及讲学录,此书从六个章节讲述了禅修是什么... 宜均阅读 8,956评论 1赞 26
偶然间从公众号里看见了小白训练营的课。就点进去看了看。刚开始的时候我觉得就是骗人的。后来一想,学费那么少。干嘛...android 升级webview版本,包括6.0系统
webview 内核版本查看方法
下图是我升级过的版本:webview.apk下载地址
该网址需要特殊访问,诸君自己努力吧!修改系统源码,编译
...
<!-- Package name providing WebView implementation. -->
<string name="config_webViewPackageName" translatable="false">com.google.android.webview</string> //此处修改
...
android 10
(注:理论上只替换framework-res.apk即可,但我使用的是3288方案,只替换此项apk,导致系统异常,无法开机;故我把framework下的所有文件都替换为编译出,可正常使用)
...
<webviewproviders>
<!-- The default WebView implementation -->
<webviewprovider description="Android WebView" packageName="com.google.android.webview" availableByDefault="true">
</webviewprovider>
</webviewproviders>
...
(注:在android 10 系统上只替换该项即可使用)调试心得
推荐阅读更多精彩内容