本Demo中实现了以下功能:
开发了一个Demo,用于多模块业务的开发以及数据通讯和传递,通过ARouter,可以实现模块间解藕,独立。
- 增加了 shopcartMoudle和productMoudle以及openserviceMoudle三个模块,详见下图
然后通过App中的点击事件路由到产品和购物车页面。
- openServiceMoudle 主要用于模块间数据传递,比如:购物车要获取产品的的一些详细信息,但又不能直接依赖产品模块。
- shopcartMoudle 功能:
- 跨Moudle调用了ProductMoudle中的ProductService,获得了相应的产品信息
- 跨Moudle调用了ProductMoudle中的ProductFragment,并传递相应的参数,显示相应的Fragment界面。
- productMoudle功能
- 通过ARouter调起 购物车模块页面功能。
设计思想见下图:
- 通过ARouter调起 购物车模块页面功能。
ARouter核心实现
- 利用运行时注解生成的路径和具体Class的绑定关系。放到ARouter的索引中。
- 然后执行执行跳转时,选从索引中查找实现类,找到实现类后,再执行navigation操作。
- 被跳转的类,根据Type的不同,执行的操作也不同,如activity的话,就直接用startActivity,如果是Fragment,直接newInstance(),如果是Service相关,直接通过获取就可以了。
所以总体而言,ARouter 建立了路径对应的实体类的一个映射关系,在具体调用的时,根据不同的类型,执行了不同的Action。
赛文市场营销