如往年的金九银十一样,今年Android就业市场也如这夏天的天气一样火爆,近些天也在各大博客上看到网友们发帖晒出了自己的面试经历:
- 有被面试官无情吊打的
- 也有侥幸拿到offer进入大厂美滋滋的
- 当然也有不出世的大佬吊打面试官的。
但是话说回来,被面试官吊打的确实是绝大多数。我们都知道不是所有人都能搞得定大厂面试官,有些人确实基础差、也非科班出生,如果想要下定决心啃下(进大厂)这块硬骨头, 对于想要拿到高薪的Android程序员来说,一定需要成熟且系统的学习计划。
我从几月前的金三银四到现在前前后后面了10来家公司,(其实也不为别的,就是想检验一下自己的技术水平)下面就放上我整理的一些面试原题,并给大家提供一些面试技巧,帮助大家冲刺大厂,减轻焦虑。
因为篇幅原因,下面只放上面试题,答案整理成了一个文档,大家需要的话可免费分享,需要完整版的朋友私信留言 【Android 】领取!!!
1.Service
- service 的生命周期,两种启动方式的区别
- IntentService是什么,IntentService原理,应用场景及其与Service的区别
- bindService和startService混合使用的生命周期以及怎么关闭
- Service 的 onStartCommand 方法有几种返回值?各代表什么意思?
- Service启动流程
- Service与Activity怎么实现通信
2.Activity
- Activity的启动流程
- Activity任务栈是什么
- Activity的数据是怎么保存的,进程被Kill后,保存的数据怎么恢复的
- 显示启动和隐式启动
- ANR 的四种场景
- onCreate和onRestoreInstance方法中恢复数据时的区别
- activty间传递数据的方式
- 有哪些Activity常用的标记位Flags
- onSaveInstanceState(),onRestoreInstanceState的掉用时机
- activity的启动模式和使用场景
- scheme使用场景,协议格式,如何使用
- Activity,弹出Dialog时Activity的生命周期
- Activity A跳转Activity B,再按返回键,生命周期执行的顺序
- Activity的onNewIntent()方法什么时候会执行
- onStart 和 onResumeonPause 和 onStop 的区别
- 跨App启动Activity的方式,注意事项
3.BroadcastReceiver
- 广播的分类和使用场景
- 广播的两种注册方式的区别
- 本地广播和全局广播的区别
- 广播发送和接收的原理
4.Handler
- Handler的实现原理
- 子线程中能不能直接new一个Handler,为什么主线程可以
- Handler 有哪些发送消息的方法
- Handler导致的内存泄露原因及其解决方案
- IdleHandler及其使用场景
- Message对象创建的方式有哪些 & 区别?Message.obtain()怎么维护消息池的?
- 消息屏障,同步屏障机制
- 子线程能不能更新UI
- 为什么Android系统不建议子线程访问UI
- 一个线程可以有几个Handler,几个Looper,几个MessageQueue对象
- Handler 如何与 Looper 关联的
- 主线程的Looper第一次调用loop方法,什么时候,哪个类
- Looper 如何与 Thread 关联的
- ANR和Handler的联系
Android 的AMS,WMS,PMS
- AMS,WMS,PMS 创建过程
- AMS,WMS,PMS全解析
- AMS启动流程
- WindowManagerService启动过程解析
- PMS 启动流程解析
Android ANR
- 为什么会发生 ANR?
- 如何定位 ANR?
- 如何避免 ANR?
- 什么是 ANR
- 如何避免以及分析方法
- Android 性能优化之 ANR 详解
Android 内存相关
- 什么情况下会内存泄漏?
- 如何防止内存泄漏?
- 内存泄漏和溢出的区别
- OOM 概念以及安卓内存管理机制
- 内存泄漏的可能性
- 防止内存泄漏的方法
Android 屏幕适配
- 屏幕适配相关名词解析
- 现在流行的屏幕适配方式
- 屏幕适配名词以及概念解析
- 今日头条技术适配方案
Android 缓存机制
- LruCache使用极其原理
- Android缓存机制
- LruCache使用极其原理述
不过话说话来,光学习了大厂的技术其实还不太够,应该要了解当下Android市场需要的最新技术!那怎么去了解呢?
我觉的大家可以跟我一样尝试去定期面试一下,那样足以让你了解当下市场需要哪些技术,也更加容易确定自身的短板在哪,同时,万一拿到高薪的offer那果断跳槽啦。
一起看看Android进阶必学知识点:
大厂冲刺必学知识点:Android、Java、FrameWork、Kotlin、Gradle、音视频、Flutter2.0、组件化、JetPack全家桶。
《Android开发冲刺资料—Android》
- 架构设计必入技能 (泛型、注解)
- android虚拟机指令
- android虚拟机垃圾回收
- 架构动态编程技术原理
- android虚拟机类和对象的结构
…
《Android开发冲刺资料—FrameWork》
- FrameWork通信
- FrameWork底层服务
- FrameWork事件机制
- FrameWork UI机制
- FrameWork系统资源
- FrameWork实战
《Android开发冲刺资料—Kotlin》
- Kotlin基础语法
- Kotlin反射
- Kotlin高级进阶
- Kotlin实战应用
…
《Android开发冲刺资料—Gradle》
- Groovy基础
- Gradle与Android插件
- Gradle实战项目
…
《Android开发冲刺资料—音视频》
- C与C++基础语法
- H264编码基础
- H264编码进阶
- H265编码原理
- H265编码应用
- MediaCodec硬解码(联发科与高通)
- Media内核源码
《Android开发冲刺资料—Flutter》
- Dart语法
- UI
- Flutter2.0优化(崩溃优化、内存优化、瘦身优化)
- Flutter2.0进阶
- 渲染机制
《Android开发冲刺资料—组件化》
《Android开发冲刺资料—JetPack全家桶》
- DataBinding原理分析与实践
- Room
- WorkManager内核与设计思想
- Lifecycle
- ViewModel
- LiveData
《Android车载工程师》
- Automotive系统
- 车载进程通信
- 车载多媒体
- 车载空调系统(HVAC)
- 车载系统开发
- 蓝牙通信