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仓库
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仓库
相关文章推荐
- Android架构之App组件化方案详细实践与总结
- Android异步消息处理机制总结
- Android 之Bitmap的使用总结
- Android退出App相关技术总结
- Android文件操作总结
- Android JNI技术总结
- Android桌面弹窗实现总结
- Android 软键盘出现不适应的解决办法总结
- 个人总结--Android 应用开发中国大学生挑战赛
- Android音视频点/直播模块开发知识总结-1
- Android Canvas 方法总结
- Android面试问题收集总结
- DelphiXE Android的所有权限按照分类总结说明
- 总结下Android相关的Intent启动
- [Android基础]Android总结篇
- Android中Spinner的使用及其详细总结(可实现下拉列表)
- Android通知Notification总结
- 【总结】Android攻城狮之Toast
- Android Activity总结
- Android源码编译整理总结