欢迎来到天天文库
浏览记录
ID:9137417
大小:201.50 KB
页数:25页
时间:2018-04-19
《开源最佳实践:android平台页面路由框架arouter》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、开源最佳实践:Android平台页面路由框架ARouter本文章来自于阿里云云栖社区为了更好地让开发者们更加深入了解阿里开源,阿里云云栖社区在3月1号了举办“阿里幵源项目最佳实践”在线技术峰会,直播讲述了当前阿里新兴和经典开源项冃实战经验以及背后的幵发思路,在本次在线技术峰会上,阿里云资深开发工程师刘志龙分享了Android平台页面路由框架ARouter的技术方案、解决的问题以及在实际场景中的最佳实践。为了更好地让开发者们更加深入了解阿里开源,阿里云云栖社区在3月1号了举办“阿里开源项冃最佳实践”在线技术峰会,直播讲述了当前阿里新兴和经典开源项目实战经验以及背后的开发思路。在本次在线技术峰会
2、上,阿里云资深开发工程师刘志龙分享了Android平台页面路由框架ARouter的技术方案、解决的问题以及在实际场景中的最佳实践。演讲嘉宾介绍:刘志龙(花名正纬),阿里云资深开发工程师,主要从事Android端应用开发,负责阿里云APP的Android端架构设计、中间件开发;阿里云APP服务于阿里云官网用户,用户可以便捷的在移动端管控云上资源,了解云栖社区资讯等。本次分享将主要围绕以下几个方面:一、为什么需耍路由框架、ARouter的技术方案三、使用ARouter的最佳实践四、未来开发计划一、为什么需要路由框架原生的路由方案存在的问题首先谈一谈原生的路由方案存在的问题以及为什么需要路由框架。
3、我们所使用的原生路由方案一般是通过显式intent和隐式intent两种方式实现的,而在显式intent的情况下,因为会存在直接的类依赖的问题,导致耦合非常严重;而在隐式intent情况下,则会出现规则集中式管理,导致协作变得非常困难。而且一般而言配置规则都是在Manifest中的,这就导致了扩展性较差。除此之外,使用原生的路由方案会出现跳转过程无法控制的问题,因为一旦使用了StartActivity()就无法插手其屮任何环节了,只能交给系统管理,这就导致了在跳转失败的情况下无法降级,而是会直接抛出运营级的异常。这时候如果考虑使用自定义的路由组件就可以解决以上的一些问题,比如通过URL索引就
4、可以解决类依赖的问题;通过分布式管理页面配置可以解决隐式intent中集中式管理Path的问题;自己实现整个路由过程也可以拥有良好的扩展性,还可以通过AOP的方式解决跳转过程无法控制的问题,与此同时也能够提供非常灵活的降级方式。为什么要用路由组件前面提到的主要是开发与协作中的问题,而使用一款路由框架时还会涉及到其他的两个大方面:一方面是组件化,而另一方面就是Native和H5的问题。刚才所提到的主要是幵发和协作中作为开发者所需要面对的问题,而一旦一款APP达到一定体量的时候,业务就会膨胀得比较严重,而开发团队的规模也会越来越大,这时候一般都会提出组件化的概念。组件化就是将APP按照一定的功能
5、和业务拆分成多个小组件,不同的组件由不同的开发小组来负责,这样就可以解决大型APP开发过程中的开发与协作的问题,将这些问题分散到小的APP中。目前而言组件化已经有非常多比较成熟的方案了,而自定义路由框架也可以非常好地解决整个APP完成组件化之后模块之间没有耦合的问题,因为没有耦合时使用原生的路由方案肯定是不可以的。另外一个问题就是Native与H5的问题,因为现在的APP很少是纯Native的,也很少会有纯H5的,一般情况下都是将两者进行结合。这时候就需耍非常便捷并且统一的跳转方案,因为在H5屮是无法使用StartActivity()跳转到Native页面的,而从Native跳转到H5页面也
6、只能通过配置浏览器的方式实现。路由框架的特点为了解决以上的问题就需要实现一个自定义的路由框架,而路由框架一般都具有以不的三种特点:1.分发:把一个URL或者请求按照一定的规则分配给一个服务或者贞面来处理,这个流程就是分发,分发是路由框架最基本的功能,当然也可以理解成为简单的跳转。2.管理:将组件和页面按照一定的规则管理起来,在分发的时候提供搜索、加载、修改等操作,这部分就是管理,也是路由框架的基础,上层功能都是建立在管理之上。1.控制:就像路由器一样,路由的过程屮,会有限速、屏蔽等一些控制操作,路由框架也需要在路由的过程中,对路由操作做一些定制性的扩展,比方刚才提到的AOP,后期的功能更新,
7、也是围绕这个部分来做的。今天分享的主题是ARouter,ARouter是阿里巴巴开源的Android平台中对页面、服务提供路由功能的中间件,提倡的是简单且够用。ARouter的7个优势ARouter大致有以下7个优势:聲?优势一:直接解析URL路由,解析参数并赋值到对应冃标字段的页面中。优势二:支持多模块项目,因为现在很少有APP是单模块的项目,一般都是多模块单工程的,由不同的团队负责不同的模块开发,这时候支
此文档下载收益归作者所有