展开

关键词

arouter

相关内容

  • ARouter源码解析(一)前言ARouter 源码番外

    大家在项目组件化的过程中,可能绝大多数的开发者都会使用 ARouter 来作为项目的路由框架。毕竟 ARouter 是阿里出品,优点自然不必多说了。ARouter 源码使用 ARouter 的时候,都需要初始化if (isDebug()) { ARouter.openLog(); ARouter.openDebug();}ARouter.init(hasInit) { logger = _ARouter.logger; _ARouter.logger.info(Consts.TAG, ARouter init start.); hasInit =_ARouter.init(application); if (hasInit) { _ARouter.afterInit(); } _ARouter.logger.info(Consts.TAG,ARouter init over.); }}源码上可以看到,ARouter 的内部其实是 _ARouter 在起作用,ARouter 只是把 _ARouter 再做了一层包装。
    来自:
    浏览:480
  • ARouter 使用教程

    https:blog.csdn.netgdutxiaoxuarticledetails81036719 ARouter 使用教程简介ARouter 是阿里开源的,可以看成是 Android 平台中对页面----ARouter 基本使用ARouter github 地址: ARouter ARouter 的接入也非常简单,一般来说,需要以下几个步骤。接下来,看一下我们的 HTML 跳转测试 自定义Scheme arouter:m.aliyun.comtestactivity1 测试URL Encode情况 arouter:m.aliyun.comtestactivity1如果需要接收 URL 中的参数,需要在 Activity 调用自动注入初始化方法;ARouter.getInstance().inject(this);需要注意的是,如果不使用自动注入,那么可以不写 ARouter.getInstance,这样您才能在 intent 中获取到对应的参数----其他用法监听 ARouter 的执行过程ARouter.getInstance() .build(ARouterConstants.COM_ACTIVITY1
    来自:
    浏览:967
  • ARouter路由记录

    ARouter网上关于 ARouter 源码解析的文章已经不少了,这里简单总结一下自己的理解,方便以后查看和复习什么是路由说起路由,总离不开路由表,在 android 常说的路由表,就是一个hashMapactivity 信息封装成 intent,就实现跳转了.key 的表现形式在清单文件给每个 activity 加一个 label 打上标记作为 key 使用注解在每个 activity 上打上标记ARouter使用的注解ARouter的路由表ARouter 使用 APT 工具在代码编译期间,对打上标记的 activity 进行解析使用 JavaPoet 生成类似如下代码public class ARouterappbuildgeneratedsourceaptdebugcomalibabaandroidarouterroutes然后在 Application 初始化的时候,通过反射创建上述文件的实例对象,然后放入路由表(hashMap)中实现原理1.ARouter在初始化的时候..arouter-api-1.5.0.aar..jarsclasses.jar!
    来自:
    浏览:101
  • 广告
    关闭

    腾讯极客挑战赛-寻找地表最强极客

    报名比赛即有奖,万元礼品和奖金,等你来赢!

  • Android-ARouter

    我们上一篇文章是自定义Router,没有看过的小伙伴自定义Router,但今天我们来看一看世面上主流的路由框架-由阿里推出的ARouter.。com.alibaba:arouter-api:1.3.1 annotationProcessor com.alibaba:arouter-compiler:1.2.01.2 代码初始化public(); 开始调试 ARouter.openDebug(); } ARouter的实例化 ARouter.init(this); }}2.常见功能实现2.1 Activity的跳转2.1.1 Activity那我们如何运用ARouter进行判断呢? 首先我们需要自定义一个NavigationCallback 。image.png2.4 ARouter实现StartActivityForResult()?
    来自:
    浏览:753
  • ARouter源码解析(四)

    arouter-compiler version : 1.2.2前言之前对 arouter-api 做了整个流程的分析,今天来看看 arouter-compiler 。arouter-compiler 主要是利用 apt 在编译期自动生成代码的。之前我们看到的 ARouter$$Root$$app 、 ARouter$$Group$$test 和 Test1Activity$$ARouter$$Autowired 等都是 arouter-compiler那接下来就分析分析 arouter-compiler 是怎么生成这些源码的。$$app ,ARouter$$Providers$$app 和 ARouter$$Group$$test 这种类型;RouteProcessor在这里我们就只分析 RouteProcessor 了。
    来自:
    浏览:291
  • ARouter源码解析(五)

    ,ARouter 可以通过扫描 dex 文件中 class 的全类名,来加载 compiler 生成的路由类。预先需要了解的知识点:自定义 gradle plugingradle transform api使用 asm 实现字节码插桩arouter-register================arouter-registerlooks like below: register(com.alibaba.android.arouter.routes.ARouter$$Root$$app); register(com.alibaba.android.arouter.routes.ARouter$$Interceptors$$app); register(com.alibaba.android.arouter.routes.ARouter$$Group$$arouter); }那么顺便来跟踪一下LcomalibabaandroidaroutercoreLogisticsCenter;->registerByPlugin:Z .line 69 const-string v0, com.alibaba.android.arouter.routes.ARouter
    来自:
    浏览:510
  • 编译时注解(三)Arouter源码讲解

    这时就需要阿里的一个路由框架Arouter Arouter的使用就不再多说了。hasInit) { logger = _ARouter.logger; _ARouter.logger.info(Consts.TAG, ARouter init start.); hasInit =_ARouter.init(application);********* if (hasInit) { _ARouter.afterInit(); ********* } _ARouter.logger.info(Consts.TAG, ARouter init over.); } }_ARouter.afterInit();里面就下面一句,初始化拦截器服务 interceptorService = (InterceptorService) ARouter.getInstance().build(arouterserviceinterceptor).navigation();下面看_ARouter.init。
    来自:
    浏览:276
  • 阿里ARouter使用及源码解析(一)

    关于ARouter具体实现功能,典型应用以及相应技术方案实现的介绍不在这详细介绍,具体可参见开源最佳实践:Android平台页面路由框架ARouter。().build(testtest1).navigation(); } }}以上相关代码就是ARouter的最基本功能使用的步骤,下面来分析跳转功能是如何实现的。原理分析1.ARouter编译的过程ARouter在编译期的时候,利用自定义注解完成了页面的自动注册。相关注解源码参见arouter-annotation,编译处理器源码参见arouter-compiler下面是注解@Route的源码介绍:@Target({ElementType.TYPE})@Retention将代码编译一遍,可以看到ARouter生成下面几个源文件:?
    来自:
    浏览:421
  • ARouter源码解析(三)前言@Autowired解析结束

    arouter-api version : 1.4.1前言到现在为止,ARouter 还有最后的依赖注入还没有解析过,那么今天就来深入探究一下其实现原理。@Autowired解析想要用 ARouter 实现依赖注入,需要在 ActivityFragment 中加上ARouter.getInstance().inject(this);那么我们这个代码就成为了我们分析的入口了public void inject(Object thiz) { _ARouter.inject(thiz);}ARouter 内部还是调用了 _ARouter 的 inject 方法。答案就是在编译期自动生成的类 XXXX$$ARouter$$Autowired ,我们找 demo 中生成的 Test1Activity$$ARouter$$Autowired 来看看public class结束看到这,基本上 ARouter 依赖注入的东西就讲完了。这一系列下来,ARouter 代码层面的流程都讲的差不多。
    来自:
    浏览:1305
  • 使用ARouter进行Android模块化开发

    ARouter框架官方地址:ARouter开源地址 官方对ARouter框架的定义是:一个用于帮助 Android App 进行组件化改造的框架 —— 支持模块间的路由、通信、解耦。ARouter提供的回调方式的函数如下:ARouter.getInstance().build(MainRoutePath.MAIN_ACTIVITY).navigation(this, new NavCallback) { Log.d(ARouter, 跳转完了); } @Override public void onInterrupt(Postcard postcard) { Log.d(ARouter, 被拦截了Helper,在 Android Studio 插件市场中搜索 ARouter Helper, 或者直接下载文档上方 最新版本 中列出的 arouter-idea-plugin zip 安装包手动安装ARouter模块化示例接下来,将会用一个demo介绍如何用ARouter进行模块化开发,demo模块化的整体架构如下图所示。
    来自:
    浏览:740
  • Android项目解耦--路由框架ARouter源码解析

    前言上一篇文章Android项目解耦--路由框架ARouter的使用讲述了ARouter在项目中的使用,这边文章主要对ARouter的源码进行学习和分析。ARouter的结构ARouter主要由三部分组成,包括对外提供的api调用模块、注解模块以及编译时通过注解生产相关的类模块。arouter-annotation注解的声明和信息存储类的模块 arouter-compiler编译期解析注解信息并生成相应类以便进行注入的模块 arouter-api核心调用Api功能的模块annotationapi部分我们可以参数上一篇文章Android项目解耦--路由框架ARouter的使用,ARouter实现我们具体在下面讲解。ARouter的工作流程?ARouter(_ARouter)模块ARouter主要提供对外调用的api,_ARouter路由协议的具体实现类。
    来自:
    浏览:222
  • ARouter源码解析(二)前言拦截器解析

    arouter-api version : 1.4.1前言前几天对 ARouter 的页面跳转源码进行了分析,趁着今天有空,就讲讲 ARouter 里面的拦截器吧。ARouter 拦截器的使用方法在这就不多说了,不了解的同学可以去 GitHub 上看看。那就直接进入正题了。hasInit) { logger = _ARouter.logger; _ARouter.logger.info(Consts.TAG, ARouter init start.); hasInit =_ARouter.init(application); 如果初始化完成了 if (hasInit) { _ARouter.afterInit(); } _ARouter.logger.info(Consts.TAG, ARouter init over.); }}在 init 中,判断了初始化完成后,调用了 _ARouter.afterInit() 来初始化拦截器,跟进代码去看看。
    来自:
    浏览:443
  • Android项目解耦--路由框架ARouter的使用

    现在有的模块解耦的最好的轮子ARouter git上star四千多。ARouter应用场景 从外部URL映射到内部页面,以及参数传递与解析跨模块页面跳转,模块间解耦拦截跳转过程,处理登陆、埋点等逻辑跨模块API调用,通过控制反转来做组件解耦ARouter的已支持功能支持直接解析标准:x.x.x annotationProcessor com.alibaba:arouter-compiler:x.x.x ...}(); 打印日志 ARouter.openDebug(); 开启调试模式(如果在InstantRun模式下运行,必须开启调试模式!线上版本需要关闭,否则有安全风险)}ARouter.init(mApplication); 尽可能早,推荐在Application中初始化发起路由操作 1.
    来自:
    浏览:706
  • 阿里ARouter拦截器使用及源码解析(二)

    阿里ARouter的分析计划阿里ARouter使用及源码解析(一)阿里ARouter拦截器使用及源码解析(二)阿里ARouter参数自动装载使用及源码解析(三)关于ARouter基本跳转的用法以及源码解析在上篇文章阿里阿里ARouter使用及源码解析(一)已经有过分析,有不清楚的同学可以去看看。本篇文章主要是关于ARouter进阶用法拦截器的使用和分析。拦截器的使用方式先自定义两个拦截器,看看跳转过程中,拦截器的执行顺序。init(Context context) { Log.e(testService, Test2Interceptor.class.getName() + has init.); }}带回调函数的跳转: ARouter.getInstance执行顺序在上篇文章中,在分析到ARouter初始化的时候,提到过_ARouter的afterInit()方法,这个方法的作用就是生成一个拦截器的服务对象,然后将所有的拦截器都初始化, 保存在仓库Warehouse.interceptors
    来自:
    浏览:1386
  • 乐固加固后AROUTER无法使用?

    我的应用为android开发的 ,使用乐固后arouter无法使用了 ,但是不加固是可以用的 。
    来自:
    回答:1
  • 使用乐固后arouter无法使用,这是怎么回事?

    使用乐固后arouter无法使用,这是怎么回事
    来自:
    回答:1
  • ARouter 传自定义对象获取值为null的解析 及解决方法

    tim 20190111153505这里可以看到,ARouter 获取了 我们自定义的 SerializationService 并且调用了 object2Json 方法,获取到转换后的字符串,然后将字符串保存到wechat _20190111153939这里可以看到,ARouter 其实内部根据类名,生成了一个内部类,我们继续跟踪进去再跟踪?wechat _20190111154119这里可以看到,其实ARouter已经将我们的自定义的SerializationService 服务实例化,但是不知道怎么回事,却没有将取出来的字符串传进服务里调用parseObject 这个函数转回对象---- OK 以上是问题出现的经过,以及断点逐步分析问题所在,下面说说解决方案 问题排查,以及解决方案按道理,这么明显的BUG,阿里的工程师不会犯的,所以我把ARoutergetStringExtra($S) : getString($S)) + , new com.alibaba.android.arouter.facade.model.TypeWrapper(){}.
    来自:
    浏览:1332
  • Android路由框架ARouter分析

    来自:
    浏览:163
  • Android ARouter路由框架解析

    来自:
    浏览:137
  • ARouter三问—腾讯真题

    来自:
    浏览:264

扫码关注云+社区

领取腾讯云代金券