最近我一直在执行一次我计划了近半年的跳槽。总得而言还不错。说下我的情况。我是去年年底开始计划,六月份开始准备,投了100+家公司,拿到了20+个面试,总共面试了四家,拿到了3个offer,周期差不多是一个月时间。
这个面经可能不是适合所有人,毕竟这次不是一线大厂的面经。不过内容可能你看了至少会发现自己还缺乏哪方面的知识点。适合人群:
-
学历一般
-
技术一般的中级开发:毕业1-3年
-
安卓应用层开发
在前面的文章中我已经谈到了如何投递简历和筛选面试和offer的,这边我就不废话了。
技术储备
首先说一下,针对面试我们需要会一些什么。不管是Android基础还是Java基础以及常见的数据结构和算法,这些是无原则地必须要熟练掌握的,尤其是非计算机专业的同学,面试官一上来肯定是问你基础,要是基础表现不好很容易被扣上基础不扎实的帽子,常见的就那些,只要你平时认真思考过基本上面试是没太大问题的。
俗话说的好,面试造火箭,工作拧螺丝。所以,该准备的还是要准备。有些东西长时间不看会忘,但有些东西长时间不看也不会忘。所以学习的方式很重要。好了扯远了,下面进入正题。(面试题的顺序可能不一样,印象中记忆的面试题)面试公司
接下来就是各公司的面经了,分享出来供大家参考。
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说,整体问下以前公司的情况等问题
感受:自己简历上写的东西要熟悉,基本面试官都是根据简历来问的。对自己以前做的项目也好好梳理,提前组织好语言,挖掘项目闪光点。