目前阶段的秒拍工程已经有了一套成熟的组件化体系,不过仍然很多问题等待解决。1.组件化完全依赖于工程的一些配置文件,导致没有一定经验的开发人员不能合理的把控好开闭原则。 2.当时提出的构想(组建一键切换为插件)仍然没有实现 3.繁琐的配置会容易出错。 为了解决这些问题,所以将提出下一代组件化的框架。1.基本思路主工程到底应该依赖什么?现阶段的主工程,都是通过gradle的dependence直接compile引入gradle工程内部的project,如果可以更换一种方式,比如通过 "compile远程依赖",来引入其他工程,内部的module也都加上版本控制,这样会大大增加工程的稳定性。主工程配置如下MpAppWrapperConfig { localMavenDir = "mpLocalMaven" exclude['yxplayer'] }其中,localMavenDir ,为指定的一个本地maven目录。通过此方法,构建一个本地的maven。然后其他工程publish到此maven目录下,可以增加编译的速度。module怎样定义最好?
组件化的反思:最早的组件化概念应该是从OSGI模型演变过来的。当时在JavaWeb领域,开发者为了将服务细分,出现了面向接口编程的思路。而由于工程的庞大再加上单纯的规范已经不能严格要求开发人员按照约定的规范进行 “接口” 编程了。组件化由此应运而生。组件化的出现就是为了解决几个问题:功能拆分解耦组建单独编译,不影响整个工程。Android 平台的早期组件化思路底层Framework为基础业务,所有公共的功能在此体现。上层组建单独依赖于FrameWork项目结构: +------------------------------+ | | +--------+ FrameWork +---+ | | | | | +-----------+------------------+ |
躺在洞里
一介码农