【Android】初识路由框架及ARouter基本使用方法

路由框架

定义

路由框架是用于管理应用程序中不同组件(如页面、活动、模块等)之间导航和通信的工具。它通常提供了一种简化的方式来处理路由、参数传递和组件间的调用,使得开发者能够更加方便地管理应用的结构和导航。

路由框架的主要功能包括

  1. 页面导航:允许在不同的页面或组件之间进行跳转,通常支持传递参数。
  2. 路由配置:通过配置文件或注解方式定义路由规则,使得路由逻辑更加清晰。
  3. 参数解析:能够解析并传递参数,确保不同组件之间的数据共享。
  4. 解耦:降低了组件之间的耦合度,使得每个模块可以独立开发和测试。
  5. 动态路由:支持在运行时动态添加或修改路由,增强了灵活性。

为什么需要路由框架?

我们来简单说一下路由框架存在的意义:

  1. 显示Intent:项目庞大以后,类依赖耦合太大,不适合组件化拆分
  2. 隐式Intent:协作开发困难,调用的时候不知道调什么参数
  3. 每个注册了Scheme的Activity都可以直接打开,有安全风险
  4. AndroidMainfest集中式管理比较臃肿
  5. 无法动态修改路由,如果页面出错,无法动态降级
  6. 无法动态拦截跳转,例如未登录的情况下,打开登录页面,登录成功后接着打开刚才想打开的页面
  7. H5、Android、iOS地址不一样,不利于统一跳转
  8. 在一些复杂的业务场景下(比如电商),灵活性比较强,很多功能都是运营人员动态配置的,比如下发一个活动页面,我们事先并不知道具体的目标页面,但如果事先做了约定,提前做好页面映射,便可以自由配置。
  9. 简化代码,数行跳转代码精简成一行代码,这个大家应该都很容易理解,无非就是对代码块的封装。

简单实现

新建router-api模块,新建Router类:

public class Router {
   

    private static volatile Router mInstance;//使用 volatile 关键字防止指令重排序,确保在多线程环境中 mInstance 的正确性

    public static Router getInstance() {
   
        if (mInstance == null) {
   
            synchronized (Router.class) {
   
                if (mInstance == null) {
   
                    mInstance = new Router();
                }
            }
        }
        return mInstance;
    }

    private static Map<String, Class<? extends Activity>> routers = new HashMap<>();

    public void register(String path, Class<? extends Activity> cls) {
   
        routers.put(path, cls);
    }

    public void startActivity(Activity activity, String path) {
   
        Class<? extends Activity> cls = routers.get(path);
        if (cls != null) {
   
            Intent intent = new Intent
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值