-
可以灵活的对业务模块进行组装和拆分。
-
避免重复造轮子,节省开发维护成本;
多个团队公用同一个组件,在一定层度上确保了技术方案的统一性。
总结:其实组件化更多的是适合于项目大 但是功能相对集中的一些项目。比如 一个金融类的App 里面只包含金融的功能,金融功能又会有 借贷,理财,线下交易,把这些模块抽成单独的组件。
插件化是将一个apk根据业务功能拆分成不同的子apk(也就是不同的插件),每个子apk可以独立编译打包,最终发布上线的是集成后的apk。在apk使用时,每个插件是动态加载的,插件也可以进行热修复和热更新。它也是属于模块化的一种体现。不过它的单位是apk,一个完整的项目。灵活性在于加载apk,按需下载,动态更新。
如果一个应用所有的功能是非常多的,比如滴滴、美团、支付宝,他们除了一些基础的业务功能,还有其他的业务功能,如果都打成一个apk,文件将非常大,用插件化的方式开发后,apk只包含基础的业务功能,使用过程中用户可以按需加载自己需要的功能模块。
插件化的开发并没有一个官方的插件化方案,它是国内提出的一种技术实现,利用虚拟机的类的加载机制实现的一种技术手段,往往需要hook一些系统api,而Google从Android9.0开始限制对系统私有api的使用,也就造成了插件化的兼容性问题,现在几个流行的插件化技术框架,都是大厂根据自己的需求,开源出