Android路由框架Router分析详解-创新互联

什么是路由?说简单点就是映射页面跳转关系的,当然它也包含跳转相关的一切功能。

站在用户的角度思考问题,与客户深入沟通,找到桑珠孜网站设计与桑珠孜网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、做网站、企业官网、英文网站、手机端网站、网站推广、空间域名、虚拟主机、企业邮箱。业务覆盖桑珠孜地区。

路由框架的意义

Android系统已经给我们提供了api来做页面跳转,比如startActivity,为什么还需要路由框架呢?我们来简单分析下路由框架存在的意义:

  • 在一些复杂的业务场景下(比如电商),灵活性比较强,很多功能都是运营人员动态配置的,比如下发一个活动页面,我们事先并不知道具体的目标页面,但如果事先做了约定,提前做好页面映射,便可以自由配置。
  • 随着业务量的增长,客户端必然随之膨胀,开发人员的工作量越来越大,比如64K问题,比如协作开发问题。App一般都会走向组件化、插件化的道路,而组件化、插件化的前提就是解耦,那么我们首先要做的就是解耦页面之间的依赖关系。
  • 简化代码。数行跳转代码精简成一行代码。
  • 其他...

工作流程图

Router的工作流程简要如下图:

Android路由框架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