Android组件化和插件化浅谈

Posted on By Vivian Sun

简介

业务逻辑庞大的项目后期,必须对项目进行模块化的拆分。可以通过组件化,插件化等技术来实现。

目的是提高庞大项目的可维护性,易测性,高内聚,低耦合。

组件化和插件化

插件化:偏向于补丁的感觉

  • app包含一个宿主 + N多插件
  • 插件需要依赖宿主
  • 基本不可独立运行
  • 轻量级的插件化,也成为热更新。目前有很多的较为成熟的平台解决方案。

需要解决dex加载,资源加载,dex间的通讯和插件中的组件生命周期等问题。

组件化:偏向于机械零件的感觉

  • 单一的功能组件,例如地图组件、支付组件、路由组件(Router)
  • 负责的组件:有独立的业务逻辑,也可以成为模块
  • 每个组件原则上可以独立工作

需要解决组件间的通讯,组件的单独调试,集成调试等问题

下面是一个项目的架构图,可以看到插件在主程序外,组件是主程序的组成部分。

小结

因目前项目业务逻辑复杂度不高,仅在“utillib”,“appbase”,以及业务公用库,业务MVP架构方面有涉及。

组件化除了接入一些三方组件:比如二维码识别,黄页,音效库组件等,自己还没有沉淀出好的组件。

插件化也因为项目目前对时效性要求不高,目前尚未接入。

待之后有实践之后再补充。

Reference

Android彻底组件化方案实践

Android 模块化探索和实践(1):基本思路