欢迎star/issue,项目地址:https://github.com/Dovar66/DRouter
写在开头
组件化技术适用于需要多人协作的中大型项目,如果是一个人的项目且开发人员未实践过组件化方案则不建议采用。
组件化的优点
- 业务隔离,使得各业务模块专注于自己的业务实现,而不必关心其他业务模块.
- 单独调试,每个模块可以独立运行,方便开发调试.
- 组件可复用性,针对有重叠业务的不同APP,可直接使用组件来组装.
- 适合AOP.
- 可以更细粒度的设置组员的代码修改权限.
DRouter:简单易用的支持多进程架构的组件化方案
DRouter主要提供三大功能:界面路由、动作路由和事件总线,帮助Android开发者更容易地完成项目的组件化改造.
特别是对于多进程应用,引入DRouter能够让开发者在不用了解AIDL的情况下就可以进行跨进程通信.
框架特点
* 完美支持多进程,且不需要使用者去bindService或自定义AIDL.
* 页面路由:支持给Activity定义url,然后通过url跳转到Activity,支持添加拦截器.
* 支持跨进程的API调用(动作路由).
* 支持跨进程的事件总线.
* 基于AOP引导Module的初始化以及页面、拦截器、Provider的自动注册.
如何配置
1.在项目根目录的 build.gradle 中添加 JitPack 仓库:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
2.在BaseModule中添加依赖:
api 'com.github.Dovar66.DRouter:router-api:1.0.8'
3.在其他需要用到DRouter的组件中添加注解处理器的依赖:
annotationProcessor 'com.github.Dovar66.DRouter:router-compiler:1.0.8'
同时在这些组件的defaultConfig中配置注解参数,指定唯一的组件名:
defaultConfig {
javaCompileOptions {
annotationProcessorOptions {
arguments = [moduleName: project.getName()]
}
}
}
4.多进程配置:
* 如果你的项目需要使用多进程广域路由,那么请让你的Application实现 IMultiProcess 接口,广域路由默认是关闭状态,只有实现了该接口才会启用。
* 在App module的build.gradle文件中,且必须在apply plugin: 'com.android.application'之后引用编译插件RouterPlugin,具体如下:
apply plugin: 'com.android.application'
apply plugin: "com.dovar.router.plugin" //必须在apply plugin: 'com.android.application'之后,否则找不到AppExtension
buildscript {
repositories {
google()
maven {
url "