中文字幕av高清_国产视频一二区_男女羞羞羞视频午夜视频_成人精品一区_欧美色视_在线视频这里只有精品

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 什么是Android組件化,為什么要組件化?

什么是Android組件化,為什么要組件化?

來源:千鋒教育
發布人:xqq
時間: 2023-10-12 20:36:56 1697114216

一、Android組件化含義

組件化是指解耦復雜系統時,將多個功能模板拆分、重組的過程。在Android工程表現上就是把app按照其業務的不同,劃分為不同的Module。組件化架構的目的就是讓每個業務模塊變得相對獨立,各個組件在組件模式下可以獨立開發調試,集成模式下又可以集成到“app殼工程”中,從而得到一個具有完整功能的APP。

二、為什么要Android組件化

1、提高工程編譯速度

進行組件化拆分后,每個業務或者功能都是一個單獨的工程,這個單獨的工程可以獨立編譯運行,拆分后的工程通常都比較小,代碼量也比較少,我再也不用像以前編譯一下得等待好幾分鐘了。

2、利于多人團隊協作開發

業務組件之間不能相互引用,每個組件都把對應的業務功能收斂在一個工程里,彼此互不打擾。 在多人團隊里,每個人只負責自己的業務模塊,他對業務功能的增刪改查,都只限定在自己的這個業務模塊里,不會影響其他人的業務,他代碼質量的好壞也只會影響到自己的業務模塊;對測試來說,也十分方便,大部分情況下,我們只需要著重測試修改過的業務組件即可,而不用老是進行全部回歸測試。

3、組件化是功能重用的基石

業務組件類似一個個積木一樣,我們可以用積木搭建出不同的房子,同理我們也可以創建多個不同的APP。我們只需要維護好每個組件,需要用到該組件的功能時,一建引用集成就可以了。

4、提高組件復用性

可能有些人會覺得,提高復用性很簡單,直接把需要復用的代碼做成Android Module,打包AAR并上傳代碼倉庫,那么這部分功能就能被方便地引入和使用。但是我們覺得僅僅這樣是不夠的,上傳倉庫的AAR庫是否方便被復用,需要組件化的規則來約束,這樣才能提高復用的便捷性。

5、降低組件間的耦合

我們需要通過組件化的規則把代碼拆分成不同的模塊,模塊要做到高內聚、低耦合。模塊間也不能直接調用,這需要組件化通信框架的支持。降低了組件間的耦合性可以帶來兩點直接的好處:

代碼更便于維護降低了模塊的Bug率

三、Android組件化基礎

1、組件之間的跳轉

組件化中兩個功能模塊時不直接依賴的,其依賴規則是通過 Base module 間接依賴,當組件之間的 Activity 進行界面跳轉時,由于沒有相互依賴的關系,往往會無法引用另一個 module 中的 Activity。

2、隱式跳轉

隱式跳轉是通過 Android 原生 Intent 匹配機制來實現相應跳轉,就是使用 Action 來跳轉到對應的 Activity,這樣使用隱式跳轉的方式就可以跨 module 實現 Activity 之間的跳轉了,注意一點,如果移出 Activity 所在的 module 而不移出相應的跳轉,如果繼續跳轉會出現異常,使用隱式 Intent 跳轉需要驗證是否會接收該 Intent,需要對該 Intent 對象調用 resolveActivity() 方法來判斷至少有一個應用能夠處理該 Intent,通過隱式跳轉的方式還可以設置 exported 為 false 來確保只有自己的 App 才能夠啟動對應的組件。

3、ARouter跳轉

在 Android 開發中可將 module 看成不同的網絡,而對應的 Router 就是連接各個 module 的中轉站,這個中轉站可以對頁面跳轉的參數等進行統一處理,ARouter 是阿里開源出來的一個頁面跳轉路由,使用 ARouter 可以替代隱式跳轉來完成不同 module、不同組件之間的跳轉以及跳轉過程的監聽、參數的傳遞等,ARouter 支持路徑跳轉和 URL 跳轉兩種方式,使用也非常靈活,ARouter 的具體使用這里不做介紹,其具體使用會在單獨一篇文章中詳解,ARouter 與 Android 傳統跳轉方式的對比如下:

顯示跳轉需要依賴于類,而路由跳轉通過指定的路徑跳轉;隱式跳轉通過 AndroidManifest 集中管理,導致協作開發困難;原生使用 AndroidManifest 來注冊,而路由使用注解注冊原生 startActivity 之后跳轉過程交由 Android 系統控制,而路由跳轉采用的是 AOP 切面編程可對跳轉過程進行攔截和過濾。

4、動態創建

組件化開發中最重要的一點就是各個模塊、各個組件之間要盡可能解耦,這樣很容易就會想到使用 Java 中的反射機制,使用反射可在運行狀態下獲取某個類的所有信息,然后就可以動態操作這個類的屬性和方法了。如果 Fragment 單獨作為一個組件來使用時,當這個 Fragment 組件不需要被移出后,如果是常規的 Fragment 則會因為索引不到該 Fragment 而使得 App 崩潰,想一下如果使用反射創建 Fragment 的方式則至少不會引起 App 崩潰,這里可以捕捉異常完成相關邏輯,這樣是不是降低了耦合呢。可見,雖然反射有一定的性能問題,但使用反射確實能在一定程度上降低耦合,學習組件化 Java 反射機制應該是必須的一部分。

延伸閱讀1:組件化結構

app殼:負責管理各個業務組件和打包APK,沒有具體的業務功能;業務組件層:最上層的業務,每個組件表示一條完整的業務線,彼此之間相互獨立;功能/基礎組件層:支撐上層業務組件運行的基礎業務服務;基礎庫:包含了各種開源庫以及和業務無關的一個自研工具庫。
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 精品一区二区在线观看 | 久久999 | 天天干夜夜骑 | 国产精品久久久久影院色老大 | 97在线免费观看 | 久久亚洲国产精品 | 国产成人免费在线 | 久久久免费看 | 欧美精品二区 | 毛片一区二区三区 | 国产精品自拍99 | 一区免费在线观看 | 国产精品一区二区三区在线播放 | 亚洲成人精品视频 | 国产精品45p | 午夜精 | 成年人在线观看 | 国产精品视频久久 | 亚洲精品1 | 国产亚洲综合视频 | 久久人久久 | 九一亚洲精品 | 精品国产欧美一区二区三区成人 | 亚洲tv视频 | 久久久久久亚洲精品中文字幕 | 一区二区日韩 | 亚洲福利小视频 | 欧美瑟瑟 | 国产日韩欧美视频 | 欧美日韩视频 | 密室大逃脱第六季大神版在线观看 | 欧美日韩一 | 国产精品久久久久高潮色老头 | 日韩欧美网| 亚洲一区中文字幕 | 精品在线一区 | 色黄视频在线观看 | 成人av免费看 | 5060毛片| 日韩精品网 | 久久久久久av |