android组件化总结

模块化最重要的三个方面:
1.模块拆分:公用model sdk、公用资源module、去model化(map、json)
2.模块间通信:路由、ResultReceiver、ioc服务、aidl、广播 3.模块间库的依赖:aar级联依赖、aar对第三方的依赖传递、私有或者公有maven仓库、本地仓库;仓库比aar的好处是有版本号,各个项目可以根据需要随意引用

Android 模块化实践
1.结构图:给出了理想状况和实际状况下的结构图
2.模块拆分:要把每个模块看成独立的app、最小作用域、命名规范:资源文件最好加上模块名prefix, resourcePrefix "module1_"
3.模块间通信:业务模块之间通过路由、ioc服务实现通信,减少相互依赖,降低耦合性。

Android组件化之通信(多模块,多进程)
1.结构图:结构图演变过程
2.模块间通信:模块间单进程-LocalRouter, 模块多进程采用AIDL-WiderRouter;数据格式是json、url; 模块与模块之间只暴露对外开放的Action,通过注册Action和查找Action来进行通信,可以通过apt方式自动注册

Android 组件化开发实践
1.结构图:在gradle.properties中定义IsBuildMudle=false,release模式下是false,debug模式下true
2.模块拆分:
3.模块间通信:隐式启动、通过类名跳转、Scheme跳转

Android组件化之模块解耦和通信
1.结构图:
2.模块拆分:粒度从大到小
3.模块间通信:apt+动态代理的方式跨组件api调用 开源项目https://github.com/xiaoxiaogogo/Qiaoba

Android组件化方案
这个篇文章讲的比较简单,但是比较实用,尤其是把所有的第三方放依赖全放在commonlib中,比较粗暴实用
1.结构图: 2.模块拆分:
3.模块间通信:

Android彻底组件化方案实践

综合网上的实现思路和我们的现状,给出以下方案供大家参考
1.放弃aar依赖,aar层级依赖比较繁琐,每个module里面都要引入位置;aar会丢失依赖的第三方库,虽然可以 写脚本控制或者网上也有现成的插件,但还是比较繁琐。
2.用私有maven仓库,maven库就像引入第三方库一样,有版本控制
3.每个业务module或者功能module根据需要引入库,不再把对外暴露的接口耦合到component。

参考文章:
Android导出aar时嵌套引用的那些坑
Android业务组件化之Gradle和Sonatype Nexus搭建私有maven仓库

转载于:https://my.oschina.net/bruces/blog/1438893

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值