欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > 【Android Studio】Webview 内核升级得三种方法

【Android Studio】Webview 内核升级得三种方法

2024/11/30 15:43:31 来源:https://blog.csdn.net/weixin_48618536/article/details/141029408  浏览:    关键词:【Android Studio】Webview 内核升级得三种方法

【Android Studio】Webview 内核升级得三种方法

  • 前言
  • X5 腾讯组件
  • crosswalk开源项目
  • webview升级加载的内核(完美解决)
  • 总结

前言

在APP 中进行网页加载,一般采用原生自带的Webview 组件,但在需要加载高版本网页的时候,有时候会遇到加载失败的情况,究其原因主要是内核版本太低,导致加载失败。该组件使用的内核在Android 4.4 (API 19)前 ,主要用得是webkit 的内核;Android 4.4后,直接使用的是Chrome内核。目前Chrome内核已经到了120+,时常会遇到问题,谷歌浏览器可以正常加载网页,但内嵌网页加载就是不行。因此,基于这种情况,考虑进行Webview 组件内核的升级。

可用于检测内核版本的网址: https://liulanmi.com/labs/core.html

关于内核升级,目前主要有3种方法 :

  • 用 X5 腾讯组件,替换Webview 加载网页
  • 用intel 的crosswalk开源项目
  • 在Webview 基础上升级加载的内核

X5 腾讯组件

它跟webview 很像,在进行布局构建时,组件选择 com.tencent.smtt.sdk.WebView ,然后其余方法基本使用跟webview 一样。在腾讯TBS开发指引 里面有很清楚的介绍,而且还可以下载最新的SDK。

<com.tencent.smtt.sdk.WebViewandroid:id="@+id/web"android:layout_width="match_parent"android:layout_height="match_parent"android:fitsSystemWindows="true"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" />

但是运行后会发现,依旧无法加载网页,虽然导入了 SDK 库,但无法进行内核下载,故无法使用。直接访问说明中的内核下载连接,不能访问。在网上找了一圈,是由于X5内核开始收费了,所以该方法无法解决问题

crosswalk开源项目

用这个方案,一开头就碰到问题,crosswalk的官方网站不能进了,那么库也就不能下,刚好碰到Intel 服务器崩了,我都怀疑是不是因为这个原因。后来到是在CSDN上下载了 支持ARM 和X86 的 crosswalk-23.53.589.4.aar ,但导入后,运行是正常了,但显示内核版本更低了,离要求的远远达不到。后来查看了原因,原来是这个项目早就停了…

在这里插入图片描述

<org.xwalk.core.XWalkViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/web"/>

而且这边发现原生的都比它高,当然也有可能跟加载的crosswalk-23.53.589.4.aar版本低有关系吧,由于无法进官网,导致这个也无法确定原因。
在这里插入图片描述

webview升级加载的内核(完美解决)

这个只能说真得是强得离谱,直接用外部下载的内核去进行webview 替换,然后每次初始化内核时,进行加载。而且可以选择arm 或者x86 ,内核版本目前都是120+的,很舒服。webview 使用还是跟之前的一模一样,只是加了内核升级这一过程。

在这里插入图片描述

 <WebViewandroid:id="@+id/webview"android:layout_width="match_parent"android:layout_height="match_parent" />

总结

  • 目前三个方案的demo ,已经都整理,直接可以运行使用。

  • 升级的内核资源已经都下载,方便后续直接内嵌,目前demo 里面是采用在线下载这个方式,当然也是可以的。

  • 在采用在Webview 基础上升级加载的内核 方案时,由于第三库是开源的,我已经从github上下载下来,可以方便阅读理解。

  • 对这些文件的说明,以及研究内核升级过程中借鉴的资料链接,已经都整理在了 说明 中,方便后续查看。

在这里插入图片描述

  • 资源已经上传,有需要自行下载即可。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com