中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

淺談Android組件化

發布時間:2020-03-03 18:59:48 來源:網絡 閱讀:198 作者:Android飛魚 欄目:移動開發

一個關于組件化的念頭

項目經歷了歲月的洗禮,經過公司業務上的變化,開發人員的來來往往,代碼越來越臃腫和復雜難懂,這時候就必須進行拆分,否則就是一場災難。就像我們公司的老項目一樣,耦合度極高,已經停掉的業務,現在還在項目里面留存著,完全不敢刪。新功能上線,因為要回歸測試,測試時間有時候比開發時間還長。

組件化這個詞,我們應該在各個地方,通過各種渠道,看到過無數次,而且一般會給配上下面這張圖,小機器人,綠油油的色彩,非常的鮮艷奪目有調性。


淺談Android組件化

組件化和插件化同屬于模塊化編程,只是兩種不同的展現模式。兩者的區別,只有一個:插件化支持動態增加和修改線上的模塊,組件化只能對現有模塊進行增加和刪除。

項目線上功能動態很頻繁的電商類APP,適合使用插件化。變動需求不強烈的工具類APP,適合采用組件化。我們公司對靈活性要求不高,因此采用組件化方案。

組件化的幾個要點

組件化的要點不算少,下面準備就我認為主要的部分,用提問和解答的方式,梳理大概的思路。

01.如何將一個龐大的工程拆分成有機的整體?

我認為應該分三個部分,主項目,基礎公共庫和業務組件。先抽出基礎公共庫,供其他組件調用,剩余部分按照業務邏輯去分組件,利于后期業務的迭代開發,主項目負責裝載組件。

02.組件可以單獨運行嗎?如何做到?

分離開的每個組件,都應支持獨立運行,這樣我們才能單獨在某個模塊開發和測試。可以通過 apply plugin: 'com.android.application' 和 apply plugin: 'com.android.library' 去實現兩個身份的轉換。

這里不要被圖給誤解到,組件化中的胳膊腿離開了身體,其實還是能獨立存活的個體。

03.如何做到組件與組件之間的獨立?

組件與組件之間相互獨立,才是降低耦合,主要表現在資源隔離和代碼隔離。代碼隔離可通過gradle3.0 之后 runtimeOnly 依賴語法實現編譯期隔離 。資源隔離,目前官方沒有現成的隔離方案,暫時可以先使用 resourcePrefix 屬性,人為維護。

04.組件之間互相獨立,數據如何傳遞?

考慮路由方案,目前已經有很成熟的路由庫 ARouter。

除以上問題,還有組件的集成調試,組件生命周期等問題,我認為前期可以先不考慮,留待后期優化。

組件化前 VS 組件化后

組件化改造的過程是非常痛苦的,但是完成后的開發體驗真的超超超超幸福!因為業務模塊邏輯分離,代碼耦合度降低,所以會帶來以下好處:

  • 編譯時間短

  • 開發周期降低

  • 減少測試回歸

  • 快速定位問題

  • 業務模塊遷移很方便

下面是我司項目組件化過程中的解耦的業務模塊:



<

淺談Android組件化

Android 綠色小機器人坐成兩排,十分乖巧可愛。

如何快速開始組件化

第一步,少年,你需要自行去搜索獲取關于組件化的知識,在腦海中有它有個清楚的認識。

第二步,針對你的目標項目,梳理整體的業務邏輯和代碼架構,做出可行的組件化方案。這一步非常重要,必須提前探好底,讓更多的問題暴露在執行前。不然,想象下,你一個模塊感覺都要挪過來80%了,發現業務邏輯上分離不開,或者技術上實現有障礙,這就很浪費時間和精力了,還影響心情。

第三步,方案遞交給技術 leader ,同意之后,申請排期開發。

第四步,沐浴焚香,拜好代碼大神,就開始吧。

友情提示,最好單獨拉一個新分支,因為這非常可能持久戰,不要因此影響了項目的正常迭代。

我的組建化步驟

  • 抽出基礎工具類 BaseLib,網絡封裝庫 NetWorkLib。

  • 抽出基礎資源庫 BasicRes,管理公共資源,例如 BaseActivity/BaseApplication 等基類們,對話框,res資源。

  • 分離業務邏輯,獨立為 Module。

  • 選定 Arouter 作為路由方案,連接各組件 Module。


向AI問一下細節

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

AI

星子县| 丹凤县| 济宁市| 顺昌县| 铜鼓县| 上饶市| 互助| 永福县| 徐汇区| 五家渠市| 宝鸡市| 那坡县| 达尔| 华坪县| 平顺县| 施秉县| 四子王旗| 丹江口市| 金昌市| 舒兰市| 黑龙江省| 邢台市| 布尔津县| 宁陕县| 饶阳县| 文安县| 志丹县| 子洲县| 汝南县| 新余市| 本溪| 扶沟县| 广宗县| 长宁县| 新巴尔虎左旗| 铜陵市| 孟连| 鸡东县| 南华县| 望江县| 莱州市|