前言 在组件化开发中一个必须要面对的问题就是组件间页面跳转,实现的方法有很多,简单的可以通过反射获取,但是比较耗费性能,也可以通过隐式跳转,但是随着页面的增多,过滤条件会随之增多,后期维护麻烦。那还有什么方法呢,没错,就是接下来要介绍的Arouter路由框架,该框架是阿里巴巴开源项目,大厂出品,必属精品。使用过Arouter得同学都知道Arouter是通过给每个页面添加@Route注解然后调用一定
转载
2023-07-07 21:27:51
135阅读
一、为什么需要路由框架1.原生的路由方案存在的问题首先谈一谈原生的路由方案存在的问题以及为什么需要路由框架。我们所使用的原生路由方案一般是通过显式intent和隐式intent两种方式实现的,而在显式intent的情况下,因为会存在直接的类依赖的问题,导致耦合非常严重;而在隐式intent情况下,则会出现规则集中式管理,导致协作变得非常困难。而且一般而言配置规则都是在Manifest中的,这就导致
转载
2023-07-05 15:17:24
308阅读
Android路由什么是路由?最初接触路由是在大学计算机网络中,网络层IP报文传输会涉及一个路由表的概念,路由表由源IP、目的IP组成,起始就是一个映射表。Android路由也是一个映射表,映射什么呢? 这里先类比一下,如果把手机类比于浏览器,那么每个app就可以类比于一个个的网站,比如百度、头条等等,那么每个app的一个页面就可以类比于一个个网站里面的页面,浏览器的每个页面由url定义,给不同u
转载
2024-02-28 14:46:36
46阅读
1、概述路由路由就是用来跟后端服务器进行交互的一种方式,通过不同的路径,来请求不同的资源实现原理:检测url的变化,截获url地址,然后解析来匹配路由规则2、hash模式其底层源码,主要是通过添加url的hash变化的监听器来实现,通过hashchange事件的触发知道hash值发生了哪些变化,通过transitionTo匹配路由,并通过路由配置,跳转到新的视图组件。当浏览器历史返回或者直接输入链
转载
2024-06-01 13:22:36
32阅读
前言因为项目需要使用到Android组件化开发,因此学习了一下Arouter框架的使用,在Arouter搭建的过程中也遇到了很多坑,也查阅了很多相关博客才解决,因此想记录一下,有兴趣的小伙伴可以看一下我Github上的Demo。接下来是Arouter框架的搭建步骤搭建步骤Step 1新建一个Android空项目后,在gradle.properties文件中增加一个变量isModule=falsei
转载
2024-03-07 23:16:29
40阅读
Android 组件化路由框架设计(仿Arouter)项目地址RouterDemo:https://github.com/532268948/RouterDemo一、前言 在组件化开发中一个必须要面对的问题就是组件间页面跳转,实现的方法有很多,简单的可以通过反射获取,但是比较耗费性能,也可以通过隐式跳转,但是随着页面的增多,过滤条件会随之增多,后期维护麻烦。那还有什么方法呢,没错,就是接下来要介
转载
2023-09-11 18:47:36
80阅读
ARouter原理剖析及手动实现 前言路由跳转在项目中用了一段时间了,最近对Android中的ARouter路由原理也是研究了一番,于是就给大家分享一下自己的心得体会,并教大家如何实现一款简易的路由框架。 本篇文章分为两个部分,第一部分着重剖析ARouter路由的原理,第二部分会带着大家仿照ARouter撸一个自己的路由框架,我们自己撸的路由框架可能没有Arouter众多的功能如过滤
转载
2024-08-07 21:43:25
59阅读
文章目录1. 前言2. 最简单的实现思路3. 改进4. 继续改进4.1. 获取Apk文件所有的类4.2 针对4中第三个问题进行简单改进4.2 针对4中第二个问题进行简单改进 1. 前言对于一个组件化的项目而言,路由的引入必不可少。主要是为了减少组件之间的代码耦合。而路由的最简单的设计思路就是可以在全局的某一个地方来生成一个对应Activity的路由信息表。在Activity要进行模块内或者组件之
转载
2023-06-28 19:10:28
469阅读
什么是路由?说简单点就是映射页面跳转关系的,当然它也包含跳转相关的一切功能。路由框架的意义Android系统已经给我们提供了api来做页面跳转,比如startActivity,为什么还需要路由框架呢?我们来简单分析下路由框架存在的意义:在一些复杂的业务场景下(比如电商),灵活性比较强,很多功能都是运营人员动态配置的,比如下发一个活动页面,我们事先并不知道具体的目标页面,但如果事先做了约定,提前做好
转载
2024-02-27 07:01:35
42阅读
路由的用途使用路由是因为项目实现了组件化,组件化一般分三层,app主层,业务层,基础组件层,层层之间是向下依赖,平级之间不进行依赖,保证了分层隔离,避免代码的耦合。路由分为三个级别:初级路由,中级路由,高级路由初级路由一:初级路由:通过map保存所有的activity页面,跳转时候通过key获取对应的Activity,然后进行跳转。1)首先我们需要在基础层module里,写Router:publi
转载
2023-07-25 22:53:03
296阅读
一、什么是路由说简单点就是映射页面跳转关系的,当然它也包含跳转相关的一切功能。二、为什么需要路由Android系统已经给我们提供了api来做页面跳转,比如startActivity,为什么还需要路由框架呢?我们来简单分析下路由框架存在的意义:在一些复杂的业务场景下(比如电商),灵活性比较强,很多功能都是运营人员动态配置的,比如下发一个活动页面,我们事先并不知道具体的目标页面,但如果事先做了约定,
转载
2023-10-04 13:33:14
72阅读
Android路由框架Router的分析 什么是路由?说简单点就是映射页面跳转关系的,当然它也包含跳转相关的一切功能。 路由框架的意义startActivity,为什么还需要路由框架呢?我们来简单分析下路由框架存在的意义:在一些复杂的业务场景下(比如电商),灵活性比较强,很多功能都是运营人员动态配置的,比如下发一个活动页面,我们事先并不知道具体的目标页面,但如果事先做了约定,提前做好页面映射,便
转载
2023-12-26 20:26:54
48阅读
先说一下背景,目前有需求从外部包括其他应用和WEB跳转到我们自己的APP,就这么个简单的需求…… 要实现这种外部跳转的功能,我们可以理解为打算跳转的一方有多少方式通知到APP进行相对的响应行为。所以,如果是应用之间的跳转,则有多种,你可以直接通过包名和具体的类名去打开已经exported=true的Activity,又或者直接通过Android的广播通知进行相关的APP,又或者通过自定义的U
转载
2023-10-04 09:58:29
24阅读
路由原理
学习记录路由原理 典型的路由选择方式有两种:静态路由和动态路由。 静态路由是在路由器中设置的固定的路由表。 动态路由是网络中的路由器之间相互通信,传递路由信息,利用收到的路由信息更新路由器表的过程。它能
转载
2023-08-24 10:52:59
102阅读
1. 引言平时Android开发中,启动Activity是非常常见的操作,而打开一个新Activity可以直接使用Intent,也可以每个Activity提供一个静态的启动方法。但是有些时候使用这些方法并不那么方便,比如:一个应用内的网页需要打开一个原生Activity页面时。这种情况下,网页的调用代码可能是app.openPage("/testPage")这样,或者是用app.openPage(
转载
2024-04-19 16:27:00
64阅读
本篇文章还是从理解 ARouter 的架构思想和实现细节的角度出发,仿照 ARouter 实现一个简单的路由框架。如果对 ARouter 框架和组件化概念不是很熟悉,可以先看前置文章:Android 组件化基础(一)—— 概述与基本配置。由于能力有限,就仅实现三个基本功能:路由扫描、建立路由表。通过路由跳转到目标页面。通过路由调用其它模块对外暴露的服务。拦截器等功能暂不打算实现。一、概述1.1 项
转载
2023-07-20 20:09:09
71阅读
说在前面很想写一篇关于路由的文章,但是由于一些原因一直没有去完成,直接使用了Arouter作为路由方案,进行了我的组件化改造之路。最近经过一些鞭打,我发现我并不能完整的表达出来,所以我还是决定再去了解了解它的原理,博文内容仅代表个人意见,并且由于本人知识有限,如有错误,敬请指正!谢谢!Arouter在进行分析之前,我们还是对Arouter进行一个介绍: Arouter 是阿里团队在2016年开源的
转载
2023-08-31 16:55:40
51阅读
软路由与硬路由对比
一:软路由定义?
软路由是指利用台式机或服务器配合软件形成路由解决方案,主要靠软件的设置,达成路由器的功能;而硬路由则是以特用的硬设备,包括处理器、电源供应、嵌入式软件,提供设定的路由器功能。
&n
转载
2023-07-24 23:37:13
217阅读
先说一下为什么想写一个这样的框架,Android提供了Intent机制来启动Activity,支持显式跳转和隐式跳转,这已经是一种耦合性低的设计。但是当项目大了,跳转的来源就会很多,有原生的跳转、有H5的跳转、有推送的跳转等等,管理起来就会很麻烦,所以能不能统一这些跳转,为每个Activity配置一个URL,根据schema来判断是要往WebView跳还是要往原生界面跳。有时候跳转之前还需要进行一
转载
2023-08-28 16:13:04
22阅读
开发一款App,总会遇到各种各样的需求和业务,这时候选择一个简单好用的轮子,就可以事半功倍前言Intent intent = new Intent(mContext, XxxActivity.class);
intent.putExtra("key","value");
startActivity(intent);
Intent intent