接下来就是各公司的面经了,分享出来供大家参考。
A公司一面
-
java引用,以及引用队列,以及使用场景
-
拆装箱
-
LeakCanary
-
map
-
线上性能监控
-
SharedPrefrence 遇到的问题
-
手写算法
A公司二面
-
Handler
-
进程间通信
-
序列化
-
动画
-
native崩溃捕获原理
-
结合项目提问
-
Recyclerview的点击事件原理
-
启动一个空的apk,回启动几个线程
-
手写算法
A公司三面
-
跳槽原因
-
原来公司规模
-
预期薪资
-
个人优势
感受:
1.简历上写的一定要了解,并且知道原理
2.多熟悉项目,找出一些能聊得功能点
3.崩溃捕获,以及解决(java ,native)
4.优化需要知道(大厂都会问)
5.了解由点到面,需要把知识连贯起来
6.还有如果想要高薪,一定要多跳槽,一般大厂工资涨幅都是有限度的,最高涨幅百分之30,除非你特别牛皮
B公司一面
-
MediaCodec连环炮:MediaCodec报错,只有错误码,没有任何其它信息,如何解决?使用MediaCodec遇到了哪些问题?同步使用和异步使用有什么区别?
-
如何计算音频帧,一帧音频帧有多大
-
YUV基础知识,相比于RGB减少了多少空间,YUV 各个分量都是0实际渲染出来是什么颜色的,NV21和NV12有什么区别
-
MP4是如何存储音视频文件的,它是什么结构
-
OpenSL 相关的问题,如何使用。可以干什么不可以干什么
-
结合项目问题
B公司二面
1.SurfaceView和TextureView区别
2.OpenGL ES相关问题,MVP矩阵左乘和右乘有什么区别,什么是外部纹理,为什么叫外部
3.OpenGL如何渲染一个View
4.VBO是用来干嘛的解决什么问题
5.结合项目问问题
B公司三面
1.项目是什么架构,如何设计的,为什么这么设计
2.算法题:字符串反转
3.平时如何学习的
感受:音视频开发感觉OpenGL ES问的比较多
C公司一面
-
自定义view
-
Handler机制
-
组件化和插件化
-
HashMap的源码
-
retrofit和okhttp的源码用到了哪些设计模式
-
NDK静态库和动态库编译流程
-
openGL渲染模式
-
Android中的动画有哪些它们之间的区别
-
谈谈mvvm
C公司二面
-
讲之前做的项目负责哪块,根据业务采用什么架构
-
使用过哪些设计模式,项目中遇到哪些棘手的问题,如何解决的。
C公司三面
这个是hr说,整体问下以前公司的情况等问题
感受:自己简历上写的东西要熟悉,基本面试官都是根据简历来问的。对自己以前做的项目也好好梳理,提前组织好语言,挖掘项目闪光点。
D公司一面
-
Fragment和Activity生命周期联动,及Fragment显示与隐藏的一些方法
-
Handler原理
-
View绘制流程
-
事件分发
-
APP从安装到启动都做了什么
-
设计模式相关,
D公司二面
-
线程都有那些状态
-
线程锁相关的东西
-
对称与非对称加密
-
HTTPS请求过程
-
数组,链表,红黑树,二叉树等一些数据结构相关的东西,还有一些开放性的问题
D公司三面
最后
其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。
这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司21年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。
由于篇幅有限,这里以图片的形式给大家展示一小部分。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
[外链图片转存中…(img-eLSGlFlu-1714685446671)]
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!