美文网首页
【Android】【架构】【美团猫眼模块化】

【Android】【架构】【美团猫眼模块化】

作者: 徐乙_ | 来源:发表于2019-08-11 14:27 被阅读0次

背景

美团猫眼lib需要移植到团App、点评App
这里希望底层服务使用宿主App的(服务:网络库,缓存库,下拉刷新...)
于是每次调用到这些服务的时候,面向接口
所有的接口实现类,需要写进一个配置类
使用这个lib的时候,只需要传入配置即可

整体实施

原有的耦合

image.png

接口隔离

image.png

配置传入

image.png

整体思路比较简单,就是面向接口,具体实现传入配置,实现配置式编程
但是在实践的时候,确实是比较繁琐的,也做了很多工作
需要把一个页面耦合的Model、utils、基类、资源、引用的View统统抽离

细节工作

1、拆分Model、Utils
2、资源拆分:无需去做,太过繁琐,因为资源最终会Merge,如果外部希望覆盖,复写即可
3、拆分功能,面向接口
4、MVP - LifeCycle,以View作为V,粒度更小
5、使用ServiceLoader,反射创建实现类
6、开发Gradle插件扫描配置文件,校验合法性
7、数据库抽离
8、使用ViewModel共享页面数据
9、广播进行模块、进程通信
10、ContentProvider监听宿主数据

收获

1、这其实就是配置式编程,分析软件开发过程中易变与不变的性质,留口传参,配置注入
就好像Retrofit一样,把converter、adapter开放出来,留一个口传入
这是非常好的思想,值得借鉴
2、个人觉得既然是美团系App,不如和两个App底层库尽可能统一
底层库假如能够统一,就不用做这么多复杂工作了
实际开发中,底层库统一是很正常的,都是用三方库,用哪个不是用,比如难道就必须使用GreenDao吗
统一后反而还能增加人效
这点在美团外卖App平台化文章中就是这样实践的

后记

学习自
https://mp.weixin.qq.com/s/kd3VUJkQLAcyjvkaDGKhng?tdsourcetag=s_pctim_aiomsg

有什么写得错误、让人费解或遗漏的地方,希望可以不吝赐教,我会马上更改

相关文章

网友评论

      本文标题:【Android】【架构】【美团猫眼模块化】

      本文链接:https://www.haomeiwen.com/subject/vhfsjctx.html