Android路由框架Router分析详解-创新互联
什么是路由?说简单点就是映射页面跳转关系的,当然它也包含跳转相关的一切功能。
站在用户的角度思考问题,与客户深入沟通,找到桑珠孜网站设计与桑珠孜网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、做网站、企业官网、英文网站、手机端网站、网站推广、空间域名、虚拟主机、企业邮箱。业务覆盖桑珠孜地区。路由框架的意义
Android系统已经给我们提供了api来做页面跳转,比如startActivity
,为什么还需要路由框架呢?我们来简单分析下路由框架存在的意义:
- 在一些复杂的业务场景下(比如电商),灵活性比较强,很多功能都是运营人员动态配置的,比如下发一个活动页面,我们事先并不知道具体的目标页面,但如果事先做了约定,提前做好页面映射,便可以自由配置。
- 随着业务量的增长,客户端必然随之膨胀,开发人员的工作量越来越大,比如64K问题,比如协作开发问题。App一般都会走向组件化、插件化的道路,而组件化、插件化的前提就是解耦,那么我们首先要做的就是解耦页面之间的依赖关系。
- 简化代码。数行跳转代码精简成一行代码。
- 其他...
工作流程图
Router的工作流程简要如下图:
特性
Router
有哪些特性或者有点呢?
- 简单
- 链式调用,api友好
- 多路径支持
- 结果回调,每次跳转都会回调跳转结果
- 编译期处理注解,没有使用反射,不影响运行时性能
- 除了可以使用注解定义路由,还支持手动分配路由
- 自定义拦截器,可以对路由进行拦截,比如登录判断和埋点处理
- 自定义路由匹配规则,相比较其他路由框架,该项目并没有写死路由的匹配规则,除了内置的几个匹配器,用户完全可以定义自己的规则
- 支持隐式Intent跳转
- 支持多模块使用,支持组件化开发
集成
集成过程也可参考项目主页README。
1、在项目级的build.gradle
中加入依赖:
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.x ↑' classpath 'com.chenenyu.router:gradle-plugin:latest.integration' } } // Optional. Specify the dependencies version, default to the latest version. ext { ... routerVersion = "x.y.z" compilerVersion = "x.y.z" }
分享题目:Android路由框架Router分析详解-创新互联
标题来源:http://scyanting.com/article/ggjdo.html