WeexConf 2018乾貨系列|Weex技術演進

隱風   阿里巴巴技術專家html

本文是2018年Weex Conf 中議題《Weex技術演進》的內容文檔整理,主要給你們介紹過去一年裏Weex業務規模不斷擴大,業務複雜度不斷上升,給Weex帶來了哪些技術挑戰,以及Weex在技術架構和設計上作了哪些升級來應對這些挑戰。架構

業務規模框架

e6bc12ce2c7438755ba9659b4048f1c345294488

2017年,Weex的業務規模呈現了爆發式的增加,不但在比較擅長的會場業務彌補了最後1%的頁面,也就是一些富交互、富視覺的頁面,讓店鋪承接頁也所有Weex化,同時更重要的是支持了不少常態化的業務和產品。佈局

技術挑戰性能

c0f9ceec5045000534c83bd77dc9c5e388e40e5c

業務規模的不斷擴大,業務複雜度的不斷上升,給Weex的技術到底帶來了什麼樣的挑戰?優化

  •  交互體驗問題,咱們在2016年作的更多的仍是純展現的活動頁面,而2017年要支持的這些常態化的業務和產品,不少原來就是native的,對於動畫、手勢等交互體驗要求比較高,一些native很是常見的交互效果,在Weex上實現起來挑戰很是大。
  •  內存壓力,愈來愈多的業務Weex化以後,用戶整個點擊路徑都變成了Weex,舉個例子,2017年的雙11預售期,當咱們打開手淘,點擊狂歡城H5,再點店鋪承接頁Weex,點主會場Weex,點分會場仍是Weex,而後分會場、分會場不斷地逛,鏈路中每一個頁面都很是複雜,其中大部分頁面是很長的列表頁,包含了大量的樓層、視頻、動效等複雜組件,總體內存佔用很是高,這就致使整個APP的crash率上升很是明顯。2017年咱們升級了列表渲染架構,針對內存問題重點優化了一次。
  • 性能穩定性,如何把V8引擎升級到JSC來提高JS執行性能,如何能讓JSC在獨立進程運行而不影響主進程穩定性,如何解決JS上下文全局污染問題,如何替換Yoga以解決License問題而又不影響佈局性能等等
  • WeexCore,如何在架構上實現跨平臺和高性能,將一些通用的邏輯下沉到C++
  • 我有幾張阿里雲幸運券分享給你,用券購買或者升級阿里雲相應產品會有特惠驚喜哦!把想要買的產品的幸運券都領走吧!快下手,立刻就要搶光了。

 演進過程動畫

c340db4d6c8e4062fcb7e8fef6dffed1ef62bd14

縱觀Weex一開始誕生到如今,它的技術演進過程能夠總結爲從具象到抽象不斷探索的過程。阿里雲

  • 特殊組件期:最開始Weex亮相的時候是2015年雙11,當時只支持了一個會場頁面。那時候咱們作了很是多的特殊組件,好比tabbar組件,倒計時就作一個countdown組件,跑馬燈就作一個marquee組件。當時的Weex能夠理解爲是一個很是具象的框架,由一大堆特殊組件拼接而成,最後達到了動態化的目的。
  •  偏展現期:到了2016年雙11,咱們要支持整個雙11全部會場,幾千張頁面,繼續使用2015年的方式確定是不行的。因而咱們作了不少偏展現的基礎樣式,好比支持text的基礎樣式,div的基礎樣式,最基本的動畫模塊,存儲等一些基礎且細粒度的模塊等,以及一個相對來講比較高性能的列表組件。
  •  富交互期:到了2017年中,咱們要支持一些固定的產品,一些核心業務,偏展現又知足不了需求了,因而咱們重點去打富交互,支持富文本、手勢、佈局動畫以及一些通用的交互組件。
  • 國際化:到了十一、12月時又來了一波挑戰,咱們要支持Lazada等國際化的APP,因而總體作了一次國際化,好比從右到左的文字排布,好比無障礙、多語言、多端差別化等。
  • 標準化:到了2018年,咱們要作的是標準化,儘量抹平跨端在組件和架構上的不一致性,遵循標準並推動標準,讓Weex變得更加通用。
相關文章
相關標籤/搜索