【Android组件化面试题】 组件化在项目中的意义(阿里)

组件化在项目中的意义(阿里)

这道题想考察什么?
  1. 是否了解组件化的作用 与 概念理论?
考察的知识点
  1. 组件化存在的意义与理论的基本知识
考生应该如何回答

1.组件化有什么意义,没有组件化会出现什么问题?

早期的单一分层模式
问题一:无论分包怎么做,随着项目增大,项目失去层次感,后面接手的人扑街
问题二:包名约束太弱,稍有不注意,就会不同业务包直接互相调用,代码高耦合
问题三:多人开发在版本管理中,容易出现代码覆盖冲突等问题

​ 请看一下图:

img

所有的代码都写在app模块中不同的包里面,请看一下图:

img

组件化的意义:不相互依赖,可以相互交互,任意组合,高度解耦,自由拆卸,自由组装,重复利用,分层独立化

img

此时:app不在是老大,子模块都是小弟

组件化后,所有的module都平起平坐,有人说app的module在组件化中是个壳子,这也是为什么成为app壳工程的原因

同学们思考,如果没有组件化,还是单一:
1.彻底砍掉order子模块,需要多少工作?
2.如何给项目增加一个子模块(钱包)?

2.组件 与 组件 的通信方式那些?

方式一 使用 EventBus的方式,缺点是:EventBean维护成本太高,不好去管理:
方式二 使用广播的方式,缺点是:不好管理,都统一发出去了
方式三 使用隐士意图方式,缺点是:在AndroidManifest.xml里面配置xml写的太多了
方式四 使用类加载方式,缺点就是,容易写错包名类名,缺点较少
方式五 使用全局Map的方式,缺点是,要注册很多的对象

方式六 使用 阿里巴巴开源框架 ARouter

最后

我整理了一套Android面试题合集,除了以上面试题,还包含【Java 基础、集合、多线程、虚拟机、反射、泛型、并发编程、Android四大组件、异步任务和消息机制、UI绘制、性能调优、SDN、第三方框架、设计模式、Kotlin、计算机网络、系统启动流程、Dart、Flutter、算法和数据结构、NDK、H.264、H.265.音频编解码、FFmpeg、OpenMax、OpenCV、OpenGL ES
在这里插入图片描述

有需要的朋友可以扫描下方二维码,免费领取全部面试题+答案解析!!!

猜你喜欢

转载自blog.csdn.net/datian1234/article/details/135026238