【LiteApp系列】愛奇藝小程式架構淺析
前言
上一篇文章已經講述了何為小程式,地址如下:
此篇主要講一下其架構設計。
對WebView的優化
傳統的WebView使用過程如下:
從圖中可以看到,傳統的WebView在使用的時候,會有較長時間處於無法操作的狀態。(不一定是白屏,有的可以使用引導圖之類)
小程式主要從以下幾個方面進行了優化:
1、在APP或者說程式啟動的時候就在後臺做完WebView的初始化工作,這樣在使用的時候就可以節省等待初始化的時間。
2、新增了對網路框架的快取功能,這樣在第一次之後載入的時候就不需要重新到網路去下載,直接本地讀取就可以了。
3、使用vue.js框架,將VDom操作與渲染分離。在android native提前啟動JavaScriptCore用來負責VDom的構建和找Diff等工作,而WebView只需要負責渲染即可。這樣在WebView載入其他JS程式碼的時候,JavaScriptCore就可以開始構建VDom。
優化之後的WebView的使用過程如下:
系統架構
下圖摘自github:
上圖摘自官方github開源專案,主要有以下幾個要點:
1、JS程式碼主要有兩個框架JSBridger和VUE。VUE框架負責主要的業務邏輯和介面,JSBridger主要負責與android native的互動。
2、JS執行在android native上,負責VDOM Diff相關工作。WebView則主要只負責渲染。
3、對Webview或者是native UI的事件觸發開源通過JsBridger來與JS進行互動,再而更新WebView或者是native UI。
更多內容可以檢視github官方開源專案:
https://github.com/iqiyi/LiteApp
相關文章
- 【LiteApp系列】何為愛奇藝小程式?APP
- Underscore 整體架構淺析架構
- 淺析小程式外掛
- iOS MVC、MVVM、MVP架構模式淺淺析iOSMVCMVVMMVP架構模式
- Linux系統——架構淺析Linux架構
- 淺析HDFS架構和設計架構
- MyBatis(十一):MyBatis架構流程淺析MyBatis架構
- 微服務架構專案淺析微服務架構
- 淺析Kubernetes架構之workqueue架構
- 淺析大型網站的架構(轉)網站架構
- 【深入淺出jQuery】原始碼淺析–整體架構jQuery原始碼架構
- 淺析Nordic nRF5 SDK例程架構架構
- 雲端高效能技術架構淺析架構
- [轉載]淺析大型網站的架構網站架構
- 微信小程式的require機制淺析微信小程式UI
- 淺析雲原生應用安全組織架構架構
- 程式碼 or 指令,淺析ARM架構下的函式的呼叫過程架構函式
- 淺析觸手可及的微信小程式微信小程式
- 微服務開發攻略之淺析微服務架構微服務架構
- 愛奇藝直播 - 春晚直播業務API架構API架構
- [轉] 淺析x86架構中cache的組織結構架構
- 【LiteApp系列】埋點的設計APP
- 阿里P8級架構師淺析秒殺架構設計實踐思路阿里架構
- 淺析雲端儲存的TCS和LCA兩大架構架構
- LLM大模型向量資料庫技術架構淺析大模型資料庫架構
- Spring-Security-OAuth2架構及原始碼淺析SpringOAuth架構原始碼
- 分散式網站架構後續:zookeeper技術淺析分散式網站架構
- webpack系列--淺析webpack的原理Web
- Nginx架構賞析Nginx架構
- Webpack基本架構淺析Web架構
- 愛奇藝小程式陪你嗨一夏
- 淺析 vSAN 磁碟組架構和快取盤的“消亡”架構快取
- 淺析專網通訊領域的前端架構設計前端架構
- 深入淺出etcd系列Part 1 – etcd架構和程式碼框架架構框架
- 小程式渲染架構設計架構
- [Docker應用系列·1]淺析JedisPoolDocker
- 淺析大規模DDOS防禦架構-應對T級攻防架構
- 探索小程式底層架構原理架構