4.22 一面 约60分钟
- 自我介绍
-
介绍实习项目
- 自定义组件流程(项目中提到)
- canvas了解吗
-
项目中遇到的困难
- 事件分发机制(困难中提到滑动冲突)
- 使用过什么框架
- Glide介绍一下(没看过源码,姑且说了图片的加载优化)
- 缓存了解吗(回答LruCache)
- 排序算法,思想,时间复杂度
- 单例模式
- 进程和线程的区别
- 线程安全
- Android进程管理机制
-
算法题:旋转有序数组中找到最小值
可能有些遗漏,部分问题没回答好,而且楼主算法是真的拉,面试官还看着,大脑一片空白,一直卡着,当时已经觉得凉了😂。
最后面试官看时间差不多了,就让我说一下思路,跟我约了二面的时间(这是我没想到的),就结束了。
4.23 二面 约90分钟
- 自我介绍
-
介绍一下做过的项目(一面介绍过实习项目,而且我负责的内容也比较简单,就介绍了其他熟悉的项目
然后根据提到的要点,一个个深入进去(3、4、5) -
MVP模式
MVP模式是为了解决什么问题
MVP每一层代表什么
MVP模式下的数据流动是怎样的 -
自定义组件
你的自定义组件是怎么样实现的,需要提供什么方法,重写什么方法,有什么注意事项?
子View在measure之后位置就确定了吗?
介绍一下onMeasure中的MeasureSpec参数
……
这块的内容比较多,记不清了,甚至有些问题我都可能都没理解清楚,总之就是一半根据自定义组件的实现问,一半深入到各种细节吧。 -
事件分发机制
介绍事件分发的整个过程
长按事件是怎么实现的,你认为应该怎么实现?
ViewGroup可以拦截事件,子View能不能主动申请让ViewGroup不进行拦截? -
Window相关
- 我们看到的各种视图是怎么绘制到屏幕上的?
- Application启动的入口
- Android中哪里用到了binder机制?跟哪个进程通信?
- 做题:数组实现循环队列(好家伙,又没做出来。 没有空出一个位置,导致没法判断队空队满,最后说了思路)
- 向浏览器中输入一个网址到页面展示出来的整个过程发生了什么
- TCP和UDP的区别
- IP,端口号,mac地址分别在哪几层?指代什么?
- IP是一个虚拟的地址,怎样获取真实的地址?
- HTTP缓存
- SSL怎样实现安全通信?
总结,二面的每个问题都会很深入挖掘,非常有压迫感。😂两次题都没做出来感觉有点悬了,只能在收到消息之前发个面经攒攒人品了,许愿能过。
全部评论
(7) 回帖