亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android中如何使用ARouter實現組件化

發布時間:2022-04-08 15:37:24 來源:億速云 閱讀:94 作者:iii 欄目:編程語言

本文小編為大家詳細介紹“Android中如何使用ARouter實現組件化”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Android中如何使用ARouter實現組件化”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

1.無論分包做的再好,隨著項目的增大,項目會逐漸失去層次感,別人來接手的時候會很吃力。

2.我們在debug一個小功能的時候每次修改代碼都需要重新build整個項目,這樣顯的很不合理(不知道AS的熱部署有沒有解決這個問題)

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

Android中如何使用ARouter實現組件化

######在明白了組件化為我們解決的主要問題后我們來看看需要怎么做
初步實現組建化其實我們最終要解決的問題就只有2個:
######1.設置模塊之間的依賴,且使得業務模塊可單獨編譯--通過配置gradle即可解決
######2.業務模塊之間的頁面跳轉以及通信--使用阿里開源的ARouter即可解決

######接下來我們具體來看一下如何操作
######首先來看一下模塊間依賴的問題
######我們可以參照×××的四個模塊(chat,contract,find,mine)來配置
首先我們項目基本結構如下:

Android中如何使用ARouter實現組件化

我們一共需要建6個module,除了4個功能模塊外還有一個基本的common庫和一個作為啟動的application。

在建好項目后我們需要給4個module配置一個是否單獨編譯的開關:
Android中如何使用ARouter實現組件化

關于開關的配置位置這是一個問題,我們把它添加在gradle.properties文件中,這樣我們每次修改值的時候就可以觸發gradle的重新構建,便于我們單獨編譯module。

我們單獨編譯的開關配置好了,現在我們來配置6個module之間的依賴關系:

Android中如何使用ARouter實現組件化

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

其次,4個功能模塊庫我們要為它裝上我們之前配置的是否單獨編譯的開關,我們需要修改如下2個地方:

Android中如何使用ARouter實現組件化

可以看到我們要修改的就是我紅框框住的地方,當我們的開關打開的時候,我們就把他當成一個單獨的application來編譯,并且賦予它一個獨一無二的applicationId,這樣我們就可以通過剛剛在gradle.properties中配置的開關來控制它是否單獨作為一個application來編譯。

而對于我們的入口module--app模塊我們則需要做如下的配置:
Android中如何使用ARouter實現組件化

我們除了需要配置基本的ARouter以及commonlib依賴以外還需要在app模塊的gradle文件中根據開關選擇是否需要依賴我們的功能模塊,這個和各個功能模塊中的配置是相呼應的。

而對于其他組件模塊,重復上述步驟即可完成組件化框架的搭建:
Android中如何使用ARouter實現組件化

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

######我們首先來看一下各個模塊的頁面間是怎樣跳轉的。

我們之前已經依賴了ARouter(詳細用法參照https://github.com/alibaba/ARouter),我們要用它來幫我們實現跳轉需要以下幾步:
Android中如何使用ARouter實現組件化

跳轉的方法就如同圖2-1中顯示,我們需要標明目標頁面,附帶上要傳送的參數,然后調用navigation()就可以跳轉了,不過有人問目標頁面怎么看著就是一個路徑,它是怎樣定義的?
Android中如何使用ARouter實現組件化

  • 首先要用@Route注解標注頁面,并在path變量中給頁面定義一個路徑

  • 對于傳送過來的變量我們直接定義一個同名的字段用@Autowired變量標注,Arouter會對該字段自動賦值

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

這樣,我們就完成了頁面間的跳轉了,是不是比起我們傳統的方法更加簡單合理?

####最后我們來看一下組件間如何為彼此提供服務。

  • 這里我想在主module中調用home組件的sayHello方法來Toast一個人的名字

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

Android中如何使用ARouter實現組件化

首先在commonlib模塊里創建一個暴露方法的接口,并定義接口簽名,同時繼承 Iprovider 接口

然后在home模塊中繼承commonlib里定義的接口,并實現簽名方法。

Android中如何使用ARouter實現組件化

這里我們同樣使用Arouter的 @Router注解來提供這次服務的路由。

最后,我們在其他模塊使用 @Autowired 注解就可以調用該方法了

Android中如何使用ARouter實現組件化

讀到這里,這篇“Android中如何使用ARouter實現組件化”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鄂尔多斯市| 江津市| 桐柏县| 商洛市| 类乌齐县| 白水县| 望谟县| 盐亭县| 徐州市| 深水埗区| 北流市| 哈尔滨市| 广元市| 于田县| 苍梧县| 彰化市| 平潭县| 桃园县| 浑源县| 汝城县| 桑日县| 玛曲县| 陈巴尔虎旗| 临邑县| 竹溪县| 襄城县| 韶山市| 句容市| 根河市| 高邮市| 镇沅| 西充县| 宜君县| 黄龙县| 新宁县| 峡江县| 平顺县| 雅安市| 伊金霍洛旗| 河北区| 禹州市|