由于在公司负责的开发中没有涉及到这一部分,不过自己还是想学学,在学习了ARouter和“得到”APP技术组开源的组件化框架DDComponentForAndroid,有了自己的一点点思考(虽然在“得到”APP 关于这个框架的介绍中提到了这点思考,不过我还是准备把自己的一点思考记录下来)
组件化:我的理解就是将不同的业务进行分离,比如登录模块就是一个登录组件,天气模块就是一个天气组件,每个模块由单独的人进行开发。实现业务上的解耦。但是有时候,我们往往需要调试,编译,但是别人的模块还没有开发完成,这个时候就需要单独编译,调试。
所以:综上就是 每个业务组件都是一个单独的APP,都能单独编译,调试,打包,发布,并且也能集合到一起,成为一个APP。
首先ARouter框架 解决了页面跳转,组件交互等”疑难杂症”,现在只需要知道页面的地址,需要的参数,那么就可以直接路由过去。并且我们还可以利用降维来进行一些操作,比如需要跳转的页面还未开发完成的时候,我们进行降维。或者要跳转的其他业务组件时,这样即使别人没开发完成也无所谓,我们自己可以先调试自己的代码。
DDComponentForAndroid 这个库主要是对于组件的打包编译做了一些操作,通过修改一些配置文件,动态的改变apply ‘xxx’(比如 apply ‘com.android.library’改为 apply ‘com.android.application‘),这样可以实现单独打包(当为‘application’的时候,得加入一些必要文件才能打包成功)。在这个库中,也提供了组件交互,和页面跳转的方法,不过呢,他的组件交互是用的接口的方法,把自己提供的服务放在一个公共的接口库中,然后每个组件都去依赖这个公共接口库,然后页面跳转,就是通过一个路由来进行跳转。
那么我的想法就是将这两个库结合起来,将DDComponentForAndroid 库的组件交互和页面跳转给去掉,加入ARouter,利用ARouter来做这两件事情,其实组件交互,也是提供接口,只要我们知道了接口,利用ARouter就能进行交互了。页面跳转更不用说了,只要定义好名字和参数,那么我们就能跳转过去了。利用这两个库,应该能够满足大部分的需求了吧