# Awesome-Android-Interview
A awesome android expert interview questions and answers
<div align="center">
<img src="https://user-images.githubusercontent.com/30379002/46050218-6f81cc80-c0f8-11e8-9304-ac77597e0e49.jpg">
</div>
> 从几十份顶级面试仓库和300多篇高质量面经中总结出一份全面成体系化的Android高级面试题集。
## 前言
随着Android技术发展的成熟,Kotlin、大前端技术Flutter、RN、小程序等一下子就进入了我们的视野内,同时,Android自身的技术栈也正在不断扩展,比如在国外大热的Jetpack。因此,Android开发者们越来越焦虑,越来越迷茫,每个人的时间和精力是有限的,我们到底应该学什么才能有效地提高自身的竞争力呢?其实,首先我们应该优先深入学习工作中用到的技术,其次,关注这2年来Android最新的面试题所涉及的知识点,根据自身的实际情况有选择地进行针对性的学习和提升。只有这样,自身才不会被所谓的 **互联网寒冬** 吓倒。Awesome-Android-Interview搜集了国内一线及二线互联网公司最常出现的面试题,非常全面,笔者花费了很大的精力和时间,希望得到大家的支持。Android面试中常涉及的问题有如下几方面:
- 1、计算机基础:TCP/IP, HTTP/HTTPS, Socket、(Linux)操作系统、数据库相关。
- 2、Java基础:面向对象、反射、泛型、注解、集合类库相关。
- 3、Java并发:线程/线程池,volatile,悲观锁/乐观锁等等。
- 4、Jvm虚拟机:比如执行过程、JMM模型、Java的GC回收原理、类加载器。
- 5、数据结构和算法:剑指Offer + LeetCode高频题集。
- 6、Android基础:四大组件、启动模式、动画、自定义View。
- 7、Android进阶:性能优化、Binder、AIDL、进程间通信、AMS/WMS/PMS、事件分发、滑动冲突、View的绘制流程、重要的Android源码和开源库分析。
- 8、Android高新技术:模块化、组件化、热更新、插件化实现原理。
- 9、最后,如果你会其他的开发方式或语言也会加分不少。比如Flutter、ReactNative、Python、前后端开发。
面试就犹如考试,就像高考冲刺前我们所做的事,无非就是**将每一个知识点理解并记忆**。要通过面试固然需要一定的技巧,但绝不是靠伪造与吹流弊,通过一段时间沉下心来闭关修炼,等到春暖花开时,便可以出山收割,步入大厂,薪资翻番,岂不美哉?
> 注意:每类知识点对应面试题的出现频率按 ⭐ 的级数共分为三级,分别为 ⭐、 ⭐⭐、⭐⭐⭐,如果时间充分,建议至少将 ⭐⭐及以 上的知识点搞懂,如果时间比较紧急,则建议优先将 ⭐⭐⭐ 题目都弄懂。
> 为了更好地分类学习,建议跳转到本项目对应的[Github地址](https://github.com/JsonChao/Awesome-Android-Interview),欢迎Star、Fork、Watch~
## Contents
### 计算机基础面试题
* [网络](https://github.com/JsonChao/Awesome-Android-Interview/blob/master/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9F%BA%E7%A1%80/%E7%BD%91%E7%BB%9C%E9%9D%A2%E8%AF%95%E9%A2%98.md)
* [操作系统](https://github.com/JsonChao/Awesome-Android-Interview/blob/master/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9F%BA%E7%A1%80/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E9%9D%A2%E8%AF%95%E9%A2%98.md)
* [数据库](https://github.com/JsonChao/Awesome-Android-Interview/blob/master/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9F%BA%E7%A1%80/%E6%95%B0%E6%8D%AE%E5%BA%93%E9%9D%A2%E8%AF%95%E9%A2%98.md)
### 数据结构和算法面试题
* [数据结构和算法](https://github.com/JsonChao/Awesome-Android-Interview/blob/master/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E5%92%8C%E7%AE%97%E6%B3%95/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95.md)
### Java面试题
* [Java基础](https://github.com/JsonChao/Awesome-Android-Interview/blob/master/Java%E7%9B%B8%E5%85%B3/Java%E5%9F%BA%E7%A1%80%E9%9D%A2%E8%AF%95%E9%A2%98.md)
* [Java并发](https://github.com/JsonChao/Awesome-Android-Interview/blob/master/Java%E7%9B%B8%E5%85%B3/Java%E5%B9%B6%E5%8F%91%E9%9D%A2%E8%AF%95%E9%A2%98.md)
* [Java虚拟机](https://github.com/JsonChao/Awesome-Android-Interview/blob/master/Java%E7%9B%B8%E5%85%B3/Java%E8%99%9A%E6%8B%9F%E6%9C%BA%E9%9D%A2%E8%AF%95%E9%A2%98.md)
### Android面试题
* [Android基础](https://github.com/JsonChao/Awesome-Android-Interview/blob/master/Android%E7%9B%B8%E5%85%B3/Android%E5%9F%BA%E7%A1%80%E9%9D%A2%E8%AF%95%E9%A2%98.md)
* [Android进阶](https://github.com/JsonChao/Awesome-Android-Interview/blob/master/Android%E7%9B%B8%E5%85%B3/Android%E9%AB%98%E7%BA%A7%E9%9D%A2%E8%AF%95%E9%A2%98.md)
### 其它
* [其他扩展面试题](https://github.com/JsonChao/Awesome-Android-Interview/blob/master/%E5%85%B6%E5%AE%83/%E5%85%B6%E5%AE%83%E6%89%A9%E5%B1%95%E9%9D%A2%E8%AF%95%E9%A2%98.md)
* [非技术面试题](https://github.com/JsonChao/Awesome-Android-Interview/blob/master/%E5%85%B6%E5%AE%83/%E9%9D%9E%E6%8A%80%E6%9C%AF%E9%9D%A2%E8%AF%95%E9%A2%98.md)
## 知识星球(推荐)
现如今,Android 行业人才已逐渐饱和化,但高级人才依旧很稀缺,我们经常遇到的情况是,100份简历里只有2、3个比较合适的候选人,大部分的人都是疲于业务,没有花时间来好好学习,或是完全不知道学什么来提高自己的技术。对于 Android 开发者来说,尽早建立起一个完整的 Android 知识框架,了解目前大厂高频出现的常考知识点,掌握面试技巧,是一件非常需要重视的事情。
去年,为了进入一线大厂去做更有挑战的事情,拿到更高的薪资,我提前准备了半年的时间,沉淀了一份 **「两年磨一剑」** 的体系化精品面试题,而后的半年,我都在不断地进行面试,总共面试了二三十家公司,每一场面试完之后,我都将对应的面试题和详细的答案进行了系统化的总结,并更新到了我的面试项目里,现在,在每一个模块之下,我都已经精心整理出了 **超高频和高频的常考** 知识点。
在我近一年的大厂实战面试复盘中逐渐对原本的内容进行了大幅度的优化,并且新增了很多新的内容。它可以说是一线互联网大厂的面试精华总结,同时后续还会包含如何写简历和面试技巧的内容,能够帮你省时省力地准备面试,大大降低找到一个好工作的难度。
这份面试项目不同于我 Github 上的 Awesome-Android-Interview 面试项目:https://github.com/JsonChao/Awesome-Android-Interview,Awesome-Android-Interview 已经在 2 年前(2020年 10 月停止更新),内容稍显陈旧,里面也有不少点表述不严谨,总体含金量较低。而我今天要分享的这份面试题库,是我在这两年持续总结、细化、沉淀出来的体系化精品面试题,里面很多的核心题答案在面试的压力下,经过了反复的校正与升华,含金量极高。
在分享之前,有一点要注意的是,一定不要将资料泄露出去!细想一下就明白了:
1、如果暴露出去,拿到手的人比你更快掌握,更早进入大厂,拿到高薪,你进大厂的机会就会变小,毕竟现在好公司就那么多,一个萝卜一个坑。
2、两年前我公开分享的简陋版 Awesome-Android-Interview 面试题库现在还在被各个培训机构当做引流资料,加大了现在 Android 内卷。。
所以,这一点一定要切记。
现在,我已经在我的成长社群里修订好了 《体系化高频核心 Android 面试题库》 中的 ”计算机基础高频核心面试题“ 和 ”Java 和 kotlin 高频核心面试题“ 部分,后续还会为你带来我核心题库中的:
- “Android基础 高频核心面试题”
- “基础架构 高频核心面试题”
- “跨平台 高频核心面试题”
- “性能优化 高频核心面试题”
- ”Fr