Android webview版本

Android webview版本

亦然莹儿

Android webview版本
于 2021-12-16 17:07:51 发布
Android webview版本
7088
Android webview版本
收藏 1

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

因公司的很多项目都是Android和html5混合开发,会有很多页面的方法需要兼容。需要知道当前Android webview的内核是什么。

1. 介绍

Android WebView的选择有三种方案,分别是

  1. 使用Android系统自带的WebView
  2. 使用X5内核的WebView
  3. 使用基于chrome webkit的crosswalk 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 webview版本

2. 更新Webview内核

  1. 下载对应你Android系统的chrome内核版本: Google个版本Webview下载(注意:可惜的是这个地址需要翻墙才行)
    这里还要注意下载的webview.apk对应你的系统版本及架构(比如我的系统是arm64 的Android 7.1.1),下载时注意下图:

    Android webview版本

    如果你编译的系统架构是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内核

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 https://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版本,包括6.0系统

在做系统修改的过程中,android自带的webview版本不能满足OEM客户的要求,此种现象在android低版本中尤为更甚;因此我们需要自己对webview的版本进行升级。在Android 4.4版本以前,google采用的是webkit内核,也没有把webview作为一个apk独立出来,所以我们升级webview只能再Android 5.0以后;

webview 内核版本查看方法

目前通用的方法就是在浏览器中输入 liulanmi.com/labs/core.html进行查看,我的理解,应该有其他方式,但一直未找到,还望指教。
下图是我升级过的版本:

Android webview版本

1637893915(1).jpg

webview.apk下载地址

https://www.apkmirror.com/uploads/?q=android-system-webview
该网址需要特殊访问,诸君自己努力吧!

修改系统源码,编译

目前我修改过6.0 和10系统,二者存在一定差异,但大同小异,猜测其他版本应该也差异不大

android 6.0
  1. 替换 external\chromium-webview\prebuilt\arm 目录下的webview.apk 我们下载的名称并不是webview.apk;这里要重命名为webview.apk
  2. 编译
  3. 修改 \frameworks\base\core\res\res\values\config.xml 文件,将其中的 com.android.webview 修改为 com.google.android.webview
...
 <!-- Package name providing WebView implementation. -->
    <string name="config_webViewPackageName" translatable="false">com.google.android.webview</string> //此处修改
...

4.编译

  1. 将系统中的/system/app/webview/webview.apk 替换成编译出的webview.apk
  2. /system/framework/framework-res.apk 替换成编译出的 framework-res.apk
    (注:理论上只替换framework-res.apk即可,但我使用的是3288方案,只替换此项apk,导致系统异常,无法开机;故我把framework下的所有文件都替换为编译出,可正常使用)
android 10
  1. 替换 external\chromium-webview\prebuilt\arm64 目录下的webview.apk ,注意这里是 arm64
  2. 编译
  3. 修改 \frameworks\base\core\res\res\xml\config_webview_packages.xml 文件,注意这里修改的文件路径不同
...
<webviewproviders>
    <!-- The default WebView implementation -->
    <webviewprovider description="Android WebView" packageName="com.google.android.webview" availableByDefault="true"> 
    </webviewprovider>
</webviewproviders>
...

4.编译

  1. 将系统中的/system/app/webview/webview.apk 替换成编译出的webview.apk
  2. /system/framework/framework-res.apk 替换成编译出的 framework-res.apk
    (注:在android 10 系统上只替换该项即可使用)

调试心得

在调试6.0的时候,网上大部分博客修改的webview.apk都是修改arm64目录下的,导致我一直不能编译出正常的apk文件,最后我发现,在 prebuild统计目录的 Android,mk 文件中有这个配置

LOCAL_MODULE_TARGET_ARCH := arm arm64 mips x86 x86_64
my_src_arch := $(call get-prebuilt-src-arch,$(LOCAL_MODULE_TARGET_ARCH))
LOCAL_SRC_FILES := prebuilt/$(my_src_arch)/webview.apk

最后一行指定了使用的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

  • 偶然间从公众号里看见了小白训练营的课。就点进去看了看。刚开始的时候我觉得就是骗人的。后来一想,学费那么少。干嘛...