基于APT的android路由框架(一)

一扳碍、為什么需要路由框架

? ? ? ? 我們所使用的原生路由方案一般是通過顯式intent和隱式intent兩種方式實現(xiàn)的燃乍,而在顯式intent的情況下,因為會存在直接的類依賴的問題姜性,導(dǎo)致耦合非常嚴(yán)重赘风;而在隱式intent情況下,則會出現(xiàn)規(guī)則集中式管理仁卷,導(dǎo)致協(xié)作變得非常困難穴翩。而且一般而言配置規(guī)則都是在Manifest中的,這就導(dǎo)致了擴展性較差锦积。除此之外芒帕,使用原生的路由方案會出現(xiàn)跳轉(zhuǎn)過程無法控制的問題,因為一旦使用了StartActivity()就無法插手其中任何環(huán)節(jié)了丰介,只能交給系統(tǒng)管理背蟆,這就導(dǎo)致了在跳轉(zhuǎn)失敗的情況下無法降級,而是會直接拋出運營級的異常哮幢。這時候如果考慮使用自定義的路由組件就可以解決以上的一些問題带膀,比如通過URL索引就可以解決類依賴的問題;通過分布式管理頁面配置可以解決隱式intent中集中式管理Path的問題橙垢;自己實現(xiàn)整個路由過程也可以擁有良好的擴展性垛叨,還可以通過AOP的方式解決跳轉(zhuǎn)過程無法控制的問題,與此同時也能夠提供非常靈活的降級方式柜某。


圖片來源:albb云棲社區(qū)

為什么要用路由組件

前面提到的主要是開發(fā)與協(xié)作中的問題嗽元,而使用一款路由框架時還會涉及到其他的兩個大方面:一方面是組件化,而另一方面就是Native和H5的問題喂击。剛才所提到的主要是開發(fā)和協(xié)作中作為開發(fā)者所需要面對的問題剂癌,而一旦一款A(yù)PP達(dá)到一定體量的時候,業(yè)務(wù)就會膨脹得比較嚴(yán)重翰绊,而開發(fā)團隊的規(guī)模也會越來越大佩谷,這時候一般都會提出組件化的概念。組件化就是將APP按照一定的功能和業(yè)務(wù)拆分成多個小組件监嗜,不同的組件由不同的開發(fā)小組來負(fù)責(zé)琳要,這樣就可以解決大型APP開發(fā)過程中的開發(fā)與協(xié)作的問題,將這些問題分散到小的APP中秤茅。目前而言組件化已經(jīng)有非常多比較成熟的方案了,而自定義路由框架也可以非常好地解決整個APP完成組件化之后模塊之間沒有耦合的問題童叠,因為沒有耦合時使用原生的路由方案肯定是不可以的框喳。另外一個問題就是Native與H5的問題课幕,因為現(xiàn)在的APP很少是純Native的,也很少會有純H5的五垮,一般情況下都是將兩者進(jìn)行結(jié)合乍惊。這時候就需要非常便捷并且統(tǒng)一的跳轉(zhuǎn)方案,因為在H5中是無法使用StartActivity()跳轉(zhuǎn)到Native頁面的放仗,而從Native跳轉(zhuǎn)到H5頁面也只能通過配置瀏覽器的方式實現(xiàn)润绎。


圖片來源:albb云棲社區(qū)

路由框架的特點

為了解決以上的問題就需要實現(xiàn)一個自定義的路由框架,而路由框架一般都具有以下的三種特點:

分發(fā):把一個URL或者請求按照一定的規(guī)則分配給一個服務(wù)或者頁面來處理诞挨,這個流程就是分發(fā)莉撇,分發(fā)是路由框架最基本的功能,當(dāng)然也可以理解成為簡單的跳轉(zhuǎn)惶傻。

管理:將組件和頁面按照一定的規(guī)則管理起來棍郎,在分發(fā)的時候提供搜索、加載银室、修改等操作涂佃,這部分就是管理,也是路由框架的基礎(chǔ)蜈敢,上層功能都是建立在管理之上辜荠。

控制:就像路由器一樣,路由的過程中抓狭,會有限速伯病、屏蔽等一些控制操作,路由框架也需要在路由的過程中辐宾,對路由操作做一些定制性的擴展狱从,比方剛才提到的AOP,后期的功能更新叠纹,也是圍繞這個部分來做的季研。

