第2章 組件化選型

1讥蟆、組件化選型結(jié)論

方案是Arouter+auto-register+自己造輪子補(bǔ)充
原因:arouter使用簡單棚点,可以做組件間解耦舔琅,
auto-register 解決了arouter加載組件是反射效率低下問題碗硬。原理asm修改字節(jié)碼

2扛或、其他組件方案對比

1绵咱、美團(tuán)貓眼電影android模塊化實(shí)戰(zhàn)

可以學(xué)習(xí)到的思想
1、無入侵式配置各種服務(wù)
采用serviceload
缺點(diǎn):
最重要一點(diǎn):無代碼示例
1熙兔、serviceload (SPI)對于用戶來講不易使用
2悲伶、無論spi還是arouter,都不能解決配置下沉到base住涉,不如使用arouter
3麸锉、最好解決方案還是"騰訊.api方案"

2、 Android徹底組件化demo發(fā)布

可以學(xué)習(xí)到思想:
1秆吵、代碼和資源隔離
2淮椰、組件單獨(dú)運(yùn)行和集成發(fā)布 ,提供gradle插件(采用)
3纳寂、借鑒采用javassit
缺點(diǎn):
1主穗、JIMI用戶不多
2、API調(diào)用暴露了很多底層細(xì)節(jié)毙芜,開發(fā)者用戶還需要反復(fù)看源代碼忽媒,才能清晰明白
3、core代碼寫得不夠潔癖

3腋粥、WMRouter:美團(tuán)外賣Android開源路由框架

美團(tuán)的博客:WMRouter:美團(tuán)外賣Android開源路由框架
美團(tuán)外賣開源路由框架 WMRouter 源碼分析

最初背景:產(chǎn)品希望通過后臺下發(fā)URI控制客戶端跳到指定頁面晦雨,從而實(shí)現(xiàn)靈活的運(yùn)營配置

優(yōu)點(diǎn):
基于URI開發(fā)的框架架曹,可靈活配置
自定義ServiceLoader,不錯的擴(kuò)展性,可以跨組件訪問數(shù)據(jù)(采用)

缺點(diǎn):
1闹瞧、靈活性強(qiáng)绑雄,反襯易用性不足
2、ServiceLoader奥邮,并不能真正意義解除依賴万牺,
還需要將Interfaces下沉的base,或者引用該moudle

總之,可以備選的洽腺,基于URI的優(yōu)秀的路由框架

4脚粟、使用簡單但功能強(qiáng)大的安卓組件化框架 CC

介紹網(wǎng)頁:https://qibilly.com/CC-website/
優(yōu)點(diǎn):
1、文檔全面介紹詳實(shí)(采用)
2蘸朋、組件間調(diào)用者(采用)
3核无、cc-register 采用asm,可以配合arouter(采用)
4藕坯、采用服務(wù)架構(gòu)团南,將組件間關(guān)系扁平化

缺點(diǎn):
1、集成太復(fù)雜
2炼彪、調(diào)用方式已慢,還不夠親民
3、代碼編寫霹购,暴露給用戶細(xì)節(jié)太多
4、gradle的配置朋腋,實(shí)在是難以讓人接受
5齐疙、跨組件調(diào)用,用不到RPC(AIDL)技術(shù)
6旭咽、RPC建議專門一個庫實(shí)現(xiàn)贞奋,例如餓了么Hermes
7、組件提供的功能太多穷绵,提供api越多轿塔,后期兼容性越差,關(guān)鍵核心類要采用final修飾仲墨,避免使用者有歧義

總之:非常好的總線框架勾缭,學(xué)習(xí)成本高,需要經(jīng)驗(yàn)

5目养、Apache Dubbo
  • 軟件架構(gòu)

