鴻蒙工程結構簡析

今天原本想在本地跑一下鴻蒙試試,但發現如今IDE只支持了Windows,就放棄了。不過仍是能夠紙上談兵的作下分析。看了眼官方文檔,如今還比較簡單。總體的感受是和安卓的基本概念區別不大,好比和安卓組件的對應、組件的生命週期等,都讓人以爲很熟悉。固然這只是表現形式,好比對多語言的支持就和安卓拉開了區分度。另外讓我以爲比較有意思的還有鴻蒙app的工程解構架構

在這裏插入圖片描述
從上面我感受模塊化和組件化應該是鴻蒙從一開始就考慮的。我猜想一下它可能帶來的優缺點:
app

  • 更好的隔離:工程隔離,從而更好的支持業務隔離。好比對於一個比較龐大的app(能夠參考個人另外一篇文章 – 安卓app平臺的架構),可能每一個子業務模塊均可以做爲一個單獨的Feature,從而減小互相之間的依賴。好比本地開發時能夠只編譯Entry和本身所在的Feature, 從而減小編譯時間。測試的時候所在的Feature能有更好的獨立性。
  • 更靈活的部署:鴻蒙官網將Feature描述爲"應用的動態特性模塊",感受應該能夠支持動態部署和局部熱更新,對於提升更新速度、減小更新代價(好比帶寬)以及增長新版本在用戶中的佔比都有優點。同時也能夠支持更靈活的組裝,好比針對某個市場或者某種硬件,在同一個app配置不一樣的Feature。
  • 固然靈活性也會帶來其餘方面的問題,好比各類版本相關的維護應該會是一個很大的挑戰,如今不止有app的版本,還有module的版本,還有module版本之間顯式(IDL)和隱式(業務)的互相依賴;再加上可能app還有不一樣flavor(上文提到的靈活組裝),處理起來應該會麻煩。
  • 動態部署和熱更新也容易帶來監管的問題,比較難審覈發佈出去的內容。不過如今手遊裏熱更也很廣泛,因此仍是有不少先例能夠研究。
  • 還有一個比較細節的是系統如何對不一樣Feature之間的相同資源去重,又不影響它們的獨立性,也不影響app的性能(好比加載時長)。好比FeatureA和FeatureB同時都依賴於一個library,是否是須要防止最後工程裏存多份library,影響app size.
相關文章
相關標籤/搜索