2022 互联网春招备战:Android 开发核心面试题与优化指南
互联网春招正当时,阿里、字节跳动、美团、网易等企业都已启动招聘。大厂作为行业风向标,其福利待遇反映了行业对优质人才的投入成本依然保持着积极增长。据拉勾招聘发布的《2022 年互联网行业春招薪酬报告》显示,2022 年以来,互联网行业平均薪资为 18500 元,较去年同期增长 7.5%。
虽然市场环境存在波动,但这并不会成为程序员跳槽路上的绊脚石。目前行业现状是:大厂求贤若渴,而大部分开发者却找不到满意的工作。究竟是行业不饱和还是太饱和?到了金三银四的跳槽季,对于准备跳槽的开发者来说,想要拿到心仪的 Offer 需要下一番苦心了。
如何更好地进入大厂?
提升自身实力才是大厂的敲门砖。学历和资历固然重要,但技术硬实力才是关键。互联网时代网上有很多免费学习资料,但效率很重要。自己摸索容易踩坑且不够系统,下面整理了近年来大厂面试中的原题,希望大家在跳槽前做好准备。
Android 基础
Android 系统
AMS (Activity Manager Service)
- Binder 讲解及 Native 层实现
- AIDL 使用场景
- Binder 原理及一次拷贝流程
- Android 跨进程通信机制
- ActivityThread 中启动线程的作用
Binder
- 进程间通信的优势
- Binder 是否异步?
- Linux 有哪些线程间通信方式,Android 这种方式的独特优势
- Android 进程通信方式有哪些
- Binder 内存映射为什么只需要复制一次
Handler
- Handler 的实现原理
- Msg 队列中没有消息时线程状态及唤醒机制
- Looper 阻塞的实现(管道)
- 如何给线程创建 Looper
- Handler 定时任务的实现
- Looper.loop() 做了什么
- 线程、Looper、Handler、消息队列分别有几个实例
- Message 队列无消息后,当前线程状态及消息到来时的通知机制
- 信号量唤起线程的实现
- Looper 为何不会造成 ANR
四大组件
Activity
- Activity 的生命周期
- Activity 生命周期流转(A 到 B 按返回键),B 是 SingleTop 时启动 B 执行哪些方法
- A 到 B 到 C,C 退出想跟 A 通信,如何设计启动模式?如果 A 被回收了(涉及 onNewIntent)会不会启动 onResume?
- Activity 的启动模式有哪些
- Android 为什么要有 Activity 的存在
- Activity 和 Window 的关系
- Activity 的启动流程
- 如何知道 Activity 渲染完成
- 在 Activity 的 onCreate 方法中调用 finish 执行哪些生命周期
- Fragment 生命周期及是否只能在 Activity 中运行
- Activity 外部启动是否运行到其他进程,崩溃是否影响其他进程
- 如何设置只在自己的进程中运行
Service
- Service 的生命周期
- IntentService 和 Service 的区别
- HandlerThread 的实现和作用
- Service 和 Thread 的区别及优缺点
- 一个 App 中两个 Service(服务进程、前台进程)是否同时回收
- Service 和 Thread 如何选择
Broadcast
- 有哪几类广播
- LocalBroadcast 的实现原理


