十月面经:真可惜!拿了小米的 offer,面试题 + 笔记 + 项目实战
线程之间的通信方式 handler
内存泄漏
为什么 handler 可以线程切换
Rxjava map 关键字的作用是什么
怎么获取 view 的宽高,如何确定值是准确的,说了 view.post()补充 viewTreeObserverOnGlobalLayoutListener
场景题:头条列表有多个不同的 card,使用 RecyclerView 怎么解耦 getViewType,获得不同的 card
说了用个管理类映射,面试官说用注解、反射,依赖注入。
二面总体感觉还不错,90%都说到点上了。过了半个小时,HR 打电话过来问我考虑来北京工作吗?因为我是辽宁人嘛,之前大学毕业后就在北京待了 4 年,这两年因为家里催婚的问题,我才回了大连。在考虑很久后我跟说她我两天后,给你消息,结果两天后,我再一次的去了北京。
10.15 字节跳动三面:技术面(现场面)
HR 小姐姐跟我说,来了北京以后跟她说,约三面的时间。我是十一号的晚上到的北京,放下东西后睡了一觉,第二天上午跟 HR 打了电话,约了十五号的面试。不知道是不是太久没有现场面试了,面试的时候我一直很紧张,导致我知道的面试题也答不上,遗憾的错过了字节跳动。
项目深挖
ARouter 路由原理
如何管理过多的路由表?
看视频的时候网络请求很慢怎么优化?
说说 HTTP3.0 有什么改进?
App 上线后用户使用时卡顿怎么查看是什么原因?
10.24 小米热经随笔
本来字节跳动给我挂了以后,想着回大连的。但是越想越不服气,索性就把简历投了北京的所有互联网大厂。功夫不负有心人,在 10 月 24 号这天,我终于等到了小米的面试邀约。在经过四次与面试官的技术交流后,我顺利的拿到小米的 offer。

android 事件分发机制,请详细说下整个流程
android view 绘制机制和加载过程,请详细说下整个流程
图片的三级缓存中,图片加载到内存中,如果内存快爆了,会发生什么?怎么处理?
A、B、C、D 分别是四种 Activity 的启动模式,那么 A->B->C->D->A->B->C->D 分别启动,最后的 activity 栈是怎么样的
Service 的生命周期,两种启动方法,有什么区别
Handler、Looper 消息队列模型,各部分的作用
Binder 原理
描述一次跨进程通讯
Bitmap 的处理
手写实现一个网络框架(参考 Volley)
插件化框架描述:dynamicLoadApk 为例子
热修复原理
Asynctask 和线程池,GC 相关(怎么判断哪些内存该 GC,GC 算法)
两次面试总结:小米+字节跳动
人生之事,幸之有三;有失、有舍、有得;
虽然字节跳动面试官在三面时挂掉了我,却不料我却拿到小米的 offer,这并不是说字节不好啊,假如字节没有挂掉我,我或许是进了字节。后面就没有小米这摊子事了,所以说有失有得还是挺好的,我也挺满足的。
目前在小米入职也快半个月了,字节跳动的凉经和小米的热经分享出来是为了帮助更多跟我一样想进大厂的同行朋友们,能在面试之前有个参考物。一些不该趟的坑尽量不要趟,最后希望大家可以拿到理想的 offer。
面试题资料参考
Andorid 面试知识点:Android面试复习知识点参考.github
Framework?相关面试知识点:
①、深入浅出 Flutter Framework 之 Widget
②、深入浅出 Flutter Framework 之 BuildOwner
③、深入浅出 Flutter Framework 之 Element
还在更新中…
④深入浅出 Flutter Framework 之 PaintingContext
⑤深入浅出 Flutter Framework 之 Layer
⑥深入浅出 Flutter Framework 之 PipelineOwner
⑦深入浅出 Flutter Framework 之 RenderObejct
⑧深入浅出 Flutter Framework 之 Binding
⑨深入浅出 Flutter Framework 之 Rendering Pipeline
其他面试常见知识点
总结
最后为了帮助大家深刻理解 Android 相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的 14 套腾讯、字节跳动、阿里、百度等 2021 面试真题解析,我把技术点整理成了视频和 PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。



网上学习 Android 的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

评论