您的位置:首页 > 移动开发 > Android开发

android组件化总结

2017-07-17 11:39 99 查看
模块化最重要的三个方面:

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仓库
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  组件化 模块化