Android组件化开发
单工程项目缺陷
- 各种业务代码混杂在同一个模块里,开发人员在开发、调试过程的效率越来越低,比如定位某个业务问题,需要在多个业务代码混合的模块中寻找和跳转。
- 由于项目工程越来越庞大,编译完整代码所花费的时间越来越长。
- 代码复用性差,写过的代码很难抽离出来再次利用。
- 多人协作开发时,开发风格不一,很难将业务完全分割,大家互相影响,导致开发效率低下。
为什么使用组件化
- 开发过程中,这些组件被其他组件依赖,但是在调试时可以单独成为独立的工程并且运行,这样就解决了因为编译耗时过多降低开发效率的问题。
- 每个组件单人负责,降低沟通成本。
什么是组件化
- 对数据和方法的简单封装,功能单一,高内聚,并且是业务能划分的最小粒度。
模块化
组件化更注重关注点分离,将复杂的问题合理分解,再分别仔细研究这些问题的不同侧面(关注点),最后综合得到整体解决方案。
插件化
组件化只有一个APK,每个组件是一个library。
插件化是多个APK,并且在运行时通过动态加载的技术方案,来加载这些插件APK。
组件开发要考虑的问题
1、组件分层:如何将一个庞大的项目工程分成有机的整体。
2、组件单独运行和集成调试:每个组件都是高度内聚的,是一个完整的整体,如何让其单独运行和调试?在开发阶段如何做到按需编译组件。
3、组件间通信:二秘阁组件具体细节互相不了解,但每个组件都需要给其他调用方服务,那么主项目和组件、组件和组件之间如何通信?
4、组件生命周期:这里的生命周期指的是组件在应用间存在的时间,组件是否可以做到按需,动态使用,因此就会涉及到组件加载、卸载等管理问题。