Android 路由框架之阿里ARouter详解

本文详细介绍了阿里巴巴的Android路由框架ARouter,包括其起源、功能、原理和使用方法。ARouter主要解决组件化之间的通信问题,支持模块间的路由、通信和解耦。文章涵盖了从添加依赖、初始化SDK到实现各种跳转和拦截器的配置,以及服务管理等功能。此外,还探讨了ARouter的调用关系和流程解析,揭示了其实现组件解耦的关键机制。
摘要由CSDN通过智能技术生成
一、起源
  • 由于业务的增长提高了项目的复杂性,为了更好的适应团队开发,提高开发效率,实行组件化乃大势所趋。
  • 组件化可以让我们程序更容易的扩展、更方便的维护,更快捷的同步开发与更简单的单元调试。
  • 但是由于各个组件在不同的model甚至在不同的项目中,这样他们之间的通信就成了问题,而 ARouter的出现就是让组件间、模块间是实现完全的独立。
  • 并且后台还可以通过路由的机制控制Android界面调用实现远程控制和高度解耦。

二、是什么?

一个用于帮助 Android App 进行组件化改造的框架 —— 支持模块间的路由、通信、解耦


三、功能介绍
  1. 支持直接解析标准URL进行跳转,并自动注入参数到目标页面中
  2. 支持多模块工程使用
  3. 支持添加多个拦截器,自定义拦截顺序
  4. 支持依赖注入,可单独作为依赖注入框架使用
  5. 支持InstantRun
  6. 支持MultiDex(Google方案)
  7. 映射关系按组分类、多级管理,按需初始化
  8. 支持用户指定全局降级与局部降级策略
  9. 页面、拦截器、服务等组件均自动注册到框架
  10. 支持多种方式配置转场动画
  11. 支持获取Fragment
  12. 完全支持Kotlin以及混编
  13. 支持第三方 App 加固(使用 arouter-register 实现自动注册)
  14. 支持生成路由文档
  15. 提供 IDE 插件便捷的关联路径和目标类

四、原理解析
1、调用关系
  • 两个界面之间的跳转,调用关系如下:
    界面调用用例图
  1. 注册:B界面先在ARouter里注册一个唯一标识;
  2. 查询:A界面调用时,ARouter会先查询B界面是否已注册;
  3. 整合:ARouter查询到B界面后,会将A界面传入信息进行整合;
  4. 调用:整合好信息后,会调起B界面并将传入信息传递到B界面。
2、流程解析
  • 界面跳转,arouter做了以下工作:

ARouter流程图


五、原理解析
  1. 从外部URL映射到内部页面,以及参数传递与解析
  2. 跨模块页面跳转,模块间解耦
  3. 拦截跳转过程,处理登陆、埋点等逻辑
  4. 跨模块API调用,通过控制反转来做组件解耦

六、基础功能
1.添加依赖和配置
android {
    defaultConfig {
        ...
        javaCompileOptions {
            annotationProcessorOptions {
                arguments = [AROUTER_MODULE_NAME: project.getName()]
            }
        }
    }
}

dependencies {
    // 替换成最新版本, 需要注意的是api
    // 要与compiler匹配使用,均使用最新版可以保证兼容
    compile 'com.alibaba:arouter-api:x.x.x'
    annotationProcessor 'com.alibaba:arouter-compiler:x.x.x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值