移动开发属于哪个领域!2021 年 Android 春招面试经历,详细的 Android 学习指南
前言
回顾一下自己这段时间的经历,三月份的时候,疫情原因公司通知了裁员,我匆匆忙忙地出去面了几家,但最终都没有拿到 offer,我感觉今年的寒冬有点冷。到五月份,公司开始第二波裁员,我决定主动拿赔偿走人。后续的面试过程我做了一些准备,基本都能走到 hr 面,后面我也顺利地拿到了 offer,我给大家分享下我的求职体会,希望能给大家一些参考。
一般 Android 面试分为两部分:Java 部分和 Android 部分,下面说一下自己面试过程遇到的一些具体题目和一些相关知识点。
一线企业的 app 都是多线程和多进程的,而 Android 进程间通信机制就是 Binder,原生的线程间通信则是 Handler,Binder 和 Handler 是了解安卓运行机制必须要掌握的一个知识点,更是一线企业面试必问的知识点!
以下几道就是大厂关于和 Binder 常见的面试真题:
Binder 有什么优势?(字节跳动)
Binder 是如何做到一次拷贝的?(腾讯)
MMAP 的原理讲解;(腾讯)
为什么 Intent 不能传递大数据?(阿里)
描述 AIDL 生成的 java 类细节;(字节跳动)
四大组件底层的通信机制;(字节跳动)
为什么 Intent 不能传递大数据?(阿里)
Binder 机制是如何跨进程的?
Binder 机制原理
为了让大家更好的掌握 Framework 与 Binder 的原理,今天分享一份 Android Framework 高频面试题总结 和 BATJ 大牛笔记 Android Framework 内核解析,看完之后不信你还不掌握 Framework 和 Binder。

Android Framework 高频面试题解析
1. AMS 、PMS
AMS 概述
AMS 的启动流程
AMS 与进程启动
AMS 家族
PMS

2. Activity 启动流程,App 启动流程
Activity 的启动模式
什么是 Zygote 进程
Zygote 进程的启动流程
SystemServer 进程启动流程
启动服务

3. Binder 机制(IPC、AIDL 的使用)
什么是 AIDL 以及如何使用
AIDL 的全称是什么?如何工作?能处理哪些类型的数 据?
Android 的 IPC 通信方式,线程(进程间)通信机制有哪些
4.为什么使用 Parcelable,好处是什 么?
实现机制

5. Android 图像显示相关流程,Vsync 信号等
Android Vsync 原理浅析
双重缓冲
三重缓冲
总结
【Android 详细知识点思维脑图(技能树)】

我个人是做 Android 开发,已经有十来年了,目前在某创业公司任职 CTO 兼系统架构师。虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。
这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司 19 年的面试题。把技术点整理成了视频和 PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。
由于篇幅有限,这里以图片的形式给大家展示一小部分。

详细整理在 GitHub 可以见;
网上学习 Android 的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
最后,赠与大家一句话,共勉!
评论