分布式系統(tǒng)學(xué)習(xí)筆記
https://blog.csdn.net/lchpersonal521/article/details/84107272
優(yōu)點(diǎn)
1俩由、分布式服務(wù),服務(wù)組件間隔離
2癌蚁、服務(wù)降級幻梯,服務(wù)發(fā)現(xiàn)兜畸,服務(wù)注冊
3、RPC+依賴注入+SPI+javassit
缺點(diǎn):
這套思想應(yīng)用安卓場景需要適配碘梢,參考CC

核心思想:依賴注入+SPI+RPC+javassit

6咬摇、Arouter

優(yōu)點(diǎn):
解除依賴,調(diào)用頁面服務(wù)煞躬,只需要知道對應(yīng)常量
使用簡單易懂肛鹏,用戶群體大,資料詳細(xì)

缺點(diǎn):
常量需要下沉到基礎(chǔ)庫

總之汰翠,采用Arouter方案

7龄坪、微信Android模塊化架構(gòu)重構(gòu)實(shí)踐

優(yōu)秀思想
①重塑模塊化,分解為三個目標(biāo)
1复唤、改變通信方式 : spi+".api化" 采用
2健田、重新設(shè)計(jì)模塊:重新設(shè)計(jì)代碼分層,強(qiáng)化職責(zé)和設(shè)計(jì)
3佛纫、約束代碼邊界:隔離思想妓局,采用pins工程
②代碼之外,架構(gòu)之內(nèi)
1呈宇、模塊負(fù)責(zé)人制度
2好爬、重構(gòu)與開發(fā)者心態(tài)
3、模塊劃分經(jīng)驗(yàn)之談

優(yōu)點(diǎn):指明思路和方向
缺點(diǎn):代碼需要自己實(shí)現(xiàn)

評價:采用微信的組件化思想甥啄,代碼邏輯需要因地制宜實(shí)現(xiàn)

自己手動編寫輪子Thor

組件化需要一套系統(tǒng)完整的方案存炮,來綜上所述的優(yōu)點(diǎn),也避免一些不易用的缺點(diǎn)蜈漓,為了實(shí)現(xiàn)這個目標(biāo)穆桂,最好的方案是Arouter+auto-register+自己造輪子補(bǔ)充
接下來一段時間,我要自己造輪子了融虽,吼吼~~~

Android架構(gòu)思考(模塊化享完、多進(jìn)程)

也推薦這篇文章
http://blog.spinytech.com/2016/12/28/android_modularization/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市有额,隨后出現(xiàn)的幾起案子般又,更是在濱河造成了極大的恐慌,老刑警劉巖巍佑,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件茴迁,死亡現(xiàn)場離奇詭異,居然都是意外死亡萤衰,警方通過查閱死者的電腦和手機(jī)笋熬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來腻菇,“玉大人胳螟,你說我怎么就攤上這事昔馋。” “怎么了糖耸?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵秘遏,是天一觀的道長。 經(jīng)常有香客問我嘉竟,道長邦危,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任舍扰,我火速辦了婚禮倦蚪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘边苹。我一直安慰自己陵且,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布个束。 她就那樣靜靜地躺著慕购,像睡著了一般。 火紅的嫁衣襯著肌膚如雪茬底。 梳的紋絲不亂的頭發(fā)上沪悲,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機(jī)與錄音阱表,去河邊找鬼殿如。 笑死,一個胖子當(dāng)著我的面吹牛最爬,可吹牛的內(nèi)容都是我干的握截。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼烂叔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了固歪?” 一聲冷哼從身側(cè)響起蒜鸡,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎牢裳,沒想到半個月后逢防,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蒲讯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年忘朝,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片判帮。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡局嘁,死狀恐怖溉箕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情悦昵,我是刑警寧澤肴茄,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站但指,受9級特大地震影響寡痰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜棋凳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一拦坠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧剩岳,春花似錦贞滨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至莫湘,卻和暖如春尤蒿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背幅垮。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工腰池, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人忙芒。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓示弓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親呵萨。 傳聞我的和親對象是個殘疾皇子奏属,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353