arouter
文章平均质量分 69
锐湃
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Arouter如何获取 PendingIntent
本文探讨了在模块化开发中使用ARouter传递PendingIntent的解决方案。当跨模块页面跳转需要PendingIntent时,通过ARouter获取目标Activity的Class对象,避免直接引用类名导致的耦合问题。具体实现步骤包括:使用ARouter构建Postcard对象,获取目标Activity的Class,创建Intent并附加参数Bundle,最后生成PendingIntent。这种方法有效解决了模块间页面跳转的耦合问题,适用于通知跳转等场景。转载 2025-08-08 16:58:54 · 68 阅读 · 0 评论 -
ARouter 获取 Intent
摘要:ARouter通过Postcard获取目标Activity的Intent,实现页面跳转和参数传递。关键步骤是通过LogisticsCenter.completion()初始化路由信息,再使用postcard.getDestination()获取目标类名创建Intent。这种方式避免了直接依赖类路径,降低耦合度,适用于需要自定义Intent或与其他框架集成的场景。可传递简单参数或通过Bundle/Parcelable传递复杂数据。转载 2025-08-08 16:56:59 · 92 阅读 · 0 评论 -
ARouter基本使用及原理分析
ARouter是阿里开源的一款帮助Android App进行组件化改造的路由框架,是Android平台中对页面和服务提供路由功能的中间件,可以实现在不同模块的Activity之间跳转。ARouter的特点是灵活性强还能帮助项目解耦。除了广为人知的Activity跳转之外,ARouter还支持获取Fragment,解耦服务使得跨模块API调用等等ARouter使用@Route注解,在编译时期通过APT技术生成类文件用于存储path和activityClass的映射关系。转载 2024-12-24 00:49:24 · 506 阅读 · 0 评论 -
ARouter启动优化引发的探索
笔者在做启动优化时,发现第一次启动应用时,ARouter初始化耗时占用了接近2s的时间。查询优化方案时,发现只需要通过一个插件就可以解决了。感觉解决方法挺新奇的,但由于对ARouter底层实现不是非常了解,所以本文就诞生了,从一个小白的角度分析下这个插件是如何做到的,实现思路对我们又有什么启发。ARouter最初通过扫描dex找到符合条件的类,完成注册表信息的存储。带来的弊端就是第一次启动非常耗时,对于低端机型影响更大。另外对一些加固应用来说,扫描dex文件也可能会失败。转载 2024-12-24 00:45:40 · 394 阅读 · 0 评论 -
Android Gradle8.0 Transform 废弃如何适配,手撸Arouter插件教你使用
最近公司也在适配项目至Android14 否则市场不让上架,因此 gradle也必须适配升级了,就先来试试水。目前最新的AGP已经到8.3了,适配AGP8.0也要提上日程了,尤其是一些插件项目,因为8.0删除了transform API,所以需要提前做好适配工作。对于之前未了解过gradle自定义插件的同学可以看下我以前的7.0之前的gradle自定义插件的用法 教你如何一步步实现路由插件。Android 自定义Gradle插件,使用Transform。转载 2024-12-19 00:10:43 · 814 阅读 · 0 评论 -
“终于懂了” 系列:组件化框架 ARouter 完全解析(三)AGP/Transform/ASM—动态代码注入
本篇内容较多,前半部分都是在介绍铺垫知识,只有完全理解了才能掌握ARouter框架的核心。其中Gradle、AGP是Android开发中必定使用到的技术点,希望通过对ARouter的学习能更加深刻的理解Android编译构建的过程,以及使用Gradle插件能完成哪些事情。Transform是官方Gradle 插件中提供的API,它能获取和处理被打进dex文件之前的class文件。不过Transform在最新的Gradle插件版本中被废弃了,不过这不影响我们我们对它的学习。转载 2024-12-18 23:53:32 · 229 阅读 · 0 评论 -
Android 34 Arouter适配Gradle7.4.2和8.0
然后我就还是找了Arouter的github文档想看看更新说明,好家伙,几年没更新了,但是好人还是多的,这个好哥们就给咱更新了Arouter的插件。使用34sdk必须是gradle7.0以上的版本,因为种种问题省略了必须要7.4.2以上才能正常适配,但是从gradle 7.2开始。换成 : classpath "io.github.JailedBird:arouter-gradle-plugin:1.0.2"绿色部分是加的,红色是删除的,跟git一样的,一目了然了吧。转载 2024-10-22 17:34:12 · 1268 阅读 · 0 评论 -
AGP 8.0 路由框架新思路 Arouter gradle
说到路由又是老生长谈了,阿里的ARouter、美团的WMRouter这些老牌知名度很高的路由框架。由于 AGP 8.0 以后不能支持,Github 上也有很多人提了PR,Issues 里边也有很多个开发了支持8.0 的插件。去年我为了支持 AGP 8.0 以及 KSP, 也写了一个路由框架LRouter。新框架难免会有很多问题,刚好公司有一个新项目要做,我自己在公司的项目中第一个接入的,踩了半年的坑,也基本上稳定了下来。在这里把遇到的一个很致命的编译问题分享一下解决的思路。转载 2024-07-17 16:55:35 · 900 阅读 · 0 评论 -
【KRouter】一个简单且轻量级的Kotlin Routing框架
KRouter(Kotlin-Router)是一个简单而轻量级的Kotlin路由框架。具体来说,KRouter是一个通过URI来发现接口实现类的框架。之所以这样做,是因为在使用Voyager一段时间后,我发现模块之间的通信不够灵活,需要一些配置,而且使用DeepLink有点奇怪,所以我更喜欢使用路由来实现模块之间的通信,于是我开发了这个库。这个库主要通过KSP、ServiceLoader和反射来实现。转载 2023-09-05 10:57:00 · 373 阅读 · 0 评论 -
ARouter实现Activity向Fragment中传值
在Activity中创建一个Bundle对象,通过bundle的put方法将数据存储,然后通过fragment的setArguments方法,传递Bundle对象到fragment中,然后再在该Fragment中通过getArguments方法得到Bundle数据源,最后通过bundle的get方法,获得指定的数据类型对象。今天来点不一样的,使用一个我们常用的阿里的ARouter来进行Activity向Fragment的传值。商业转载请联系作者获得授权,非商业转载请注明出处。转载 2023-05-19 13:15:53 · 666 阅读 · 0 评论 -
通过查看源码用Arouter产生的postCard实例提取参数构建Intent进行跳转
关键代码是LogisticsCenter.completion(postCard),没有这行代码postCard.getDestination()会返回空;这样就可以以原生方式来进行页面跳转了原创 2023-05-18 09:45:47 · 363 阅读 · 0 评论 -
Kotlin+ARouter完美实现Android页面路由跳转
打开的界面接收参数,也只需要配置一个@Autowired注解就搞定了,这种直接注入的方式,代码很优雅简洁。链接:https://juejin.cn/post/7193760500201553975。结合Kotlin的高阶函数语法,实在是太妙了。在调用的时候,你只需要这样写就行了。商业转载请联系作者获得授权,非商业转载请注明出处。ARouter我想就不用我多说了吧,阿里的组件化路由框架。转载 2023-05-17 14:04:08 · 581 阅读 · 0 评论 -
Kotlin集成Arouter
链接:https://www.jianshu.com/p/3991195031cd。商业转载请联系作者获得授权,非商业转载请注明出处。注意:此处的与官网教程不一样。的相互跳转不受影响。为了软件间的解耦操作,确保模块之间。以上工作做完后,就可以在需要跳转的。的集成说明,故在此记录下来。注意需要在两个地方进行配置。中添加引用及编译配置。包用于存放需要跳转的。转载 2023-05-17 13:58:04 · 459 阅读 · 0 评论 -
【安卓进阶】 这次我把ARouter源码搞清楚啦
在开发一个项目的时候,我们总是希望架构出的代码能够自由复用自由组装,实现单一职责,并且抽离维护着各种各样可重复使用的组件。而在组件化过程中,路由是个绕不过去的坎。当模块可以自由拼装拆除的时候,类的强引用方式变得不可取。因为有些类很可能在编译期间就找不到了。所以就需要有种方式能通直接过序列化的字符串来拉起对应的功能或者页面。也就是通常的路由功能。ARouter就是一个接受度非常高的开源路由方案。我写这篇文章,目的是对ARouter的源码原理进行一个全面的分析梳理。转载 2023-05-17 12:04:34 · 500 阅读 · 0 评论 -
ARouter的分析
之后,遍历这个routerMap,根据文件的后缀名,“groupsIndex”, "interceptorsIndex", "providersIndex"分别装载进对应的容器IRouteRoot、IInterceptorGroup、IIProviderGroup。路由类型,标识跳转到哪些类型、获取哪些服务对象、或者方法。根据包名读取对应的文件路径并且存储在Set routerMap中。通过sp的技术存储在本地,下次初始化时会从缓存中读取,同时会记录一个版本号,2. 注册的内容有哪些?转载 2023-05-17 11:30:54 · 122 阅读 · 0 评论 -
ARouter Fragment的startActivityForResult
ARouter Fragment的startActivityForResult处理转载 2023-05-17 10:29:57 · 227 阅读 · 0 评论 -
加固后ARouter罢工了?看这里
最近有使用腾讯乐固进行apk加固的同学发现,ARouter在加固后不能正常工作了,找不到组件。issue: 应用加固后无法找到组件问题issue: ARouter 采用腾讯乐加固后不执行话不多说,直接上解决方案注意:以下解决方案针对ARouter版本为目前的最新版1.3.1。转载 2023-05-17 10:28:24 · 483 阅读 · 0 评论 -
startActivityForResult与ARouter在fragment中使用startActivityForResult
以上简单的实现基本能够满足日常使用,如果更复杂的使用场景那么可以选择更加完善易用的三方库。还有,不同的启动模式会对startActivityForResult造成各种影响,切记切记。作者:Mtk链接:https://juejin.cn/post/6861944938381672462来源:稀土掘金著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。转载 2023-05-17 10:19:18 · 780 阅读 · 0 评论 -
基于ARouter实现startActivityForResult的链式调用
调用Proxy的newProxyInstance方法可以生成代理对象 ,实现InvocationHandler接口的对象,在调用方式时会调用它的invoke方法,可以看到这个方法中调用了被代理对象的方法: method.invoke(),所以我们可以在这里加上我们的业务逻辑。路由跳转时我们需要的参数大致有path路径,requestCode以及传递的数据,如果使用静态代理去实现的话,后期可能不太好维护,那么一个更好的解决办法就是使用注解+动态代理,可以实现类Retrofit式使用,方便扩展维护。转载 2023-05-17 10:13:24 · 1191 阅读 · 0 评论 -
企业级项目组件化重构之路
前面几篇文章我们讲解了一个云音乐app的基础库搭建,今天我们就来对这个app进行组件化代码重构组件化基础库封装系列文章Android组件化开发(一)--Maven私服的搭建Android组件化开发(二)--网络请求组件封装Android组件化开发(三)--图片加载组件封装Android组件化开发(四)--进程保活组件的封装Android组件化开发(五)--完整版音乐播放组件的封装Android组件化开发(六)-- 短视频播放组件封装Android组件化开发(七)--从零开始教你分析项目需求并实现项目地址。转载 2023-04-24 10:05:19 · 190 阅读 · 0 评论 -
组件化基础ARouter(四、拦截器)
ARouter是一个用于帮助Android App进行组件化改造的框架 —— 支持模块间的路由、通信、解耦。ARouter的典型应用场景有:从外部URL映射到内部页面,以及参数传递与解析;跨模块页面跳转,模块间解耦;拦截跳转过程,处理登陆、埋点等逻辑;跨模块API调用,通过控制反转来做组件解耦;本篇主要介绍ARouter的用法之一:拦截跳转。拦截跳转比较经典的应用就是在跳转过程中处理登陆事件,这样就不需要在目标页重复做登陆检查。转载 2023-04-23 14:05:40 · 891 阅读 · 0 评论 -
ARouter使用(二)模块间Service通信调用
在组件式开发时,有时在某个Module下想要使用其他Module的业务,很不方便,要不重新写一个,要么提到公共Module,ARouter直接可以解决这类问题。版权声明:本文为优快云博主「国际巨星赫赫」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.youkuaiyun.com/he6687086/article/details/114660874。这样就可以直接从FirstModule调用SecondModule的Service了,拜拜👋。转载 2023-04-23 13:53:20 · 541 阅读 · 0 评论 -
ARouter实现界面跳转和传参
背景:ARouter字面意思一个路由器,是由阿里巴巴集团开源的路由框架,主要解决不同module之间界面跳转的问题,现在大型app都流行模块化开发,比如登录功能写成一个module,设置功能写成一个module,主页写成一个module,这样界面间的跳转使用传统的方式会非常复杂,于是ARouter诞生了!原文链接:https://blog.youkuaiyun.com/xiyangyang8110/article/details/120579135。2起始activity。3目标activity。转载 2022-12-01 18:59:21 · 821 阅读 · 0 评论 -
onNewIntent方法中调用ARouter.getInstance().inject(this);得不到参数
得不到参数,查看ARouter在build过程中生成的代码可以知道它是调用了activity的getIntent来获取参数的,但是onNewIntent中的intent和在onCreate方法中的intent并不相同,所以需要在onNewIntent方法中调用setIntent方法,然后就能得到参数了。检查项目依赖的全部module包括module依赖的module(没有页面的module也算),在每个module的 build.gradle中加上下面的代码。,在onNewIntent方法中调用。转载 2022-12-01 18:55:23 · 610 阅读 · 0 评论 -
探索Android开源框架 - ARouter使用及源码解析
最近对项目进行组件化重构,要进行组件化就少不了组件间通信的路由,于是就再次研究了一下阿里的ARouter,关于组件化可以查看我之前写的组件化架构系列文章,这里就不过多提及了。1. 添加依赖在baseRouter module 的 build.gradle的dependencies中加入中添加依赖 (最好把路由相关放到单独的module中,并进行二次封装,方便日后的管理和替换) 在其他需要进行组件化通信的各模块的build.gradle的dependencies中加入 设置AROUTE转载 2022-06-23 09:47:18 · 1716 阅读 · 0 评论 -
ARouter解析七:降级策略
今天我们接着来学习下阿里今年开源的路由框架ARouter,这个也是我们这个解析系列内容的最后一篇了,后面还会一片总结的分享。今天分享下ARouter的降级策略。那么降级策略是个什么鬼?使用系统自带的StartActivity()启动后就无法插手其中任何环节了,只能交给系统管理,这就导致了在跳转失败的情况下无法降级,而是会直接抛出运营级的异常,甚至导致崩溃,这个给用户的感觉就不是很好。ARouter的降级策略就允许我们在自定义降级服务,在跳转失败的时候可以自行处理,比如可以加载H5页面来处理这种错误情况。今转载 2022-03-11 11:34:15 · 884 阅读 · 0 评论 -
组件化开发之简单的ARouter
组件化的开发的优点1.提高编译速度2.超级解耦3.功能重用4.便于团都开发组件化开发需要注意的几点1.包名和资源文件名命名冲突问题2.Gradle中版本号的统一管理3.组件中application和library的切换4.AndroidManifest.xml文件的区分ARouter实现原理通过注解和注解处理器在编译代码的时候自动生成一个类,每一个模块都会自动生成一个类,通过注解标记得到所有的Activity,并且把这些Activity都添加到一个集合中,这个集合就添加了所有模块转载 2021-01-11 14:19:26 · 333 阅读 · 0 评论 -
Arouter实现判断路由是否存在
/** * 判断路由是否存在 * @param context 上下文 * @param path 路由 */ fun isExist(context:Context,path:String):Boolean{ val pretreatmentService = ARouter.getInstance().navigation(PretreatmentService::class.java) if (null != pretr.转载 2021-01-21 21:12:32 · 600 阅读 · 0 评论
分享