十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
一、路由方案
原生的路由方案缺點:
顯式:直接的類依賴,耦合嚴(yán)重
隱式:規(guī)則集中式管理,協(xié)作困難
Manifest擴展性較差
跳轉(zhuǎn)過程無法控制
失敗無法降級
ARouter的優(yōu)勢:
使用注解,實現(xiàn)了映射關(guān)系自動注冊 與 分布式路由管理
編譯期間處理注解,并生成映射文件,沒有使用反射,不影響運行時性能
映射關(guān)系按組分類、多級管理,按需初始化
靈活的降級策略,每次跳轉(zhuǎn)都會回調(diào)跳轉(zhuǎn)結(jié)果,避免StartActivity()一旦失敗將會拋出運營級異常
自定義攔截器,自定義攔截順序,可以對路由進行攔截,比如登錄判斷和埋點處理
支持依賴注入,可單獨作為依賴注入框架使用,從而實現(xiàn) 跨模塊API調(diào)用
支持直接解析標(biāo)準(zhǔn)URL進行跳轉(zhuǎn),并自動注入?yún)?shù)到目標(biāo)頁面中
支持獲取Fragment
支持多模塊使用,支持組件化開發(fā)
…….
這么多好處,是時候來了解一下 ARouter
了。
二、ARouter框架
上圖是根據(jù) ARouter
一次基本的路由導(dǎo)航過程,整理的基本框架圖,涉及到主要流程,下面進行詳細(xì)介紹。
三、路由管理
1.注冊
通過注解,在編譯時收集使用了注解的類或變量并經(jīng)過Android Process Tool處理進行統(tǒng)一管理。
包含三種注解@Autowired,@Interceptor,@Route。
@Route
注解定義
String path();//路徑URL字符串 String group() default "";//組名,默認(rèn)為一級路徑名;一旦被設(shè)置,跳轉(zhuǎn)時必須賦值 String name() default "undefined";//該路徑的名稱,用于產(chǎn)生JavaDoc int extras() default Integer.MIN_VALUE;//額外配置的開關(guān)信息;譬如某些頁面是否需要網(wǎng)絡(luò)校驗、登錄校驗等 int priority() default -1;//該路徑的優(yōu)先級