日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

【Android 组件化】路由组件 ( 路由框架概述 )

發布時間:2025/6/17 Android 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Android 组件化】路由组件 ( 路由框架概述 ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、路由框架概述
  • 二、路由框架整體流程
  • 三、博客資源

組件化系列博客 :

  • 【Android 組件化】從模塊化到組件化
  • 【Android 組件化】使用 Gradle 實現組件化 ( Gradle 變量定義與使用 )
  • 【Android 組件化】使用 Gradle 實現組件化 ( 組件模式與集成模式切換 )
  • 【Android 組件化】使用 Gradle 實現組件化 ( 組件 / 集成模式下的 Library Module 開發 )
  • 【Android 組件化】路由組件 ( 路由組件結構 )
  • 【Android 組件化】路由組件 ( 注解處理器獲取被注解的節點 )
  • 【Android 組件化】路由組件 ( 注解處理器中使用 JavaPoet 生成代碼 )
  • 【Android 組件化】路由組件 ( 注解處理器參數選項設置 )
  • 【Android 組件化】路由組件 ( 構造路由表中的路由信息 )
  • 【Android 組件化】路由組件 ( 使用 JavaPoet 生成路由表類 )
  • 【Android 組件化】路由組件 ( 組件間共享的服務 )
  • 【Android 組件化】路由組件 ( 生成 Root 類記錄模塊中的路由表 )
  • 【Android 組件化】路由組件 ( 運行時獲取 注解處理器 生成的路由表 )
  • 【Android 組件化】路由組件 ( 路由框架概述 )




一、路由框架概述



路由框架 僅限于在 集成模式 下使用 , 組件模式下 , 路由框架不起任何作用 ;

在組件模式時 , 由于沒有直接引用其它模塊的類 , 獨立運行時 , 也可以單獨編譯運行 ;


完整的組件化項目 ,

有一個主應用 , 和若干 Library 依賴庫 ,

主應用 需要 依賴這些 Library 依賴庫 ;


Library 依賴庫之間需要有通信功能 , 有以下幾種解決方案 : ① AIDL , ② 廣播 BroadcastReceiver , ③ EventBus ;

AIDL 需要編寫注冊 Service 服務 , 并將服務進行綁定 ;
BroadcastReceiver 廣播接收者 , 需要編寫并注冊 , 還需要發送廣播 ;
EventBus 每個方法都要定義 Bean , 維護成本很高 ;


使用 路由框架 , 只要在想要暴露出去的類上使用 @Route 注解 , 就將該類暴露出去了 ,

在另外一個模塊中 , 可以直接通過路由地址 , 獲取并使用 @Route 注解暴露出來的類 ;





二、路由框架整體流程



定義 編譯時注解 :

package kim.hsl.router_annotation;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;@Target({ElementType.TYPE}) @Retention(RetentionPolicy.CLASS) public @interface Route {/*** 路由路徑, 標識一個路由節點* 該字段沒有默認值, 必須設置* @return*/String path();/*** 路由分組, 默認為空, 選擇性設置* 路由節點可以按照分組進行加載* @return*/String group() default ""; }

使用編譯時注解 :

@Route(path = "/app/MainActivity") public class MainActivity extends Activity {@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);} }

注解處理器 在編譯時 , 自動生成如下 路由表 類 , 下面的類對應的是 app 路由分組對應的路由表 , 用于管理 路由表中的 路由節點 ;

package kim.hsl.router;import java.lang.Override; import java.lang.String; import java.util.Map; import kim.hsl.component.MainActivity; import kim.hsl.route_core.template.IRouteGroup; import kim.hsl.router_annotation.model.RouteBean;public class Router_Group_app implements IRouteGroup {@Overridepublic void loadInto(Map<String, RouteBean> atlas) {atlas.put("app", new RouteBean(RouteBean.Type.ACTIVITY, MainActivity.class, "/app/MainActivity", "app"));} }

生成的路由表需要進行管理 , 一個 Module 模塊生成一個總 Root 表 , 用于管理該 Module 模塊的 路由分組 ;

package kim.hsl.router;import java.lang.Class; import java.lang.Override; import java.lang.String; import java.util.Map; import kim.hsl.route_core.template.IRouteGroup; import kim.hsl.route_core.template.IRouteRoot;public class Router_Root_app implements IRouteRoot {@Overridepublic void loadInto(Map<String, Class<? extends IRouteGroup>> routes) {routes.put("app", Router_Group_app.class);} }

使用 路由框架 時 , 首先要初始化路由表信息 , 在 Application 中調用 Router 的 init 方法 , 通過調用 注解處理器 編譯時 生成的 路由分組表 , Root 表 , 獲取路由信息 ;

具體如何在 運行時 獲取路由表 , 參考 【Android 組件化】路由組件 ( 運行時獲取 注解處理器 生成的路由表 ) 博客 ;


給定 一個路由地址 , 先去查找 Root 表 , 根據 路由地址 " /app/MainActivity " 中的分組信息 " app " , 查找 " app " 對應的路由表 Router_Group_app.class ;

然后獲取 路由表 Router_Group_app.class 中的 " /app/MainActivity " 地址對應的 路由節點信息 " new RouteBean(RouteBean.Type.ACTIVITY, MainActivity.class, “/app/MainActivity”, “app”) " , 該路由地址對應 MainActivity.class 路由節點 , 是 Activity 類型的節點 ;





三、博客資源



博客源碼 :

  • GitHub : https://github.com/han1202012/Component
  • CSDN 下載 :


總結

以上是生活随笔為你收集整理的【Android 组件化】路由组件 ( 路由框架概述 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。