成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Android中怎么使用ARouter實(shí)現(xiàn)組件化

Android中怎么使用ARouter實(shí)現(xiàn)組件化,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

10年積累的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶(hù)對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶(hù)得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有永仁免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

1.無(wú)論分包做的再好,隨著項(xiàng)目的增大,項(xiàng)目會(huì)逐漸失去層次感,別人來(lái)接手的時(shí)候會(huì)很吃力。

2.我們?cè)赿ebug一個(gè)小功能的時(shí)候每次修改代碼都需要重新build整個(gè)項(xiàng)目,這樣顯的很不合理(不知道AS的熱部署有沒(méi)有解決這個(gè)問(wèn)題)

3.多人聯(lián)合開(kāi)發(fā)在版本管理中很容易出現(xiàn)沖突和代碼覆蓋的問(wèn)題
######在組件化項(xiàng)目中
除了有commonLib和app模塊外,我們按照功能劃分各個(gè)業(yè)務(wù)組件模塊(eg:×××可以劃分出chat,contract,find,mine四個(gè)大模塊),之前的包變成現(xiàn)在的模塊,增加了層次感;每個(gè)功能模塊可以單獨(dú)編譯,加快了編譯速度,也為提供單元模塊測(cè)試提供了支持;多人開(kāi)發(fā)只負(fù)責(zé)自己的模塊,直接避免了版本管理的沖突。

Android中怎么使用ARouter實(shí)現(xiàn)組件化

######在明白了組件化為我們解決的主要問(wèn)題后我們來(lái)看看需要怎么做
初步實(shí)現(xiàn)組建化其實(shí)我們最終要解決的問(wèn)題就只有2個(gè):
######1.設(shè)置模塊之間的依賴(lài),且使得業(yè)務(wù)模塊可單獨(dú)編譯--通過(guò)配置gradle即可解決
######2.業(yè)務(wù)模塊之間的頁(yè)面跳轉(zhuǎn)以及通信--使用阿里開(kāi)源的ARouter即可解決

######接下來(lái)我們具體來(lái)看一下如何操作
######首先來(lái)看一下模塊間依賴(lài)的問(wèn)題
######我們可以參照×××的四個(gè)模塊(chat,contract,find,mine)來(lái)配置
首先我們項(xiàng)目基本結(jié)構(gòu)如下:

Android中怎么使用ARouter實(shí)現(xiàn)組件化

我們一共需要建6個(gè)module,除了4個(gè)功能模塊外還有一個(gè)基本的common庫(kù)和一個(gè)作為啟動(dòng)的application。

在建好項(xiàng)目后我們需要給4個(gè)module配置一個(gè)是否單獨(dú)編譯的開(kāi)關(guān):
Android中怎么使用ARouter實(shí)現(xiàn)組件化

關(guān)于開(kāi)關(guān)的配置位置這是一個(gè)問(wèn)題,我們把它添加在gradle.properties文件中,這樣我們每次修改值的時(shí)候就可以觸發(fā)gradle的重新構(gòu)建,便于我們單獨(dú)編譯module。

我們單獨(dú)編譯的開(kāi)關(guān)配置好了,現(xiàn)在我們來(lái)配置6個(gè)module之間的依賴(lài)關(guān)系:

Android中怎么使用ARouter實(shí)現(xiàn)組件化

首先,為了方便各個(gè)module之間的交互我們借用了阿里的充分ARouter庫(kù),所以在每個(gè)非common的庫(kù)(包括主Application)中我都強(qiáng)烈建議加入對(duì)ARouter和commonlib的依賴(lài)。

其次,4個(gè)功能模塊庫(kù)我們要為它裝上我們之前配置的是否單獨(dú)編譯的開(kāi)關(guān),我們需要修改如下2個(gè)地方:

Android中怎么使用ARouter實(shí)現(xiàn)組件化

可以看到我們要修改的就是我紅框框住的地方,當(dāng)我們的開(kāi)關(guān)打開(kāi)的時(shí)候,我們就把他當(dāng)成一個(gè)單獨(dú)的application來(lái)編譯,并且賦予它一個(gè)獨(dú)一無(wú)二的applicationId,這樣我們就可以通過(guò)剛剛在gradle.properties中配置的開(kāi)關(guān)來(lái)控制它是否單獨(dú)作為一個(gè)application來(lái)編譯。

