深刻Weex系列(八)之Weex SDK架構分析

一、前言

通過前面幾篇Weex源碼分析系列文章,相信你們對Weex是什麼、Weex能帶來什麼、Weex是如何工做的等幾個問題已經有了本身的答案。git

備註:github

  • 本文會很是簡潔,由於是站在前面幾篇源碼分析文章的肩膀之上進行歸納總結。若是還有疑惑的話強烈建議你們回過頭再去看看以前的文章;
  • 基於Weex0.16.0版本;

二、Weex的核心能力

誠然,Weex爲了方便開發者提供了各類方便的組件便於傻瓜式開發,但隨着咱們對Weex剝絲抽繭,咱們更能學習到Weex的精髓:如何以新思路解決老難題?微信

Weex動態化、跨平臺、結合Native的設計不只解決了須要頻繁發版的問題,同時在必定程度上能夠節省人力成本。在技術選型上RN與Weex的思路都沒有問題,也都堅信這條道路均可以走得通。對於兩者最核心的能力就是JS引擎與Native的交互能力,別的類如Js框架、組件支持、工具鏈、擴展、生態等實際上都是附屬,都是一項技術的附帶產物,爲了贏得開發者的支持而作的。框架

對於Weex而言其實只要保留下Js與Native的交互能力,別的各類產物咱們均可以本身實現一份,思路不會有大的差異。工具

因此你們更應該由一項新技術的學習逐漸過渡到真正理解技術背後的本質,若是是咱們本身實現咱們的思路是什麼樣的,新技術有哪些咱們能夠借鑑的地方!源碼分析

三、Weex框架分析

你們回憶下關於各個組件源碼分析的文章中:學習

  • 首先離不開的就是JSBridge,這是JS與Native交互的橋樑;對應於通訊層;
  • JS發回來的每個指令都會先通過各類Manager的處理,而後封裝成相應的Action;對應框架層;
  • 注意不少操做都是在特定的線程好比WeeXDomThread,與之相對應的有線程的切換;對應於線程通信層;
  • 最後每個JS指令執行的時候都會對應於一個組件:Module、Component、Adapter等;對應於組件層;

四、Weex框架圖

Weex框架圖

咱們再對着框架圖分析一遍:WXBridge負責JS引擎與Native的交互、框架層負責將JS指令進行處理、通信層進行各個線程的切換、每個JS指令都對應了組件層的執行。線程

五、總結

本文是對前面幾篇源碼分析文章的一個歸納總結,只是嘗試去理解Weex SDK的框架設計及核心原理畢竟對於Weex整個的生態而言SDK只佔了其中的一部分,還有不少類如開發流程、工具鏈、擴展等不少的面等待咱們繼續探索。設計

歡迎持續關注Weex源碼分析項目:Weex-Analysis-Project3d

歡迎關注微信公衆號:按期分享Java、Android乾貨!

歡迎關注
相關文章
相關標籤/搜索