首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android 组件化】路由组件 ( 路由组件结构 )

文章目录 一、路由组件原理 二、路由组件基本组成 三、自定义注解模块 四、注解处理器模块 五、博客资源 一、路由组件原理 ---- 在之前博客 【Android 组件化】使用 Gradle 实现组件化...产生的路由表就很大 , 每次调用都要加载整个路由表 , 通过分组拆分需要管理的路由表 , 可以根据具体的需求 , 选择对应的路由表进行加载 ; 二、路由组件基本组成 ---- 路由模块 实现时 , 需要使用注解..., 在该模块下包含所有自定义注解 ; ( Java 工程 ) 模块 2 : 注解处理器模块 , 用于生成 Java 类文件模块 ; ( Java 工程 ) 模块 3 : 项目中引用的依赖库模块 , Android...的 Library Module 依赖库 , 供其它 Android Module 调用的接口 ; ( Android Library 工程 ) ButterKnife , Dagger2 , EventBus..., 用于 标识一个 Android 中的组件类 ; package kim.hsl.router_annotation; import java.lang.annotation.ElementType

37210
您找到你想要的搜索结果了吗?
是的
没有找到

Android 组件化】路由组件 ( 路由框架概述 )

文章目录 一、路由框架概述 二、路由框架整体流程 三、博客资源 组件化系列博客 : 【Android 组件化】从模块化到组件化 【Android 组件化】使用 Gradle 实现组件化 ( Gradle...Module 开发 ) 【Android 组件化】路由组件 ( 路由组件结构 ) 【Android 组件化】路由组件 ( 注解处理器获取被注解的节点 ) 【Android 组件化】路由组件 ( 注解处理器中使用...JavaPoet 生成代码 ) 【Android 组件化】路由组件 ( 注解处理器参数选项设置 ) 【Android 组件化】路由组件 ( 构造路由表中的路由信息 ) 【Android 组件化】路由组件...( 使用 JavaPoet 生成路由表类 ) 【Android 组件化】路由组件 ( 组件间共享的服务 ) 【Android 组件化】路由组件 ( 生成 Root 类记录模块中的路由表 ) 【Android...组件化】路由组件 ( 运行时获取 注解处理器 生成的路由表 ) 【Android 组件化】路由组件 ( 路由框架概述 ) 一、路由框架概述 ---- 路由框架 仅限于在 集成模式 下使用 , 组件模式下

47510

Android 组件化】路由组件 ( 构造路由表中的路由信息 )

