APP模块化组件化
该库部分思想借鉴了”得到”APP:
个人demo地址:MyComponent
得到开源地址:得到APP
组件化缘故:
当项目逐渐变大的时候,每次你改动了很小的一部分,你也需要重新编译整个APP,举个例子,修改了个人中心样式显示,就得重新编译整个APP.当随着业务的增多,代码变的越来越复杂,每个模块之间的代码耦合变得越来越严重,解耦问题急需解决,同时编译时间也会越来越长。
组件化效果:
毫无悬念,组件化势在必行,在网上看了很多相关的资料,对组件化有一个初步的了解,然后就开始组件化了,下面1以我自己的项目为例,放两张实际项目已经组件化之前跟之后的图对比一下。
可以明显的发现我们的Module变多了,组件化最大的好处就是可以模块可以单独开发调试,这样效率一下子就上来了,就拿XX模块举例,XX实际上就只有三个界面:首页|列表页|详情页.可以说想慢都慢不下来.
组件化要点:
组件与组件跳转(Router)
组件与组件之间依赖服务
广播(EventBus)
组件以lib和application形式存在(可独立运行)
组件化模块介绍:
app(主项目,负责集成众多组件,控制组件的生命周期)
basiclib(公共的基础库,一些第三方的库(网络图片\请求\公共类等))
basicres(定义了全局通用的theme和color等公共资源)
build-gradle(组件化编译的gradle插件,也是整个组件化方案的核心)
componentlib(组件化的基础库(比如router初始化))
componentservice(组件之