下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】androidmodule解耦組件化總體概述(推薦)
原由
移動(dòng)開(kāi)發(fā)中,隨著項(xiàng)目不斷的跌代,需求越來(lái)越復(fù)雜后。項(xiàng)目工程也越來(lái)越龐大。那么此時(shí)的分module的開(kāi)發(fā),則是必然的選擇了。在最終的組件化之路上,不妨把單一工程比如石器時(shí)代,那么接下來(lái)簡(jiǎn)單的拆分工程分多個(gè)moudle開(kāi)來(lái)就是銅器時(shí)代。銅器時(shí)代之簡(jiǎn)單分module
演進(jìn)
由于從復(fù)雜的單工程拆分了多個(gè)module了,達(dá)到了代碼及資源的初步的隔離,或需求模塊的開(kāi)發(fā)人員,開(kāi)始專注于自己的需求模塊module的開(kāi)發(fā)了。但是隨著部分需求有相關(guān)性,需要相互調(diào)用時(shí)。那么問(wèn)題來(lái)了,在AXXXmodule中而在BXXXmodule中這時(shí)出現(xiàn)了相互依賴,首先編譯器會(huì)能不過(guò),會(huì)出現(xiàn)Circulardependency,循環(huán)相互依賴的問(wèn)題,這是絕不允許的。為了解決上述的問(wèn)題,將AXXXmodule與BXXXmodule需要對(duì)外提供服務(wù)能力支持的,進(jìn)行封裝與抽象。將需要對(duì)外暴露接口/協(xié)議地方,對(duì)其抽象出接口出來(lái)。把些這接口獨(dú)立放在BaseXXXXmodule中,這樣AXXXmodule與BXXXmodule,都分別去通過(guò)BaseXXXX中間module通信去解決AXXXmodule與BXXXmodule相互依賴調(diào)用通信。初步的解決方法
為了在BaseXXXXmodule中,搭建起AXXXmodule與BXXXmodule相互通信的橋梁,可以在BaseXXXXmodule定義一個(gè)通信標(biāo)識(shí)接口:然后主要通過(guò)ModuleApiHelper進(jìn)行通信這樣比如在AXXXmodule中將原有AServiceData類是如下的:改造成將IAServiceData接口定義在BaseXXXXmodule中。然后AXXXmodule中進(jìn)行register相應(yīng)的服務(wù)這樣調(diào)用AModuleService的init方法,即可對(duì)IAServiceData服務(wù)進(jìn)行注冊(cè)了。然后即下來(lái),在BXXXmodule中進(jìn)行g(shù)etXXX得到服務(wù)即可調(diào)用相應(yīng)的方法了.
在任何需要此服務(wù)的方法可如下調(diào)用:注意
1>register注冊(cè)時(shí)機(jī),需要越早越好,一般建議在各module的有類似的application的onCreate時(shí)注冊(cè)最好。
2>IModuleApi與ModuleApiHelper,和各extends繼承IModuleApi接口的接口,需要放在中間通信BaseXXXModule中。各需要通信的module去compile/apiBaseXXXModule即可。問(wèn)題
為了保證IModuleApi接口注冊(cè)有效,需要越早越好進(jìn)行注冊(cè)。這樣隨著項(xiàng)目越來(lái)越復(fù)雜,需要通信的地方越來(lái)越多。統(tǒng)一的ModuleApiHelper,注冊(cè)的地方將越來(lái)越多帶的問(wèn)題也多起來(lái)。
1>注冊(cè)Map容器占用的內(nèi)存不斷的增多。
2>register注冊(cè)的地方不統(tǒng)一,有些放在各module的類Application的onCreate中,有些可能是放在其它的類中.
3>不支持ui頁(yè)面的跳轉(zhuǎn),由AXXXmodule的AxxActtivy頁(yè)面跳轉(zhuǎn)到BXXXmodule的BxxActivity頁(yè)面中。
4>不支持多進(jìn)程中應(yīng)用。為了解決上述問(wèn)題,引入了蒸汽時(shí)代之ARoute到來(lái)。蒸汽時(shí)代之ARoute
由于遍幅的原因,總體概述不詳細(xì)細(xì)述ARoute,下遍再剖析ARoute。總體來(lái)說(shuō)在多module通信中解決了:
1>解決了ui頁(yè)面的跳轉(zhuǎn)問(wèn)題。
2>根據(jù)需要進(jìn)行register的問(wèn)題,且register通過(guò)靜態(tài)注解來(lái)的,所以register地方統(tǒng)一比如容易
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 石河子大學(xué)《園林建筑設(shè)計(jì)》2021-2022學(xué)年第一學(xué)期期末試卷
- 大學(xué)學(xué)校辭職報(bào)告11篇
- dark green dress造句不同意思
- 石河子大學(xué)《水工建筑物》2022-2023學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《籃球》2022-2023學(xué)年第一學(xué)期期末試卷
- 沈陽(yáng)理工大學(xué)《數(shù)字圖像處理》2023-2024學(xué)年期末試卷
- 沈陽(yáng)理工大學(xué)《機(jī)器人技術(shù)及應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 經(jīng)濟(jì)法基礎(chǔ)(下)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 2018年四川遂寧中考滿分作文《爭(zhēng)取》3
- 股權(quán)合同 英文 模板
- 初中語(yǔ)文人教七年級(jí)上冊(cè)要拿我當(dāng)一挺機(jī)關(guān)槍使用
- 北京頌歌原版五線譜鋼琴譜正譜樂(lè)譜
- 病史采集和臨床檢查方法
- PSUR模板僅供參考
- 火力發(fā)電企業(yè)作業(yè)活動(dòng)風(fēng)險(xiǎn)分級(jí)管控清單(參考)
- 民法典合同編之保證合同實(shí)務(wù)解讀PPT
- 全國(guó)第四輪學(xué)科評(píng)估PPT幻燈片課件(PPT 24頁(yè))
- 大氣污染控制工程課程設(shè)計(jì)-某廠酸洗硫酸煙霧治理設(shè)施設(shè)計(jì)
- 名牌包包網(wǎng)紅主播電商直播帶貨話術(shù)腳本
- 高考語(yǔ)文作文素材人物速遞——蘇炳添課件18張
- 蛋雞養(yǎng)殖場(chǎng)管理制度管理辦法
評(píng)論
0/150
提交評(píng)論