【Android开发】阿里巴巴 -- 钉钉部门一、二、三面
面试是个双向选择的过程,但对于求职者而言,拥有多高的技术水平,才能有多少选择。
每个程序员都不是全能的大神,总会有知识漏洞,但如果在与面试官浅聊的过程中,你就暴露了很多问题,比如基本技术点答不上来、深层原理一概不知,那面试注定要凉。因此,日常知识的积累非常重要,面试开始前的刷题更是必不可少。
阿里钉钉一面(面试时长80min)
- 自我介绍,对自己项目的介绍,架构图呈现
- 因为说自己以后的发展方向是音视频,所以问了我用过哪些现有框架
- 项目中的一些优化问题,MVC -> MVP,Handler的内存泄漏情况分析等,对MVP和MVVM的理解。
- 项目中的第三方库选择的问题,因为简历中写了我对第三方库选择的问题,比如选ObjectBox和greenDao的问题,图片加载框架问题
- HashMap和HashTable,引申ConCurrentHashmap的深入,version1.7和1,8的区别,以及高并发下HashMap发生的问题
- 四大启动模式,以及场景对应
- Handler的机制介绍,不存在消息时的IdleHandler的运作机制,为什么不能在子线程初始化问题
- 设计模式中的单例介绍,使用场景(Okhttp的Seesion存储等等),在线编写
- 快排算法
- OkHttp的源码分析,及整体架构的流程图绘制
- 四大组件的完整介绍,及深入,答了IntentService、LocalBroadcast
- 四大引用的问题和MVP框架相结合进行回答
- 网络中的响应码对大体进行回答,具体回答了200、404、500、304等
- View绘制流程问题,如何不使用xml,来实现中间位置的定位
- 事件分发机制流程讲解,以及如何实现单击事件和长按事件的判定
- 关于为什么选用mqtt协议的问题,优势,原理等等(没答上来,只说针对性做过测压,以及oceanlink和mqtt的对比)
阿里钉钉二面(面试时长30min)
- 自我介绍,优缺点的,以及未来希望的发展方向
- 目整体介绍,如何做到分压啊之类的问题
- 如果给我阿里、腾讯、头条、谷歌的offer的一个选择(不掺杂地域性的问题),首先直接否定了google我就的一个企业的商业模式进行分析。
- 我对钉钉这个产品的理解,我的回答是就的是钉钉前身的对标项目微信,已经后期转型的商业模式作出的分析,最后给出的我的结论是一个企业性质的办公软件
- 给出了钉钉一个mac平台的关于共享屏幕的耗CPU的问题
- 让我提问,提的是关于音视频发展方向的问题,具体是一个发展空间。
阿里钉钉三面(面试时长60min,有概率通,要等hr)
- 自我介绍呗,还是一样,项目介绍,项目的优缺点对比
- 对MVC和MVP的理解,还有Handler的内存泄漏问题具体是什么,解决方案知道有什么,空数据的时候Handler的阻塞问题,但是我还是没在Looper的源码中找到,这里让我好好再看一下。
- 另外为什么使用MVP,他的优势是什么,内存泄漏是什么样的。
- http的长连接和短连接这两个概念,怎么去理解。我把它理解为持久化连接是什么,然后对http的3个版本的主要区别做一个介绍
- http一整个流程,什么Baidu.com输入,经过了什么。比较简单的问题了,必答内容DNS、TCP的三次握手、四次挥手,当然我再答一些IP路由、链路还有物理层的内容
- RecyclerView的一个复用机制,和ListView的一个区别在哪里
- HashMap、ConcurrentHashMap、Hashtable的问题,数据结构,线程安全啊之类的问题了,当然还是考了version 1.7和1.8。
- 一个app的启动流程,冷启动和热启动,我说底层我不太了解,只知道会有AMS去调一些东西,但是具体内容不知道,后面就是一些初始化和Activitiy生命周期问题了。
- 一到算法题三值之和求目标值,没写暴力,因为大家都会写,但是浪费了很多时间,刚开始是通过二值求和的方式,但是想做成O(n),其实不太可能,后面改成了O(n^2)
以上阿里巴巴Android开发岗的一二三面题,你能答出几道呢?大家可以收藏起来,方便及时查看。
除此之外,大家还可以点击我的主页,有整理好的Android大厂中高级面试题集,并在持续更新😀~
最后,祝大家在金九银十都能如愿拿到心仪的offer,越过大厂的龙门!
#Android##安卓工程师##android##Android面试##安卓工程师面经#Android面试 文章被收录于专栏
Android开发面经