美文网首页Android进阶之路Android开发Android开发经验谈
快来看,Android大厂面试中这些技术知识是重点!(3-5年经

快来看,Android大厂面试中这些技术知识是重点!(3-5年经

作者: 小小小小怪兽_666 | 来源:发表于2020-08-18 17:20 被阅读0次

2020,可谓是招聘面试最难季。不少大厂,如腾讯、字节的招聘名额明显减少,面试门槛却一再拔高,如果不用心准备,很可能就被面试官怼得哑口无言。

过硬的技术功底是最起码的考核要求。不少面试的朋友底子还是有的,但知识面太窄了。那么对于互联网大厂,都会重点考核哪些呢?

题外话

在跟大家讲述自己的面试经历,以及遇到的面试题前,先说说几句题外话。

接触Android已经3年,在工作中遇到疑难问题总是在网上(csdn大牛博客,stackoverflow等)搜索答案,然而现在自己细想了一下,自己也是时候把遇到的问题并把解决方案分享出来,希望能帮助到有需要的人。

随着时间的流逝,很多人说互联网这一块已经越来越不好干了,因为烧钱时代已经过去,剩下的都是根基牢固的大公司,独角兽已经不复存在。这就直接导致了互联网岗位的下降,本人亲测,也的确如此。

2020.05月,本人离职(此时3年工作经验,深圳就职),开始试水安卓市场,寻求一份合适自己,稳定的中大型公司。投了很多公司,面试机会并不是我想象中的那么多,即时面试过程顺利,也没有获得offer(候选人太多太多)。不过借此机会,前前后后我面了10家公司,现在就把我遇到的面试题,并且提供一些面试技巧给各位即将面试的同志们。

OK,进入主题,请看Android知识图谱

面试,无非都是问上面这些问题(挺多的 - -!),聘请中高级的安卓开发会往深的去问,并且会问一延伸二。以下我先提出几点重点,是面试官基本必问的问题,请一定要去了解!

  • 基础知识 – 四大组件(生命周期,使用场景,如何启动)
  • java基础 – 数据结构,线程,mvc框架
  • 通信 – 网络连接(HttpClient,HttpUrlConnetion),Socket
  • 数据持久化 – SQLite,SharedPreferences,ContentProvider
  • 性能优化 – 布局优化,内存优化,电量优化
  • 安全 – 数据加密,代码混淆,WebView/Js调用,https
    UI– 动画
  • 其他 – JNI,AIDL,Handler,Intent等
  • 开源框架 – Volley,Gilde,RxJava等(简历上写你会的,用过的)
  • 拓展 – Android6.0/7.0/8.0特性,kotlin语言,I/O大会

面试题

顺序是根据记忆排的,没有优先级之分,都是重点。固定答案的解析我整理都放在了一份900多页的PDF中,需要的朋友领取~

1.Activity的启动过程(不要回答生命周期)

2.Activity的启动模式以及使用场景

(1)manifest设置
(2)startActivity flag

此处延伸:栈(First In Last Out)与队列(First In First Out)的区别

3.Service的两种启动方式
(1)startService()
(2)bindService()

4.Broadcast注册方式与区别
(1)静态注册(minifest)
(2)动态注册

此处延伸:什么情况下用动态注册

5.HttpClient与HttpUrlConnection的区别

此处延伸:Volley里用的哪种请求方式(2.3前HttpClient,2.3后HttpUrlConnection)

6.http与https的区别

此处延伸:https的实现原理

7.http与https的区别

此处延伸:https的实现原理

8.手写算法(选择冒泡必须要会)

9.进程保活(不死进程)

此处延伸:进程的优先级是什么

10.进程间通信的方式
(1)AIDL
(2)广播
(3)Messenger

此处延伸:简述Binder

11.加载大图

PS:有家小公司(规模写假的,给骗过去了),直接把项目给我看,让我说实现原理。。

最让我无语的一次面试,就一个点问的我底裤都快穿了,就差帮他们写代码了。。

12.三级缓存(各大图片框架都可以扯到这上面来)

(1)内存缓存
(2)本地缓存
(3)网络

13.MVP框架(必问)

此处延伸:手写mvp例子,与mvc之间的区别,mvp的优势

14.讲解一下Context

15.JNI

此处延伸:项目中使用JNI的地方,如:核心逻辑,密钥,加密逻辑

16.java虚拟机和Dalvik虚拟机的区别

17.线程sleep和wait有什么区别

18.View,ViewGroup事件分发

19.保存Activity状态

onSaveInstanceState()

20.WebView与js交互(调用哪些API)

21.内存泄露检测,内存性能优化

此处延伸:
(1)内存溢出(OOM)和内存泄露(对象无法被回收)的区别。
(2)引起内存泄露的原因

22.布局优化

23.自定义view和动画

24.设计模式(单例,工厂,观察者。作用,使用场景)

一般说自己会的就ok,不要只记得名字就一轮嘴说出来,不然有你好受。

此处延伸:Double Check的写法被要求写出来。

25.String,Stringbuffer,Stringbuilder 区别

26.开源框架,为什么使用,与别的有什么区别

这个问题基本必问。在自己简历上写什么框架,他就会问什么。

如:Volley,面试官会问我Volley的实现原理,与okhttp和retrofit的区别。

开源框架很多,我就选几个多数公司都会用的出来(框架都是针对业务和性能,所以不一定出名的框架就有人用)

网络请求:Volley,okhttp,retrofit
异步:RxJava,AsyncTask
图片处理:Picasso,Glide
消息传递:EventBus

以上框架请自行查找,太多了就不贴出来了。

27.RecyclerView

这个挺搞笑的。有另外一个同事也在找工作,面试官嫌他没用过RecyclerView直接pass掉。

OK,点到即止。

结语

面试官面什么,完全是看他们个人的(性格,心情,天气,你的面相)。以上只是一些我觉得重要的点,当然还有很多深层的东西不是一时半日可以补上来的,还是要看自己平时的经验积累。面试不单单是技术面,还有高层面,人事面,这些都要看个人发挥了。

PS:如果面试官说,还有什么想问的,千万不要给自己挖坑,说今天自己表现怎样,能不能被录取。要往公司的团队,氛围去问,尽量表现的对公司有兴趣。

如:我想知道公司是否定期有开技术会议,老员工是否会分享自己的一些经验等这些问题。

生活不易,如果有面试官(你将来有一天也会面试别人)看到这篇文章,请放下架子或者偏见,尊重每一位面试者。

最后,我列出以下面试需要注意的几个点。

面带微笑,有礼貌,谦逊
穿的体面一点,穿拖鞋的gg了8成
一定要带简历和笔
来了说谢谢,面完说谢谢
要学会看面试官的表情,如果答的不好不要继续往下说
不要吹的自己以前做过的项目有多牛b,也不要自吹
答题要冷静,不要一轮嘴说一堆,面试官很烦的

最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的24套腾讯、字节跳动、阿里、百度2019-2020BAT 面试真题解析,我把大厂面试中常被问到的技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。

还有 高级架构技术进阶脑图 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。

领取:【PDF】

Android 基础知识点

Java 基础知识点

Android 源码相关分析

常见的一些原理性问题

腾讯、字节跳动、阿里、百度等BAT大厂 2019-2020面试真题解析

以上内容,均可以免费分享给大家,希望大家在今年的金九银十里能够发挥顺利,进到自己想进的公司,共勉!

最后祝大家面试顺利,早日找到自己心仪的公司。

相关文章

网友评论

    本文标题:快来看,Android大厂面试中这些技术知识是重点!(3-5年经

    本文链接:https://www.haomeiwen.com/subject/kdkkjktx.html