Android组件化开发步骤

源码地址:

https://github.com/guiying712/AndroidModulePattern

项目结构

首先看下插件化app的项目架构:

lib_common是整个项目的通用底层组件,可以被所有其他的组件依赖,module_girls module_main module_news是三个项目组件,他们可以互相跳转,跳转通过路由的方式,虽然组件开发的方式大大解耦了各个组件间的依赖关系,提升并行开发能力,但是这种跳转方式也带来了风险.消息传递通过eventbus,其中module_main还是整个app的入口页面.

module_app是这个app的壳工程,没有具体的业务,负责管理其他的组件和打包.比如在集成模式下打包所有组件进apk,在单独模式下只打包一个组件进apk.

项目难点及解决

1.首先要解决的问题是,如何保证每个组件在单独开发的时候能够编译成单独的module,在集成的时候能够作为lib被编译进apk.要解决这个问题就要知道单独的module和lib的区别:

在gradle文件中,module依赖的是这样的:

而lib依赖的是

在manifest文件中,module的manifest是这样的

lib的manifest是这样的

不同的地方在于,lib中自己的application是空的,而moduou中application必须不能是空的,而且还要有自己的application类.

根据这点不同,我们可以在打包的时候配置参数isModule,根据这个参数动态配置两个不同的manifest和不同的依赖,达到动态实现module或者lib的目的.每个module中也必须有一个自己的application实现类,在module模式下,module使用自己的application,在集成模式下使用app的application.

最后来看一下modul_app作为外壳,做了哪些事情:

外壳只有两件事情,一是定义集成模式下的manifest,而是写好集成模式下的application类,另外,在module_app的gradle中也有打包配置:

可以看到,在集成模式下app依赖所有组件,在单独开发模式下则依赖基础库.

总结

综上,组件化开发其实并不难,只是在编译打包之前做好相关配置,在单独开发模式下,每个组件依赖自己的基础组件,使用自己定义的application和manifest.在集成模式下,每个组件依赖基础组件,module_app依赖每一个子组件,同时application和manifetst都使用module_app中定义好的.

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值