一、注解模块的作用
route-annotation 模块是路由库的基础,它定义了所有与路由相关的注解,这些注解用于标记需要路由的页面、参数和方法。注解模块是一个纯 Java/Kotlin 模块,没有任何依赖,便于被其他模块引用。
二、核心注解
1. @IRoute 注解
用于标记需要路由的 Activity 或 Fragment,是最核心的注解。
/**
* @Description: Activity 和 Fragment 注解
* @param IRoute 用于和ARoute的区分开来
// 路由路径,格式:/模块名/页面名
val path: String,
*/
@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.BINARY)
annotation class IRoute(val path: String)
2. @RouteParam 注解
用于标记路由参数,支持自动注入和类型检查。
@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.BINARY)
annotation class RouteParam(
// 参数所属的路由路径
val routePath: String
)
三、注解的使用方法
1. 标记 Activity
@IRoute(path = "/app/MainActivity")
class MainActivity : AppCompatActivity() {
// ...
}
- 标记 Fragment
@IRoute(path = "/app/MyFragment")
class MyFragment : Fragment() {
// ...
}
- 标记参数类
@JvmField // 必须放在@RouteParam上方
@RouteParam(value = "tab_text")
var tab: String? = null
四、注解的处理流程
注解的处理流程如下:
- 编译时 :注解处理器扫描代码中的注解
- 生成路由表 :根据注解信息生成路由表文件
- 运行时 :路由核心通过路由表查找和执行路由
五、最佳实践
- 路径命名规范 :使用 /模块名/页面名 的格式,如 /app/MainActivity
- 参数类设计 :为每个需要参数的页面创建单独的参数类
- 方法命名 :使用清晰、明确的方法名,便于理解其功能
通过本章的学习,我们了解了注解模块的核心功能和使用方法,接下来我们将深入学习路由库的核心实现。