首先从小米HR邀约开始。2019-11-18号电话到我 预约本周面试。当时协商是周三下午5点钟;邮件已发。准确时间是 11-20日下午17:00。
下一个时间点大概是 11-19日下午 电话到我讲面试官有事情,没得时间安排。然后我们一顿协商“他们的时间大概就是上午都是会议,不得行。下午14:30到17:00可以,但是有的已经有安排” 最终我们协调到了下周二下午14:30。有变更邮件。
没过多久通过手机号加我微信道“上午安排面试的话 本周是否可以.”,一番交手后,HR小姐姐计划给安排到周五 也就是今天 11-22日上午10点。未收到邮件。聊天记录有的。
早8点多,我咨询对方HR 今天面试官时间是否协调好了。嗯 对方一副肯定的语气。信誓旦旦的 发来了截屏消息。与我预约 11月22日10本周五的记录。
好的,到这里,我第一反应是邮箱垃圾邮件被拦截了。翻了一下 没瞅到。 跟HR再次确定后 打车上路了,一直到大概还有十多分钟路程的时候,瞅了眼微信。 HR小姐姐 在 我上车后十几分钟 发来的消息。
巨尴尬。 接着是让在前台先等一会儿,接着是我来打电话到邮件的HR手上。微信上的邀约的人员还强调“就说你到了前台,今天去面,别的不要说”
是的,最终大概在10点20左右 是有一位年轻的小伙子下来;嗯 看准备应该是临时安排。
聊到的问题基本也都在我这块知识储备内。
- 自定义View流程。我这块从自定义View聊到Window中 从rootViewImpl到surfaceflinger。当然再往下 我也没深入。
- touchEvent分发
- DroidPlugin的实现方案。 我是从占位、到跳转流程,到hook的点都有讲到。额 但赶脚面试的人 不是很明白整个流程。甚至再三强调“为啥要占位”“直接加载class完成跳转不行么”
- 多线程。具体落点是 Rxjava 的map、flatmap.以及 Flowable的背压。
- 启动优化。从启动时-launch,到AMS、到ActivityThread启动,再到application的一些方法。以及一些我们能干涉的点,都有讲。 同上,面试的人 对整个流程发出的疑问点有3个
- 1、怎么统计优化效果(adb shell am start -W splashActivity)
- 2、第一个页面 什么时候绘制完”(onresume 或者对 View.addOnGlobalLayoutListener)
- 3、为啥Activity 提前被new出来也是优化点。
至此面试官大致水平应该已经出来了。
接着是让手撕算法。
题目:删除单链表倒数K个节点。
我大致写了一段。
定义两个指针,a.b同时指向头部。a先往前走k步。然后 a/b同时往后遍历。
当a指针指向尾部的时候。b指针应该在倒数K+1个节点。然后执行删除操作。return.
其实遍历出来做也可以。
接着又问了一个Glide的问题,优缺点以及缓存。好的 亮点到了 缓存是LRU算法。
让我手写LRU。我讲到手写有点多 讲下思路。
内部hashMap管理。对引用values 再做层包装 来保存时间。内部通过时间排序在链表。
时间大概是11点十几分左右,一面通过。but没有给我发问的时间。但好歹还是问了一嘴 知道了两点。
-这小伙儿是小米音乐,他并不知道是用人部门是哪儿。
-内部转岗比较自由,看自己想去哪个部门。
大概十多分钟后 11点30左右。
最最奇幻的事情来了
来的还是这个小伙子,通知到我讲 他们领导pass掉我了。 给的原因是**看我写的链表删除算法,不太满意,被pass掉了**
神他么不太满意。
1面,除了LRU算法没完整实现到纸上,只讲了思路跟主要方法外。其他的基本完美解答。
2面人脸都没见到,就被鸽了。
魔幻现实。
可能最终我也不会知道,
- 到底是面试官没时间呢;
- 还是压根没招人计划;
- 或者HR没协调好,做了牺牲品;
- 又或者HR拉人凑人数;
- 再者我们米场不缺人来?
呵,一切皆有可能,但真相可能被永远埋葬
最后,一切口头协议都是费纸。包括口头offer。
最后之后,愿所有努力拥抱世界的人儿都能被世界所善待。