分享 vivo 互联网技术干货与沙龙活动,推荐最新行业动态与热门会议。
分类: 架构设计与优化
2019-11-18 11:14:55
本文首发于 vivo互联网技术 微信公众号
链接:
vivo web service是开发团队围绕奇点内核打造出的基于vivo手机平台的web服务引擎,该服务引擎从浏览器产品线中经过多年迭代而出。除了提供可靠的基础Web服务,服务引擎还集成了非常强大的扩展功能。本文从架构方面对该服务引擎进行一次简单剖析,帮助读者对vivo web service有一个整体了解。
在多年的浏览器开发工作中,开发团队逐渐迭代出一款有竞争力的内核产品–奇点内核。从架构上讲奇点内核已经不是一款单纯的系统 WebView 替代产品,它集成了丰富的扩展功能,同时具备高性能、稳定性强的特点。
奇点内核架构示意图
这么丰富的功能如果仅提供给浏览器使用,无疑是大材小用了。
我们举几个例子:
深色模式。这是最近非常火热的功能。然而,从Android Q开始系统WebView才逐渐支持深色模式。这对于在无法升级到Q版本的Android平台的开发者来说,仅使用系统WebView来实现类似的效果,无疑是巨大的挑战。幸运的是,使用奇点内核可以轻松的获取比系统WebView更好的深色模式效果,同时支持按需调整样式,这应该是应用开发者的巨大福音了。
稳定性。系统WebView的崩溃率数据约为0.4%左右,奇点内核在更加复杂的浏览器环境中运行,崩溃率基本保持在0.05%以下,这对长期苦于系统WebView稳定性差问题的应用有很大吸引力。
兼容性。奇点内核提供全平台的兼容能力,使用同样的API应用可以做到全平台上返回同样的执行结果,而不需要考虑Android版本的兼容性问题,节省接入方的开发和维护的工作量。
安全性。基于快速迭代的能力,开发团队能够在第一时间修复WebView暴露的各种风险和漏洞,同时通过数据加密、防劫持等手段提高了Web访问的安全性,这是系统WebView做不到的。
以上优势,对于关注相关点的应用已经有足够的吸引力了。更进一步,在奇点内核的基础上我们将浏览器和部门的其他技术资源整合起来,构建了一个围绕奇点内核的服务平台,我们称为vivo web service。
web service apk架构示意图
其中:
奇点内核以WebView的形式提供出来, API与系统WebView保持一致。
作为奇点内核的后备,Web服务平台提供动态切换奇点WebView到系统WebView的能力。
通过奇点内核,还可以有条件的使用到云端代理(省流加速、内容转码等)、HTTP DNS防劫持能力。
web service可以提供JSBridge、J2V8等扩展能力。
web service可以提供强大的奇点Player,这款自主研发的播放器在播放速度和稳定性方面远超系统提供的MediaPlayer。
我们将以上资源整合后,以奇点内核为核心提供出一套web service sdk出来供接入方使用。由于使用插件化技术,接入方仅需接入200多K的sdk,就可以使用到上述这些功能。
在vivo手机平台上,各个应用使用web service的架构示意图,图中展示了各应用通过sdk可以获取到的web service的各种服务。
注意,这个图仅表示应用间的依赖关系,并非类似于Android平台的层次架构图。web service目前并不是系统framework的一部分,它与其他应用没有区别,就是普通的app而已。
web service架构示意图
前面提到,web service的实现方式是插件化,由sdk和apk两部分构成。接入方通过sdk动态加载web service apk,每个应用在自己的进程空间中使用独自的web service,互不干扰。
应用动态加载web service apk示意图
其中:
web service apk提前被安装到系统中,或者由应用按需下载安装。
应用在使用web service之前使用sdk接口将apk中的类实现动态加载到自己的进程中,就可以使用服务。
应用可以通过API开启或者关闭某些服务,也可以通过服务器配置,每个应用的配置互不干扰。
apk可以通过应用商店进行更新,更新后应用下次启动立刻可以使用到apk的最新特性。
apk支持自升级,可以通过服务器配置是否强制升级为最新版本,作为紧急问题修复的兜底方案。
随着web service的迭代,未来的功能会更加丰富。目前来看,web service可能向以下的几个方向演进。
提供更强大的Web能力。Web能力的提供者是内核,未来我们会通过定期的升级内核,并持续的进行性能和稳定性优化来强化内核能力。
提供更多的扩展功能。未来web service会开发和引入更多、更强大的组件或服务,这些组件或服务依托于Web服务,为接入方提供更多的可选择性。
提供更简洁的接入方式。未来web service中的奇点内核会成为系统的默认webview。第三方应用甚至不需要修改代码,就能使用上web service服务。依托于vivo强大的手机平台优势,web service会有更大的想象空间。
平台应用使用vivo web service示意图