今天本來想在本地跑一下鴻蒙試試,但發現現在IDE只支持了Windows,就放棄了,不過還是可以紙上談兵的做下分析,看了眼官方檔案,現在還比較簡單,整體的感覺是和安卓的基本概念區別不大,比如和安卓組件的對應、組件的生命周期等,都讓人覺得很熟悉,當然這只是表現形式,比如對多語言的支持就和安卓拉開了區分度,另外讓我覺得比較有意思的還有鴻蒙app的工程解構:

從上面我感覺模塊化和組件化應該是鴻蒙從一開始就考慮的,我猜測一下它可能帶來的優缺點:
- 更好的隔離:工程隔離,從而更好的支持業務隔離,比如對于一個比較龐大的app(可以參考我的另一篇文章 – 安卓app平臺的架構),可能每個子業務模塊都可以作為一個單獨的Feature,從而減少互相之間的依賴,比如本地開發時可以只編譯Entry和自己所在的Feature, 從而減少編譯時間,測驗的時候所在的Feature能有更好的獨立性,
- 更靈活的部署:鴻蒙官網將Feature描述為"應用的動態特性模塊",感覺應該可以支持動態部署和區域熱更新,對于提高更新速度、減少更新代價(比如帶寬)以及增加新版本在用戶中的占比都有優勢,同時也可以支持更靈活的組裝,比如針對某個市場或者某種硬體,在同一個app配置不同的Feature,
- 當然靈活性也會帶來其他方面的問題,比如各種版本相關的維護應該會是一個很大的挑戰,現在不止有app的版本,還有module的版本,還有module版本之間顯式(IDL)和隱式(業務)的互相依賴;再加上可能app還有不同flavor(上文提到的靈活組裝),處理起來應該會麻煩,
- 動態部署和熱更新也容易帶來監管的問題,比較難審核發布出去的內容,不過現在手游里熱更也很普遍,所以還是有很多先例可以研究,
- 還有一個比較細節的是系統如何對不同Feature之間的相同資源去重,又不影響它們的獨立性,也不影響app的性能(比如加載時長),比如FeatureA和FeatureB同時都依賴于一個library,是不是需要防止最后工程里存多份library,影響app size.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/98765.html
標籤:其他
下一篇:軟體架構的本質