ARouter是阿里巴巴開源的Android平臺中對頁面、服務(wù)提供路由功能的中間件誉察,提倡的是簡單且夠用与涡。

阿里巴巴路由框架

接下來我會用幾章的內(nèi)容講解如何從零實現(xiàn)阿里巴巴ARouter路由框架

基于APT的android路由框架(二)APT技術(shù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市持偏,隨后出現(xiàn)的幾起案子驼卖,更是在濱河造成了極大的恐慌,老刑警劉巖鸿秆,帶你破解...
    沈念sama閱讀 211,423評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件酌畜,死亡現(xiàn)場離奇詭異,居然都是意外死亡卿叽,警方通過查閱死者的電腦和手機桥胞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評論 2 385
  • 文/潘曉璐 我一進(jìn)店門恳守,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人贩虾,你說我怎么就攤上這事催烘。” “怎么了缎罢?”我有些...
    開封第一講書人閱讀 157,019評論 0 348
  • 文/不壞的土叔 我叫張陵伊群,是天一觀的道長。 經(jīng)常有香客問我策精,道長舰始,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,443評論 1 283
  • 正文 為了忘掉前任蛮寂,我火速辦了婚禮蔽午,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘酬蹋。我一直安慰自己及老,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,535評論 6 385
  • 文/花漫 我一把揭開白布范抓。 她就那樣靜靜地躺著骄恶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪匕垫。 梳的紋絲不亂的頭發(fā)上僧鲁,一...
    開封第一講書人閱讀 49,798評論 1 290
  • 那天,我揣著相機與錄音象泵,去河邊找鬼寞秃。 笑死,一個胖子當(dāng)著我的面吹牛偶惠,可吹牛的內(nèi)容都是我干的春寿。 我是一名探鬼主播,決...
    沈念sama閱讀 38,941評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼忽孽,長吁一口氣:“原來是場噩夢啊……” “哼绑改!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起兄一,我...
    開封第一講書人閱讀 37,704評論 0 266
  • 序言:老撾萬榮一對情侶失蹤厘线,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后出革,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體造壮,經(jīng)...
    沈念sama閱讀 44,152評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,494評論 2 327
  • 正文 我和宋清朗相戀三年骂束,在試婚紗的時候發(fā)現(xiàn)自己被綠了耳璧。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片硝全。...
    茶點故事閱讀 38,629評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖楞抡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情析藕,我是刑警寧澤召廷,帶...
    沈念sama閱讀 34,295評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站账胧,受9級特大地震影響竞慢,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜治泥,卻給世界環(huán)境...
    茶點故事閱讀 39,901評論 3 313
  • 文/蒙蒙 一筹煮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧居夹,春花似錦败潦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至狸膏,卻和暖如春沟饥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背湾戳。 一陣腳步聲響...
    開封第一講書人閱讀 31,978評論 1 266
  • 我被黑心中介騙來泰國打工贤旷, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人砾脑。 一個月前我還...
    沈念sama閱讀 46,333評論 2 360
  • 正文 我出身青樓幼驶,卻偏偏與公主長得像,于是被迫代替她去往敵國和親拦止。 傳聞我的和親對象是個殘疾皇子县遣,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,499評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,761評論 25 707
  • 好久好久沒寫過文章了,一是最近項目太忙了汹族,沒時間寫萧求。二是也沒有時間學(xué)習(xí)新的東西,想寫點什么卻又無從下筆顶瞒。最近在做混...
    當(dāng)前明月閱讀 2,732評論 10 21
  • 原文鏈接:https://github.com/halfrost/Halfrost-Field/blob/mast...
    hament閱讀 5,645評論 1 31
  • 像是在所有的軌跡里都找不到自己走過的痕跡 被吞沒在日復(fù)一日的人流中夸政,碌碌無為 得不到褒獎,偶爾沮喪榴徐,從沒有貶損守问,更...
    福太靈Taleen閱讀 239評論 0 0
  • 目標(biāo): 1匀归、有個健康快樂的寶寶 2、堅持7天不評判不妄語(第6天有意識少說不說無意義的話) 感恩冥想: 1耗帕、感恩父...
    孫煜涵閱讀 122評論 0 2