Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WebView] Android 内核调研报告 #22

Open
jschyz opened this issue Sep 4, 2018 · 0 comments
Open

[WebView] Android 内核调研报告 #22

jschyz opened this issue Sep 4, 2018 · 0 comments

Comments

@jschyz
Copy link
Owner

jschyz commented Sep 4, 2018

内核碎片化

Android WebView 内核是跟系统版本绑定的。要想获取更多的H5新特性,就得相应升级系统。

系统版本 启动次数占比
6.0.1 25.43%
5.1 16.52%
5.1.1 14.15%
6.0 12.55%
7.0 10.89%
7.1.1 10.23%
4.4.4 4.32%
5.0.2 2.87%
4.4.2 1.1%
other 1.93%
抽样时间:2017.9.12 ~ 2017.9.19 数据来源:内部 image

按照操作系统划分,占比如下

操作系统 系统版本 启动次数占比
Kitkat 4.4.2, 4.4.4 5.42%
Lollipop 5.0.2, 5.1, 5.1.1 33.54%
Marshmallow 6.0, 6.0.1 37.98%
Nougat 7.0, 7.1.1 21.12%
other   1.93%

HTML5 新特性支持

HTML5 标准支持情况,此指标代表 feature 支持情况,不代表性能测试。

浏览器特性支持得全,用户才能体验到某些高级功能。

系统 机型 自带 in WebView X5 Blink
7.1.1 MI6 434 504 504
7.0 KNT-AL20 431 492 481
5.1.1 Nexus 5 512 496 484
5.1 OPPO R9m 496 466 484
4.4.4 MI 4LTE 434 370 484
4.2.2 MK260 289 289 484
         
测试方式:http://html5test.com/测试机型:大部分均为测试机 inTest image

从上表可以看出:

X5 Blink 内核固定版本内核情况下,跑分一致。
in WebView 跑分随着系统版本趋势增长。
这些 feature 具体体现在业务中:

  • input[type=date|number] 功能样式不统一;
  • 多音频播放问题;
  • 新 API 支持 fetch / promise;
  • ES6 语法支持;
  • 上传图片前压缩处理FileReader 支持;
  • CSS 新排版引擎支持。

抽象出来则是 HTML标准、JS 新API、CSS、SVG、Others ,为解决这些兼容性体验问题,开发者们嚼劲脑汁。

WebRTC 支持

Android 系统版本 5.0 以上,WebView对 WebRTC 特性进行支持。

由下表测试结果得知,国内厂商对WebView内核进行了精简或替代,导致 WebRTC 新特性支持不一。

X5 Blink在腾讯TBS团队支持下,在低版本平台也对 WebRTC 有良好的兼容性。减少了系统内核的碎片化问题。

系统 机型 默认浏览器 in WebView X5 Blink
7.1.1 MI6 NO NO YES
7.0 KNT-AL20 NO NO YES
6.0.1 SM-G9250 YES NO YES
6.0.1 R9s NO NO YES
5.1.1 Nexus 5 NO NO YES
5.1 OPPO R9m NO NO YES
4.4.4 MI 4LTE NO NO YES
4.2.2 MK260 NO NO YES
         
iOS 11.0   YES NO NO
遗憾的是 WKWebView 还不支持 getUserMedia
测试方式:https://jeromeetienne.github.io/AR.js/three.js/examples/mobile-performance.html

附阅读:

X5 浏览器内核调研报告

Android碎片化与兼容性问题的元凶

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant