本文首發於 vivo互聯網技術 微信公衆號
連接:
https://mp.weixin.qq.com/s/ovOS0l9U5svlUMfZoYFU9Q
vivo web service是開發團隊圍繞奇點內核打造出的基於vivo手機平臺的web服務引擎,該服務引擎從瀏覽器產品線中通過多年迭代而出。除了提供可靠的基礎Web服務,服務引擎還集成了很是強大的擴展功能。本文從架構方面對該服務引擎進行一次簡單剖析,幫助讀者對vivo web service有一個總體瞭解。web
1. 奇點內核
在多年的瀏覽器開發工做中,開發團隊逐漸迭代出一款有競爭力的內核產品–奇點內核。從架構上講奇點內核已經不是一款單純的系統 WebView 替代產品,它集成了豐富的擴展功能,同時具有高性能、穩定性強的特色。瀏覽器
奇點內核架構示意圖安全
這麼豐富的功能若是僅提供給瀏覽器使用,無疑是大材小用了。服務器
咱們舉幾個例子:微信
- 深色模式。這是最近很是火熱的功能。然而,從Android Q開始系統WebView才逐漸支持深色模式。這對於在沒法升級到Q版本的Android平臺的開發者來講,僅使用系統WebView來實現相似的效果,無疑是巨大的挑戰。幸運的是,使用奇點內核能夠輕鬆的獲取比系統WebView更好的深色模式效果,同時支持按需調整樣式,這應該是應用開發者的巨大福音了。
- 穩定性。系統WebView的崩潰率數據約爲0.4%左右,奇點內核在更加複雜的瀏覽器環境中運行,崩潰率基本保持在0.05%如下,這對長期苦於系統WebView穩定性差問題的應用有很大吸引力。
- 兼容性。奇點內核提供全平臺的兼容能力,使用一樣的API應用能夠作到全平臺上返回一樣的執行結果,而不須要考慮Android版本的兼容性問題,節省接入方的開發和維護的工做量。
- 安全性。基於快速迭代的能力,開發團隊可以在第一時間修復WebView暴露的各類風險和漏洞,同時經過數據加密、防劫持等手段提升了Web訪問的安全性,這是系統WebView作不到的。
2.vivo web service
以上優點,對於關注相關點的應用已經有足夠的吸引力了。更進一步,在奇點內核的基礎上咱們將瀏覽器和部門的其餘技術資源整合起來,構建了一個圍繞奇點內核的服務平臺,咱們稱爲vivo web service。架構
web service apk架構示意圖app
其中:性能
- 奇點內核以WebView的形式提供出來, API與系統WebView保持一致。
- 做爲奇點內核的後備,Web服務平臺提供動態切換奇點WebView到系統WebView的能力。
- 經過奇點內核,還能夠有條件的使用到雲端代理(省流加速、內容轉碼等)、HTTP DNS防劫持能力。
- web service能夠提供JSBridge、J2V8等擴展能力。
- web service能夠提供強大的奇點Player,這款自主研發的播放器在播放速度和穩定性方面遠超系統提供的MediaPlayer。
咱們將以上資源整合後,以奇點內核爲核心提供出一套web service sdk出來供接入方使用。因爲使用插件化技術,接入方僅需接入200多K的sdk,就可使用到上述這些功能。優化
3.vivo web service架構
在vivo手機平臺上,各個應用使用web service的架構示意圖,圖中展現了各應用經過sdk能夠獲取到的web service的各類服務。加密
注意,這個圖僅表示應用間的依賴關係,並不是相似於Android平臺的層次架構圖。web service目前並非系統framework的一部分,它與其餘應用沒有區別,就是普通的app而已。
web service架構示意圖
4.vivo 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支持自升級,能夠經過服務器配置是否強制升級爲最新版本,做爲緊急問題修復的兜底方案。
5.vivo web service將來演進
隨着web service的迭代,將來的功能會更加豐富。目前來看,web service可能向如下的幾個方向演進。
- 提供更強大的Web能力。Web能力的提供者是內核,將來咱們會經過按期的升級內核,並持續的進行性能和穩定性優化來強化內核能力。
- 提供更多的擴展功能。將來web service會開發和引入更多、更強大的組件或服務,這些組件或服務依託於Web服務,爲接入方提供更多的可選擇性。
- 提供更簡潔的接入方式。將來web service中的奇點內核會成爲系統的默認webview。第三方應用甚至不須要修改代碼,就能使用上web service服務。依託於vivo強大的手機平臺優點,web service會有更大的想象空間。
平臺應用使用vivo web service示意圖
更多內容敬請關注 vivo 互聯網技術 微信公衆號
注:轉載文章請先與微信號:labs2020 聯繫。