性能與動(dòng)態(tài)兼得的Weex

Weex被阿里定義為“移動(dòng)端的高性能動(dòng)態(tài)化方案”虫腋,并稱之為“性能與動(dòng)態(tài)兼得”湘纵。聽上去似乎很玄乎镶蹋,那么Weex究竟如何凹联?且看下面的內(nèi)容沐兰。

移動(dòng)開發(fā):性能與動(dòng)態(tài)兼得

目前的移動(dòng)開發(fā)者面臨的最大痛點(diǎn)就是面對極其復(fù)雜的環(huán)境,對此蔽挠,莊卓然給出一個(gè)公式住闯,移動(dòng)開發(fā)的復(fù)雜度=應(yīng)用數(shù)量×平臺數(shù)量×要適配的各種各樣的機(jī)型。

如何解決這個(gè)問題呢象泵?在解決問題之前泌豆,首先要對移動(dòng)開發(fā)的未來有著精準(zhǔn)的研判炕桨。

阿里認(rèn)為土陪,移動(dòng)開發(fā)的未來必定更加平衡光坝,也就是說必須是性能與動(dòng)態(tài)兼得,如此忽孽,才能夠滿足未來用戶的需求绑改。另外谢床,移動(dòng)開發(fā)在未來也必定是開放互聯(lián)的狀態(tài),移動(dòng)互聯(lián)網(wǎng)將來肯定是基于更加大眾化的技術(shù)體系厘线,沒有平臺之間的隔閡识腿,而且簡單易用。

所以造壮,阿里結(jié)合移動(dòng)開發(fā)的現(xiàn)狀并圍繞其愿景推出了Weex解決方案渡讼。



事實(shí)上,在去年的雙11活動(dòng)中耳璧,Weex就得到了實(shí)戰(zhàn)的驗(yàn)證成箫,且表現(xiàn)不俗。時(shí)至今日旨枯,Weex已經(jīng)被阿里技術(shù)團(tuán)隊(duì)多次運(yùn)用蹬昌,并“創(chuàng)造”出各種豐富的場景,整體的表現(xiàn)非常優(yōu)異攀隔。

把移動(dòng)端所有界面拆分成各個(gè)page皂贩,然后中間設(shè)置有路由的控制邏輯,同時(shí)昆汹,將移動(dòng)端各種各樣的能力通過各種API提供給開發(fā)者明刷。這是阿里對移動(dòng)開發(fā)模型的理解。

Weex通過標(biāo)準(zhǔn)化的東西筹煮,包括HTML遮精、CSS和JS這些前端非常快速易用好學(xué)的語法作為開發(fā)體驗(yàn)败潦,提供給開發(fā)者。另外准脂,Weex的語法設(shè)計(jì)尊重還Web的標(biāo)準(zhǔn)劫扒。

Weex的性能、擴(kuò)展和兼容能力如何狸膏?


Weex設(shè)計(jì)之初就考慮到在三端(iOS沟饥、安卓和H5)上能夠得到展現(xiàn)。在最上面的DSL湾戳,阿里一般稱之為Weex文件(.we)贤旷,通過Transformer轉(zhuǎn)換成js-bundle,再部署到服務(wù)器砾脑,這樣服務(wù)端就完成了幼驶。在客戶端,第一層是JS-Framework韧衣,最后到RenderRengine盅藻。
輸入是Virtual DOM輸出是native或者H5 view购桑,還原成內(nèi)存中的樹型數(shù)據(jù)結(jié)構(gòu),再創(chuàng)建view氏淑,把事件綁定在view上勃蜘,把view基本屬性設(shè)上去。Weex Render會分三個(gè)線程假残,不同的線程負(fù)責(zé)不同的事情缭贡,讓JS線程優(yōu)先保障流暢性。

Weex的性能辉懒、擴(kuò)展性以及可用性究竟怎樣呢匀归?

性能方面,阿里對Weex做了多次壓測耗帕。在加載時(shí)間穆端、幀率、內(nèi)存消耗仿便、CPU占用(包括靜默和峰值)等多個(gè)方面体啰,Weex都表現(xiàn)得非常出色。


在談及性能之時(shí)嗽仪,幀率和加載時(shí)間幾乎都會被提及荒勇,但是往往忽略了一個(gè)事實(shí),那就是Native UI開發(fā)中通常沒有JS資源在服務(wù)器端加載闻坚。Weex會把JS內(nèi)置到客戶端里沽翔,以免除下載的問題,從而更為有效地提升性能窿凤。

