疫情向好、面试在即,还在迷茫踌躇中的后浪们,如何才能在面试中让自己脱颖而出,让面试官眼前一亮?
下面,我将结合我过往的面试经历来帮大家分析,在Android大厂面试过程中,我们需要注意的关键点以及我们需要做怎样的准备。
本文适合人群:刚毕业的大学生、缺乏面试经验的求职者、致力于在大厂社招中寻找Android相关机会的开发者等。
希望可以帮助到老铁们
面试中面试官经常问的知识点如下:
1、Handler
- Handler Looper Message 关系是什么?
 - Messagequeue 的数据结构是什么?为什么要用这个数据结构?
 - 如何在子线程中创建 Handler?
 - Handler post 方法原理?
 - Android消息机制的原理及源码解析 源码角度完整解析
 - Android Handler 消息机制
 - Android 消息机制
 
2、Activity 相关
- 启动模式以及使用场景
 - onNewIntent()和onConfigurationChanged()
 - onSaveInstanceState()和onRestoreInstanceState()
 - Activity 到底是如何启动的
 - 启动模式以及使用场景
 - onSaveInstanceState以及onRestoreInstanceState使用 简单通透
 - onConfigurationChanged使用以及问题解决
 - Activity 启动流程解析
 
3、Service 相关
- 进程保活
 - Service的运行线程
 - Service启动方式以及如何停止
 - ServiceConnection里面的回调方法运行在哪个线程?
 - startService 和 bingService区别
 - 进程保活一般套路
 - 关于进程保活你需要知道的一切
 
4、Android布局优化之ViewStub、include、merge
- 什么情况下使用 ViewStub、include、merge?他们的原理是什么?
 - ViewStub、include、merge概念解析
 - Android布局优化之ViewStub、include、merge使用与源码分析
 
5、Android 事件分发机制
- onTouch和onTouchEvent区别
 - dispatchTouchEvent, onTouchEvent, onInterceptTouchEvent 方法顺序以及使用场景
 - 滑动冲突,如何解决
 - 事件分发机制
 - 事件分发解析
 - dispatchTouchEvent, onTouchEvent,
 - onInterceptTouchEvent方法的使用场景解析
 
6、Android View 绘制流程
- 简述 View 绘制流程
 - onMeasure, onlayout,ondraw方法中需要注意的点
 - 如何进行自定义 View
 - view 重绘机制
 - Android LayoutInflater原理分析
 - Android视图状态及重绘流程分析
 - Android自定义View的实现方法
 
7、Android 的核心 Binder 多进程 AIDL
- Window、Activity、DecorView以及ViewRoot之间的关系
 - 常见的 IPC 机制以及使用场景
 - 为什么安卓要用 binder 进行跨进程传输
 - 多进程带来的问题
 - AIDL 使用浅析
 - binder 原理
 - binder 最底层解析 很
 - 多进程通信方式以及带来的问题
 - 多进程通信方式对比
 
8、Android ANR
- 为什么会发生 ANR?
 - 如何定位 ANR?
 - 如何避免 ANR?
 - 什么是 ANR
 - 如何避免以及分析方法
 - Android 性能优化之 ANR 详解
 
9、Android 性能优化
- 如何进行 内存 cpu 耗电 的定位以及优化
 - 性能优化经常使用的方法
 - 如何避免 UI 卡顿
 
10、Android 组件化与插件化
- 为什么要用组件化?
 - 组件之间如何通信?
 - 组件之间如何跳转?
 - Android 插件化和热修复知识梳理
 - 为什么要用组件化
 
11、面试常问的点
- 你在项目中遇到最难得点是什么?如何解决的?
 - 平时遇到问题了是如何解决的?比较好的回答:
 - 你最近做的 APP 是如何架构的?为什么要这样架构?
 - 平时怎么进行技术进阶,如何学习?
 - 你觉得自己处于什么技术水平?
 - 你的技术优势是什么?
 
第一章 Java基础
- 静态内部类和非静态内部类的比较
 - 多态的理解与应用
 - java方法的多态性理解
 - java中接口和继承的区别
 - 线程池的好处,详解,单例(绝对好记)
 - 线程池的优点及其原理
 - 线程池的优点(重点)
 - 为什么不推荐通过Executors直接创建线程池
 - 不怕难之BlockingQueue及其实现
 - 深入理解ReentrantLock与Condition
 - Java多线程:线程间通信之Lock
 - Synchronized 关键字原理
 - ReentrantLock原理
 - HashMap中的Hash冲突解决和扩容机制
 - JVM常见面试题
 - JVM内存结构

 
第二章 Android基础
- Activity知识点(必问)
 - Fragment知识点
 - Service知识点
 - Intent知识点

 
第三章 UI控件篇
- 屏幕适配
 - 主要控件优化
 - 事件分发与嵌套滚动

 
第四章 网络通信篇
- 网络协议

 
第五章 架构设计篇
- MVP架构设计
 - 组件化架构

 
第六章 性能优化篇
- 启动优化
 - 内存优化
 - 绘制优化
 - 安装包优化

 
第七章 源码流程篇
- 开源库源码分析
 - Glide源码分析
 - Android面试题:Glide
 - day 20 面试题:Glide面试题
 - 聊一聊关于Glide在面试中的那些事
 - 面试官:简历上如果写Glide,请注意以下几点…
 - Glide OOM问题解决方法汇总
 - OkHttp源码分析
 - Okhttp连接池复用机制
 - Okhttp 流程和优化的实现
 - 一篇让你受用的okhttp分析
 - OkHttp面试之–OkHttp的整个异步请求流
 - OkHttp面试之–HttpEngine中的sendRequest方法详解
 - OkHttp解析大总结
 - Okhttp任务队列工作原理
 - Android高频面试专题 - 架构篇(二)okhttp面试必知必会
 - Android 网络优化,使用 HTTPDNS优化 DNS,从原理到 OkHttp 集成
 - Retrofit源码分析
 - RxJava源码分析
 - RxJava原理与源码分析

 
第八章 新技术篇
- 实战问题篇

 
第九章 面试篇
- 开源文档
 - 面试题合集

 

总结
篇幅原因,不给大家展开赘述,大家可以通过目录领略这份面试题合集的全面和专业。工欲善其事,必先利其器,在这个信息爆炸的时代,一定要选择能够真正帮助自己成长的信息!










