美文网首页
【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