五年 Android 开发大厂面经总结,详解系列文章
A 公司二面
讲之前做的项目负责哪块,根据业务采用什么架构
使用过哪些设计模式,项目中遇到哪些棘手的问题,如何解决的。
A 公司三面
这个是 hr 说,整体问下以前公司的情况等问题
感受:自己简历上写的东西要熟悉,基本面试官都是根据简历来问的。对自己以前做的项目也好好梳理,提前组织好语言,挖掘项目闪光点。
B 公司一面
java 引用,以及引用队列,以及使用场景
拆装箱
LeakCanary
map
线上性能监控
SharedPrefrence 遇到的问题
手写算法
B 公司二面
Handler
进程间通信
序列化
动画
native 崩溃捕获原理
结合项目提问
Recyclerview 的点击事件原理
启动一个空的 apk,回启动几个线程
手写算法
B 公司三面
跳槽原因
原来公司规模
预期薪资
个人优势
感受:
1.简历上写的一定要了解,并且知道原理
2.多熟悉项目,找出一些能聊得功能点
3.崩溃捕获,以及解决(java ,native)
4.优化需要知道(大厂都会问)
5.了解由点到面,需要把知识连贯起来
6.还有如果想要高薪,一定要多跳槽,一般大厂工资涨幅都是有限度的,最高涨幅百分之 30,除非你特别牛皮
C 公司一面
MediaCodec 连环炮:MediaCodec 报错,只有错误码,没有任何其它信息,如何解决?使用 MediaCodec 遇到了哪些问题?同步使用和异步使用有什么区别?
如何计算音频帧,一帧音频帧有多大
YUV 基础知识,相比于 RGB 减少了多少空间,YUV 各个分量都是 0 实际渲染出来是什么颜色的,N
V21 和 NV12 有什么区别
MP4 是如何存储音视频文件的,它是什么结构
OpenSL 相关的问题,如何使用。可以干什么不可以干什么
结合项目问题
C 公司二面
1.SurfaceView 和 TextureView 区别
2.OpenGL ES 相关问题,MVP 矩阵左乘和右乘有什么区别,什么是外部纹理,为什么叫外部
3.OpenGL 如何渲染一个 View
4.VBO 是用来干嘛的解决什么问题
5.结合项目问问题
C 公司三面
1.项目是什么架构,如何设计的,为什么这么设计
2.算法题:字符串反转
3.平时如何学习的
感受:音视频开发感觉 OpenGL ES 问的比较多
D 公司一面
1.问的项目中哪些用到了 hook 技术,是怎么实现的
2.Okhttp 底层原理
3.点击应用图标的启动流程
4.hashmap 在 java7 和 java8 的区别,为什么要引入红黑树
D 公司二面
1.项目是怎么搭建的,用到了哪些技术点
2.arouter 用到了什么技术点,是用来解决什么问题
3.socket 底层原理
4.一个功能是如何从分析需求到落地的
5.如何带领团队的
感受:主要简历要写的好,尽量围绕简历上的点来刷面试题,不一定都要研究透彻,被问到自己不熟的点,可以尽量尝试着往自己熟悉点带,例如之前我被问到 pms 是怎么管理 package 信息的,我就说目前我对 pms 了解不深,主要也是研究了 ams,然后就把自己了解的说一下就好了。
毕业时选择的是一家非一线大厂的公司,在这边工作的近两年时间里,业余学习了许多 Android 相关的专业知识(因为不忙),但是由于业务原因,且公司发展一直在走下坡路,我在项目上的经验比较欠缺,因此考虑进一家大厂继续磨练磨练自己。
这次面试也暴露出了我的一些问题,最主要的话还是业务项目经验上不太足,所幸面试到的公司基本上都通过了,可能是因为我在 Android 基础上还可以吧。面试也是一种能够快速地发现自己缺点与不足的方法,可以更好地提高自己。
关于算法题:个人感觉有些八股了,也比较讨厌刷题,只写了剑指 offer 和 leetcode 上 hot 前百中所有 easy 难度的题,以及几道中等题,总共估计不超过 100 道吧。。。面试的时候感觉算法题这块都不是很难,大概也许可能是运气好呗。
另外就是可以自己搞一些比较有亮点的地方,所以上面面试中有一些都涉及到,和面试官聊的很开心。
评论