@Route 标注的 注解节点的类型 5、路由信息分组 三、完整的 注解处理器 代码 四、博客资源 组件化系列博客 : 【Android 组件化】从模块化到组件化 【Android 组件化】使用 Gradle...实现组件化 ( Gradle 变量定义与使用 ) 【Android 组件化】使用 Gradle 实现组件化 ( 组件模式与集成模式切换 ) 【Android 组件化】使用 Gradle 实现组件化 (...组件 / 集成模式下的 Library Module 开发 ) 【Android 组件化】路由组件 ( 路由组件结构 ) 【Android 组件化】路由组件 ( 注解处理器获取被注解的节点 ) 【Android...组件化】路由组件 ( 注解处理器中使用 JavaPoet 生成代码 ) 【Android 组件化】路由组件 ( 注解处理器参数选项设置 ) 在【Android 组件化】路由组件 ( 注解处理器参数选项设置...extends Element> routeElements 节点是否是 " android.app.Activity " 子类节点 , 如果是则创建路由信息对象 ; mTypeUtils.isSubtype

51120

Android原生与H5通信

H5拥有跨平台的优势,却存在性能上的问题正好可以用搭建原生壳承载H5代码的方式去解决。   如何理解这种方式,就好像说Android原生代码封装外壳,内部包含H5代码作为核心内容。...组个例子,我们利用这种方式做好了一个Android原生APP,现在需要做一个IOS原生APP,我们可以直接简单搭建一个IOS壳,复用H5代码,完成IOS原生APP。...如何实现原生与H5的通信呢?...关于通讯我们需要解决两个问题: 原生向H5通讯 H5向原生通讯   第一个问题很好解决,以Android为例,WebView提供特有的方法,当你打开一个Html,你可以去调用这个Html中包含的JS。...我们规定规则PRE=protocol://android?,当我们拦截的url包含PRE时,则我们认为这是一条指令,不需要跳转页面,应该执行对应操作。

1K20

Android 组件化】路由组件 ( 使用 JavaPoet 生成路由表类 )

1、完整注解处理器代码 2、执行结果 四、博客资源 组件化系列博客 : 【Android 组件化】从模块化到组件化 【Android 组件化】使用 Gradle 实现组件化 ( Gradle 变量定义与使用...) 【Android 组件化】使用 Gradle 实现组件化 ( 组件模式与集成模式切换 ) 【Android 组件化】使用 Gradle 实现组件化 ( 组件 / 集成模式下的 Library Module...开发 ) 【Android 组件化】路由组件 ( 路由组件结构 ) 【Android 组件化】路由组件 ( 注解处理器获取被注解的节点 ) 【Android 组件化】路由组件 ( 注解处理器中使用 JavaPoet...生成代码 ) 【Android 组件化】路由组件 ( 注解处理器参数选项设置 ) 【Android 组件化】路由组件 ( 构造路由表中的路由信息 ) 在 【Android 组件化】路由组件 ( 构造路由表中的路由信息...) 博客中解析了注解的节点及注解属性 , 将路由信息封装在了 RouteBean 中 ; 本篇博客中开始分组管理这些 RouteBean ; 一、要生成的路由表类 ---- 将上一篇博客 【Android

57220

Android-自定义Router(路由)

参考资料:https://mp.weixin.qq.com/s/itAuv86OsTHfBahUrk21DA 我们知道Android的组件化离不开Router,路由的主要主要作用是:消息的中转站,为我们的项目多模块的依赖解耦...,当然市面上有三方路由框架,比如阿里的ARouter就是一个不错的选择,但我们还是要自己自定义一个Router,来研究一下,毕竟自己动手丰衣足食嘛,ok,我们进入正题。...image.png 当然凡是用到路由的项目,其依赖关系一定复杂,但我们这里只是为了讲解路由的实现,所以就项目的耦合度并不高。...这里主要是为了测试如果不在同一个进程中路由的效果,不再进程中主要是因为我在differentprocess模块的功能清单文件中添加了: ?

82830

Android开发进阶系列,整理】Androidh5交互专题

1 交互原理 1.1 webview如何加载H5页面         我们都知道在Android中是通过webView来加载html页面的,根据HTML文件所在的位置不同写法也不同: *//加载assets...Android调用H5中的方法,其实很简单,直接调用就可以了,不需要额外的操作。...mWebView.loadUrl("JavaScript:show()"); 图2:android调用H5中无参数无返回值的方法,截图为H5中的方法 1.2.3 调用H5中带返回值的方法...②调用H5中带返回值的方法 可以调用mWebView.evaluateJavascript()方法,该方法只在安卓4.4以上版本适用,图3为Android调用H5中带返回值的方法。...调用H5中带参数的方法 1.3 h5调用Android原生方法 1.3.1 @JavascriptInterface注解使用     在Android4.2以上可以直接使用@JavascriptInterface

42340

Android 组件化 —— 路由设计最佳实践

接口式调用 如何找到Activity的调用方 如何实现路由的安全调用 如何避开Apt不能汇总所有Module路由的问题 前言 当前Android路由库实在太多了,刚开始的时候想为什么要用路由表的库,用...App的某个页面 运营活动需求,动态把原生的页面替换成H5页面 打开页面需要某些条件,先验证完条件,再去打开那个页面 不合法的打开App的页面被屏蔽掉 H5打开链接在所有平台都一样,方便统一跳转 App...存在就打开页面,不存在就去下载页面下载,只有Google的App Link支持 为什么要有路由 Android原生已经支持AndroidManifest去管理App跳转,为什么要有路由库,这可能是大部分人接触到...H5Android、iOS地址不一样,不利于统一跳转 怎么样的路由才算好路由 路由说到底还是为了解决开发者遇到的各种奇葩需求,使用简单、侵入性低、维护方便是首要条件,不影响你原来的代码,写入代码也很少...的前世今生 设计方案 UrlRouter路由框架的设计 移动端路由层设计 客户端路由动态配置 移动端基于动态路由的架构设计 Android组件化通信(多进程) iOS 组件化 —— 路由设计思路分析 QQ

1.6K30

Android组件化专题 - 路由框架原理

微信公众号:Android研究院 关注可了解更多的Android知识,专注于移动领域,不知代码还有人生的哲学。...为什么需要路由路由框架实现思路路由设计的思路赞赏 在路由框架之前,我们先了解什么是APT,并实践ButterKnife绑定findById的小功能。...为什么先要讲解apt,因为路由的实现apt是核心的代码.看下面链接 APT 实践。 本文项目地址 为什么需要路由 我们知道路由就是实现页面的跳转,然而Android原生已经支持app页面间的跳转。...,如果页面出错,无法动态降级 无法动态拦截跳转,譬如未登录的情况下,打开登录页面,登录成功后接着打开刚才想打开的页面 H5Android、iOS地址不一样,不利于统一跳转 页面路由的意义: 路由最先被应用于网络中...路由常见的使用场景: App接收到一个通知,点击通知打开App的某个页面 浏览器App中点击某个链接打开App的某个页面 App的H5活动页面打开一个链接,可能是H5跳转,也可能是跳转到某一个native

1.7K20

WMRouter:美团外卖Android开源路由框架

总第276篇 2018年 第68篇 WMRouter是一款Android路由框架,基于组件化的设计思路,功能灵活,使用也比较简单。...路由 根据维基百科的解释,路由(routing)可以理解成在互联的网络通过特定的协议把信息从源地址传输到目的地址的过程。一个典型的例子就是在互联网中,路由器可以根据IP协议将数据发送到特定的计算机。...外卖App采用了Native+H5的混合开发模式,Native页面定义了专用的URI,而H5页面则使用HTTP/HTTPS链接在专门的WebView容器中加载,两种链接的跳转逻辑不同,实现起来比较繁琐。...调研发现,现有的一些Android路由组件主要都是在解决多工程之间解耦的问题,而URI往往只支持通过path分发,页面跳转的配置也不够灵活,难以满足实际需要。于是我们决定自行设计实现。...总结 目前业界已有的一些Android路由框架,不能满足外卖App在开发过程中的实际需要,因此我们开发了WMRouter路由框架。

1.3K20

Android组件化开发路由的设计实践

调研了一下目前的路由框架,ARouter(阿里的),ActivityRouter都使用了apt技术 编译时注解,个人想法是一口吃不成胖子,先做个比较实用的。...VpRouter路由框架主要应用于组件化开发中 设计目的 解耦 跨模块跳转 方便服务器配置schema,实现动态配置跳转目标 对外部提供远程访问的功能,实现跨应用调用响应 主要功能点 支持intent...webview启动url 支持配置多个prefix 重要的类 VpRouter 单例模式 入口类 AbsRouter 路由抽象类 主要代码 RouterTable 路由表 IRouterInterceptor...加载路由配置文件 //导入路由表 在application的onCreate中 VpRouter.load(getApplicationContext(),"router.xml"); 路由配置文件...--<action basemodule.test.mainactivity</action -- <class com.vip.vf.android.GuideActivity</class

52520

浅谈简单好用的Android页面路由框架

另一个轮子 为了解决以上问题,我们需要一款能够解耦、简单、功能多、定制性较强、支持拦截逻辑的路由组件:我们选择了Alibaba的ARouter。...N推出的Jack编译链 二、不支持的功能 自定义URL解析规则(考虑支持) 不能动态加载代码模块和添加路由规则(考虑支持) 多路径支持(不想支持,貌似是导致各种混乱的起因) 生成映射关系文档(考虑支持..."/ <action android:name="android.intent.action.VIEW"/ <category android:name="android.intent.category.DEFAULT..."/ <category android:name="android.intent.category.DEFAULT"/ <category android:name="android.intent.category.BROWSABLE..."/ <data android:host="m.aliyun.com" android:scheme="http"/ <data android:host

82310
领券