兼容性是Weex非常重視的問題仅偎,對此,阿里是這樣來解決的雳殊。

首先是單測保證橘沥,包括JS和H5的單測,保證最基礎(chǔ)的UT(Unit Test)本身所帶來的含義夯秃。

其次是UI的自動(dòng)化座咆,分為兩個(gè)部分,一是截圖對比仓洼,將最終產(chǎn)生的結(jié)果和意料中的結(jié)果進(jìn)行圖形對比介陶;二是Layout Results,包括Model以及其他的布局類的色建,通過基本的信息完成測試的過程哺呜。



在擴(kuò)展性方面,Weex可以寫很多頁面镀岛,而且通過路由機(jī)制幫助開發(fā)者將頁面進(jìn)行串聯(lián)弦牡。

Weex已開放內(nèi)測友驮,可用性方面正在逐步完善。包括Playground驾锰、調(diào)試工具卸留、腳手架、AppHub椭豫、編輯器等多個(gè)方面耻瑟,一些工作已經(jīng)完成就緒,絕大部分工作將在5赏酥、6月份完成喳整。

最后,是Weex的三種工作模式裸扶。

1.全頁模式

目前支持單頁使用或整個(gè)App使用Weex開發(fā)(還不完善框都,需要開發(fā)Router和生命周期管理),這是主推的模式呵晨,可以類比RN魏保。

2.Native Component模式

把Weex當(dāng)作一個(gè)iOS/Android組件來使用,類比ImageView摸屠。這類需求遍布手淘主鏈路谓罗,如首頁、主搜結(jié)果季二、交易組件化等檩咱,這類Native頁面主體已經(jīng)很穩(wěn)定,但是局部動(dòng)態(tài)化需求旺盛導(dǎo)致頻繁發(fā)版胯舷,解決這類問題也是Weex的重點(diǎn)刻蚯。

3.H5 Component模式

在H5種使用Weex,類比WVC需纳。一些較復(fù)雜或特殊的H5頁面短期內(nèi)無法完全轉(zhuǎn)為Weex全頁模式(或RN)芦倒,比如互動(dòng)類頁面、一些復(fù)雜頻道頁等不翩。這個(gè)痛點(diǎn)的解決辦法是:在現(xiàn)有的H5頁面上做微調(diào),引入Native解決長列表內(nèi)存暴增麻裳、滾動(dòng)不流暢口蝠、動(dòng)畫/手勢體驗(yàn)差等問題。

另外津坑,WVC將會融入到Weex中妙蔗,成為Weex的H5 Components模式。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末疆瑰,一起剝皮案震驚了整個(gè)濱河市眉反,隨后出現(xiàn)的幾起案子昙啄,更是在濱河造成了極大的恐慌,老刑警劉巖寸五,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件梳凛,死亡現(xiàn)場離奇詭異,居然都是意外死亡梳杏,警方通過查閱死者的電腦和手機(jī)韧拒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來十性,“玉大人叛溢,你說我怎么就攤上這事【⑹剩” “怎么了楷掉?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長霞势。 經(jīng)常有香客問我烹植,道長,這世上最難降的妖魔是什么支示? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任刊橘,我火速辦了婚禮,結(jié)果婚禮上颂鸿,老公的妹妹穿的比我還像新娘促绵。我一直安慰自己,他們只是感情好嘴纺,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布败晴。 她就那樣靜靜地躺著,像睡著了一般栽渴。 火紅的嫁衣襯著肌膚如雪尖坤。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天闲擦,我揣著相機(jī)與錄音慢味,去河邊找鬼。 笑死墅冷,一個(gè)胖子當(dāng)著我的面吹牛纯路,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播寞忿,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼驰唬,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起叫编,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤辖佣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后搓逾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體卷谈,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年恃逻,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了雏搂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,789評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡寇损,死狀恐怖凸郑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情矛市,我是刑警寧澤芙沥,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站浊吏,受9級特大地震影響而昨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜找田,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一歌憨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧墩衙,春花似錦务嫡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至挫剑,卻和暖如春去扣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背樊破。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工愉棱, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人哲戚。 一個(gè)月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓羽氮,卻偏偏與公主長得像,于是被迫代替她去往敵國和親惫恼。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容