如下是我這個系列的相關文章,有興趣能夠參考一下,能夠給個喜歡或者關注個人文章。
git
[Android]如何作一個崩潰率少於千分之三噶應用app--章節列表github
這個系列的有關架構的概念,適合有大概 三年以上Android經驗 的同窗理解。若是你大概一年半以上經驗,入門進階了,我近段時間會開展分析MVP的相關架構章節。到時有興趣的同窗,能夠查看一番。架構
若是有看過我上兩編文章的同窗,才能真正感覺到組件化的威力。app
這個框架纔是真正能夠分離出module架構,反映出組件化開發的分工的架構方式。框架
應該是View。函數
在Activity和Fragment分發的架構中能夠看出,都是分發一個RelativeLayout到其餘module裏面做爲佈局View的。組件化
那麼最小單位就應該是分發一個RelativeLayout做爲Module的View佈局。佈局
從Fragment的佈局中能夠是把相關的RelativeLayout id加入到視圖Map裏面學習
而後經過id來獲取視圖再分發到每一個module的moduleContext裏面優化
請認真思考一下。
上兩章所說Fragment和Activity,都擁有本身的生命週期,咱們經過封裝抽象類,重寫他們的方法,讓其每一個Module都擁有Fragment和Activity同樣的生命週期。
可是View並無像Activity和Fragment同樣的生命週期流程。頁面暫停恢復,View是無法經過自身的方法感知到外部Activity和Fragment的狀況的。
那麼咱們只能抽象類View,讓其設定一些生命週期函數。
經過外部依附的Activity或Fragment生命中調用,傳遞週期。
固然有熟知View或者ViewGroup生命週期的函數的同窗,也能夠自主去作一些周期函數優化,例如
onDetachedFromWindow,onFinishInflate等等。
而後須要在Fragment的onCreateView或者Activity的onCreate中建立出抽象類View出來,只須要複寫一個moduleConfig的方法就能夠完成。
理論上ViewModuleManager和FragmentModuleManager獲取的root分發moduleContex的對象應該無差異。
在ModuleBus的例子裏,將提供一個簡單的實例讓你們參考。
添加一個page_view的module用於做爲分發的module,其依賴於base module,而app module要依賴於這個page_view的module。
PageConfig添加模塊入口的包名文件地址。
在Fragment中添加上面所說得ModuleManagerView的實例。(Activity也是同樣的方式便可建立)
參考上一節的ModuleExampleFragment的顯示,添加了Page_View顯示的佈局。
固然演示樣例,都會放到ModuleBus的開源代碼上面,歡迎你們給個star支持一下。
組件化非必定要用到ModuleManagerView,這裏是介紹只是ModuleManagerView爲組件化最小單位,是讓你們有這樣的概念思想。有同窗以爲管理成本太大,能夠考慮優化,我很歡迎聽到更多的建議。
這節的內容就到這裏,
下一節,將會給出一些組件化優化的策略,敬請期待!!!
我創建了一個關於Android架構學習的羣,裏面能夠進一步進行組件化學習和架構思想的的交流。
羣號是316556016,也能夠掃碼進羣。我在這裏期待大家的加入!!!