而對(duì)于我們的入口module--app模塊我們則需要做如下的配置:
Android中怎么使用ARouter實(shí)現(xiàn)組件化

我們除了需要配置基本的ARouter以及commonlib依賴(lài)以外還需要在app模塊的gradle文件中根據(jù)開(kāi)關(guān)選擇是否需要依賴(lài)我們的功能模塊,這個(gè)和各個(gè)功能模塊中的配置是相呼應(yīng)的。

而對(duì)于其他組件模塊,重復(fù)上述步驟即可完成組件化框架的搭建:
Android中怎么使用ARouter實(shí)現(xiàn)組件化

####在完成了組件化框架的搭建后我們來(lái)簡(jiǎn)單的看看框架中一些具有特色的使用方法。

######我們首先來(lái)看一下各個(gè)模塊的頁(yè)面間是怎樣跳轉(zhuǎn)的。

我們之前已經(jīng)依賴(lài)了ARouter(詳細(xì)用法參照https://github.com/alibaba/ARouter),我們要用它來(lái)幫我們實(shí)現(xiàn)跳轉(zhuǎn)需要以下幾步:
Android中怎么使用ARouter實(shí)現(xiàn)組件化

跳轉(zhuǎn)的方法就如同圖2-1中顯示,我們需要標(biāo)明目標(biāo)頁(yè)面,附帶上要傳送的參數(shù),然后調(diào)用navigation()就可以跳轉(zhuǎn)了,不過(guò)有人問(wèn)目標(biāo)頁(yè)面怎么看著就是一個(gè)路徑,它是怎樣定義的?
Android中怎么使用ARouter實(shí)現(xiàn)組件化

  • 首先要用@Route注解標(biāo)注頁(yè)面,并在path變量中給頁(yè)面定義一個(gè)路徑

  • 對(duì)于傳送過(guò)來(lái)的變量我們直接定義一個(gè)同名的字段用@Autowired變量標(biāo)注,Arouter會(huì)對(duì)該字段自動(dòng)賦值

  • 最后我們還需要將該頁(yè)面注入到ARouter中(原理類(lèi)似ButterKnife),讓他幫我們完成我們需要的工作

這樣,我們就完成了頁(yè)面間的跳轉(zhuǎn)了,是不是比起我們傳統(tǒng)的方法更加簡(jiǎn)單合理?

####最后我們來(lái)看一下組件間如何為彼此提供服務(wù)。

  • 這里我想在主module中調(diào)用home組件的sayHello方法來(lái)Toast一個(gè)人的名字

  • 那home里的方法怎樣才能被其他模塊(包括主模塊和其他組件模塊)調(diào)用

Android中怎么使用ARouter實(shí)現(xiàn)組件化

首先在commonlib模塊里創(chuàng)建一個(gè)暴露方法的接口,并定義接口簽名,同時(shí)繼承 Iprovider 接口

然后在home模塊中繼承commonlib里定義的接口,并實(shí)現(xiàn)簽名方法。

Android中怎么使用ARouter實(shí)現(xiàn)組件化

這里我們同樣使用Arouter的 @Router注解來(lái)提供這次服務(wù)的路由。

最后,我們?cè)谄渌K使用 @Autowired 注解就可以調(diào)用該方法了

Android中怎么使用ARouter實(shí)現(xiàn)組件化

關(guān)于Android中怎么使用ARouter實(shí)現(xiàn)組件化問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

分享題目:Android中怎么使用ARouter實(shí)現(xiàn)組件化
當(dāng)前地址:http://jinyejixie.com/article42/pgiihc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、建站公司自適應(yīng)網(wǎng)站、外貿(mào)建站、響應(yīng)式網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)
永泰县| 宜昌市| 资溪县| 柘荣县| 靖江市| 保靖县| 姚安县| 太谷县| 邵阳市| 始兴县| 南川市| 泰州市| 西乡县| 罗定市| 安泽县| 互助| 项城市| 合肥市| 丰宁| 舞阳县| 宜兰县| 灌南县| 铜梁县| 天峻县| 乡宁县| 嫩江县| 长岭县| 富源县| 琼结县| 维西| 额尔古纳市| 塘沽区| 安达市| 太仆寺旗| 平昌县| 西林县| 镇远县| 谢通门县| 福贡县| 会理县| 湖南省|