一、使用路由实现组件间通信
在 组件化模式 下 , 依赖模块 是 可以 独立运行的 , 但是 模块间 通信的源码还在 , 如 模块 A 启动 模块 B 的 Activity 组件 , 如果在 组件化状态 下 ,
- 模块 B 可以独立运行 , 是可执行模块 , 无法被设置为依赖库的 ;
- 模块 A 调用 模块 B 的代码肯定会报错 ;
- 这就需要引入 路由 实现模块间的通信 ;
- 这里通过引入 ARoute 依赖库实现组件路由 :
- 使用 ARouter 第三方库实现组件化 : GitHub - alibaba/ARouter: 💪 A framework for assisting in the renovation of Android componentization (帮助 Android App 进行组件化改造的路由框架)
ARoute 是阿里的开源库 ;
创建项目 , 项目中有 3 33 个 Module , 1 11 个主模块 app , 2 22 个依赖库 module1 和 module2 ;
在 app , module1 , module2 , 3 个模块的 build.gradle 中 , 都要进行如下配置 ;
在 build.gradle 下的 " android / defaultConfig " 层级添加配置 :
android {
defaultConfig {
...
javaCompileOptions {
annotationProcessorOptions {
arguments = [AROUTER_MODULE_NAME: project.getName()]
}
}
}
}