学习自

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

背景

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

整体实施

原有的耦合

接口隔离

配置传入

整体思路比较简单,就是面向接口,具体实现传入配置,实现配置式编程
但是在实践的时候,确实是比较繁琐的,也做了很多工作
需要把一个页面耦合的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平台化文章中就是这样实践的

后记

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

【Android】【架构】【美团猫眼模块化】相关推荐

  1. 美团猫眼android模块化实战-可能是最详细的模块化实战

    转载请注明出处: 美团猫眼电影android模块化实战–可能是最详细的模块化实战 地址:http://blog.csdn.net/qq_22744433/article/details/7794844 ...

  2. 美团猫眼电影android模块化实战--可能是最详细的模块化实战

    转载请注明出处: 美团猫眼电影android模块化实战–可能是最详细的模块化实战 地址:http://www.jianshu.com/p/d372cc6802e5 目录 1 写这篇博客的初衷 首先一句 ...

  3. Android架构思考(模块化、多进程)

    Android架构思考(模块化.多进程) Dec 28, 2016| Android | 4777 Hits 15条评论 关于模块化(组件化)这个问题,我想每个开发者可能都认真的思考过.随着项目的开发 ...

  4. Android架构篇-1 项目组织架构

    Android架构篇-1 项目组织架构 模块化分层 1.结构清晰,各模块代码分离,符合高内聚低耦合,快速定位查找代码 2.团队协作开发灵活,互不影响,各模块完成后合并即可完成整体app 3.抽离公共层 ...

  5. android 启动白屏_为什么说Android 架构的未来是 MVVM?

    据<第45次中国互联网络发展状况统计报告>,2019年市场上监测到的APP数量比2018年减少85万款- 这两年,很多朋友都会有这样的疑惑: "现在Android的坑还值不值得入 ...

  6. BATZ,一份《Android架构开发手册》就够,已offer

    前言 今年的面试比往年要难得多,各个互联网企业对于Android岗位的要求越来越多,也越来越高,主要是初级岗位已经趋近饱和,但高级岗位又相对来说缺乏,这类的人才偏少,因此作为Android开发人员,我 ...

  7. Android架构师亲述:我从某度外包到字节,你知道我经历了什么吗?

    Android架构师亲述:我从某度外包到字节,你知道我经历了什么吗? 朋友在某大型互联网公司担任架构师.刚毕业那年,他以外包的身份进入了某度,那个时候几乎每一天都很焦虑,大家技术能力没差太多,为何我是 ...

  8. Android8.0学习(1)---Android 架构

    Android 架构(8.0以前) Android 系统架构包含以下组件: 图 1. Android 系统架构 应用框架 应用框架最常被应用开发者使用.如果您是硬件开发者,则应该了解开发者 API,因 ...

  9. Android架构初探

    #一 背景 点评美团合并之后,业务需要整合,我们部门的几条业务需要往美团平台迁移,为了降低迁移成本,开发和维护成本,以及将来可能要做的单元测试,需要对架构进行相应的调整.之前的代码都堆在Activit ...

  10. 成为一名合格Android架构师,移动APP开发框架盘点,面试资料分享

    缘起 经过近十年的发展,Android技术优化日新月异,如今Android 10.0 已经发布,Android系统性能也已经非常流畅,可以在体验上完全媲美iOS.到了各大厂商手里,改源码.自定义系统, ...

最新文章

  1. 【项目实战课】NLP入门第1课,人人免费可学,基于TextCNN的新闻文本分类实战...
  2. 【QM-02】Master Data (QM主数据的设置)
  3. 2021年互联网企业软件测试面试题(超实用)
  4. C# 数据结构--排序[下]
  5. Java 反射机制深入研究
  6. windows配置Python多版本共存
  7. C语言实现下载网页的方法【原创】
  8. 徐汉彬:亿级Web系统搭建—单机到分布式集群
  9. 杭电1437 天气情况
  10. mysql5.5备份数据库_mysql5.5数据库备份
  11. 【初赛】NOIP2018程序模板
  12. mmap()映射硬盘的文件
  13. 最新版华为HG255D硬件定义
  14. lora网关软件设计_LoRa网关芯片SX1301IMLTRT网关设计资料
  15. 详解 物理四大神兽————薛定谔的猫
  16. 【课件制作软件】Focusky教程 | 设置文字阴影效果
  17. C语言简单编程案例(一)
  18. [遗传学]近亲繁殖与杂种优势
  19. 学习大数据:Java基础篇之反射
  20. Vimeo上传功能中的SSRF

热门文章

  1. 机器学习-累计分布函数(CDF)
  2. 解决du df结果不一样的问题
  3. 【三维CAD设计经验分享】CrownCAD设计:零件3D建模设计
  4. 如何在Mac上打开和使用AirPlay,以便在更大的显示器上进行屏幕镜像?
  5. html怎么把图片左移_css怎么让图片向左移动?
  6. 怎么在中国知网免费下载论文?
  7. word段落中插入公式后格式编辑
  8. SE91 SAP消息类型
  9. Arduino连接超声波传感器测距
  10. Amos中介效应检验