2021金三银四:20道高频面试题(含答案)
**实习生:**
对于实习生而言的话,可能对于android方面的要求并不是特别的高,比较注重基础,但是基本的得会,比如:
1.四大组件基本的概念以及使用。
2.activity的生命周期流程,这是最基本的,但是你得清楚到底是啥时候调用各个方法,如一个页面(A)当前正在跟用户交互,弹出一个Dialog后,A的各个回调方法的流程调用情况等。
3.数据存储的方式,五大存储方式的基本使用。
4.掌握网络通信中httpClient和HttpUrlConnection基本使用,任何网络框架都是从最简单的写起,所以这个必须要知道。
5.熟悉json解析,JsonObject,JsonArray等等的各种使用。
6.会导入第三方库。
7.线程(Thread,Runnable)的使用。
8.主线程和其他线程的交互(Handler,AsyncTask)。
**校招:**
对于校招而言的话,主要是对于计算机基础能力的考察,尤其bat等公司更甚,当然android方面也是需要的,主要考察的方面是:
1.熟练掌握操作系统原理
2.熟练掌握计算机网络
3..熟练掌握数据结构以及算法
4.良好的java基础
5.android基本的都要会,在此基础上需要掌握一定的源码方面的知识,比如handler源码,AsyncTask源码,触摸事件机制,view的事件分发机制,清楚他们是如何由0到1完成各自的工作的。
6.阅读过相关开源项目,对开源项目做过校正或者贡献的,Github好多小星星的~
**社招:**
再讲之前先吐槽一下某大型互联网照片处理类公司(B)的HR,说好的校招,结果把我安排到社招相关去了,哔了狗了。
对于社招方面,个人了解的也比较少,主要是经历了B这个公司的面试,所以就面试的内容来讲讲吧,抛砖引玉好了,个人觉得社招尤其注重你在工作项目中的对于代码整体框架的整体认识以及熟练掌握程度:
1.对于源码有一定的研究,Binder机制的理解,熟练自定View,能够对开源库进行再次的封装,改写等等,AWS,WWS等等有一定的认识。
2.阅读过开源项目源码,清楚开源项目的构建历程,优缺点等。
3.设计模式的理解与运用。
4.对于上任公司项目的理解,能够清楚的讲解自己编写代码的思路。
5.独立解决Bug的能力,优化代码的能力,重构代码的能力。
6.良好的计算机基础。
## 最后
其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
上面分享的**腾讯、头条、阿里、美团、字节跳动等公司2019-2021年的高频面试题**,博主还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含**知识脉络 + 诸多细节**,由于篇幅有限,上面只是以图片的形式给大家展示一部分。
【[Android学习PDF+学习视频+面试文档+知识点笔记](https://github.com/a120464/Android-P7/blob/master/Android%E5%BC%80%E5%8F%91%E4%B8%8D%E4%BC%9A%E8%BF%99%E4%BA%9B%EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)】
**【Android思维脑图(技能树)】**
知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。
![](http://www.icode9.com/i/li/?n=2&i=images/20210710/1625921654226116.jpg)
**【Android高级架构视频学习资源】**
**Android部分精讲视频领取学习后更加是如虎添翼!**进军BATJ大厂等(备战)!现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水,赶快领取吧!