1. 什么是组件化开发呢?
在项目开发中,会将公用的代码提取出来制作基础库Base Module,将某些单独的功能封装到Library module中,更具业务来划分module。
组件:指的是单一的功能组件,如视频组件(VideoSDK)、支付组件(PaySDK)、路由组件(Router)等,每个组件都能单独抽出来制作成SDK。
模块:指的是业务模块(LiveModule)、首页模块(HomeModule)、即时通信模块(IMModule)等。模块相对于组件来说粒度更大,模块可能包含多种不同的组件。
1.1 组件化开发有什么好处?
1)避免重复造轮子,可以节省开发和维护的成本。
2)可以通过组件和模块为业务基准合理地安排人力,提高开发效率。
3)不同的项目可以公用一个组件或模块,确保整体技术方案的一致性。
4)为未来插件化共用一套底层模型做准备。
1.2 模块化开发的好处?
1)业务模块解耦,业务移植更加简单。
2)多团队根据业务内容进行并行开发和测试。
3)单个业务可以单独编译打包,加快编译速度。
4)多个app共用模块,降低了研发和维护的成本。
组件化和模块化都是为了代码重用和业务解耦。区别在于模块化是业务导向,组件化是功能导向。
项目体积越来越大后,必定会有超过65536的一天,要么选择multidex的方式分包解决,要么使用插件化的方式来完成项目。
组件化和模块化的划分可以更好地为项目插件化开路,插件化的模块化发布和正常发布有着非常大的差异,已经脱离了组件化和模块化的构建机制,插件化拥有更高效的业务解耦。
1.1.3 基础组件架构介绍
分为应用层、组件层和基础层。
1)基础层:包含一些基础库和对基础库的封装,包括图片加载、网络加载、数据存储等。
2)组件层:包含一些简单的业务,比如登陆、数据观看、图片浏览等。
3)应用层用于统筹全部组件,并输出生成app。
1.2.1 依赖
Android Studio 独有设计—— module依赖。
module 的依赖包括对第三方库的依赖,也包含对其他module的依赖。通过依赖我们可以访问第三方和其他被依赖Module的代码和资源。
三种基本的依赖方式:
1)Jar dependency:通过Gradle配置引入lib文件夹中的所有.jar后缀的文件,还能引用
网友评论