相信大家都有感觉到今年的市场竞争的激烈,投出简历并不像往年一样立马就有回应,大多是这种情况:投出简历没有停歇,状态却是70%未读,30%已读。
这种情况并不是说市场落寞了,不招人了,而是经过了近几期的一些互联网大厂的人才输出所造成的,从而提升了市场人才的平均质量,也提升了市场的竞争力。所以这也是那些没有好学历和好背景的人,在HR的第一关就可能被刷掉了。
除此之外,还有部分公司会对学历和背景进行适当的放宽,而他们主要看的是你的一些项目经历、技术体系,然后在项目组内担当者一个什么样的角色……等能力。
所以首先做一份优质的简历来提升自己的面试邀约率,这个关键的第一步,也是最简单的一步,可以去网上找一些优质简历的模板进行套用即可。
最难的一步则是正式面试了,随着现在市场技术需求不断提高,因此不少公司面试都会问道 Framework层的一些相关问题,这也是多数应聘者最容易翻车的地方了。主要原因基本是这两种情况:
1.面试前没有做足准备,对自己过于自信所导致的。
2.就是多数开发者常年混迹在业务层,对于Framework 源码底层这块涉及的内容了解的并不多,因此这也是他们的技术薄弱之处
像常年混迹在Framework底层人都知道,Framework层主要是由WMS、AMS,还有View所构成,这三个模块穿插交互在整个Framework中,这也是面试中面试官问的最多的。因此你只要对它们之前的关系和每一个逻辑步骤都搞清楚了,那么面试就不是什么难事了。
- AMS 作为Android系统的核心组件之一,起到了连接应用程序和系统的桥梁作用,负责管理应用程序的进程和活动,协调多个应用程序的显示和交互,保障系统的稳定和用户体验。
- 而 WMS 起到了窗口管理和显示的关键作用。它负责处理应用程序窗口的创建、显示和交互,管理窗口的堆叠和覆盖关系,处理用户输入和系统事件,以及支持多屏幕显示和投影功能。通过WMS的管理,保证了Android系统的窗口显示和交互的正常运行和用户体验。
- View 则是Android开发中,用于构建用户界面。它具有可见性、用户交互、布局参数、继承性、可绘制性和响应性等特点,开发人员可以使用View及其子类来创建具有丰富交互和视觉效果的应用程序界面。
这里只是简单了解一下它们作用,但在面试而会结合关联技术进行提问,就比较复杂了,例如:
1.Zygote如何fork app进程?
2.WMS在安卓UI体系中干了什么?
3.SystemServer如何管理AMS?
4.AMS如何管理acitivity?
5.Surface&SurfaceFlinger项目开发中如何应用?
6.请解释AMS和WMS之间的交互机制,以及它们如何共同工作来管理应用程序和界面的展示?
……
因此对于Android 开发而言掌握 Framework 很重要,这样有利于提高我们的面试邀约率和通过率。
如果你还没有掌握Framework,现在想要在最短的时间里吃透它,可以参考一下《Android Framework核心知识点》,里面内容包含了:Init、Zygote、SystemServer、Binder、Handler、AMS、PMS、Launcher……等知识点记录。
《Framework 核心知识点汇总手册》:https://qr18.cn/AQpN4J
Handler 机制实现原理部分:
1.宏观理论分析与Message源码分析
2.MessageQueue的源码分析
3.Looper的源码分析
4.handler的源码分析
5.总结
Binder 原理:
1.学习Binder前必须要了解的知识点
2.ServiceManager中的Binder机制
3.系统服务的注册过程
4.ServiceManager的启动过程
5.系统服务的获取过程
6.Java Binder的初始化
7.Java Binder中系统服务的注册过程
Zygote :
- Android系统的启动过程及Zygote的启动过程
- 应用进程的启动过程
AMS源码分析 :
- Activity生命周期管理
- onActivityResult执行过程
- AMS中Activity栈管理详解
深入PMS源码:
1.PMS的启动过程和执行流程
2.APK的安装和卸载源码分析
3.PMS中intent-filter的匹配架构
WMS:
1.WMS的诞生
2.WMS的重要成员和Window的添加过程
3.Window的删除过程
《Android Framework学习手册》:https://qr18.cn/AQpN4J
- 开机Init 进程
- 开机启动 Zygote 进程
- 开机启动 SystemServer 进程
- Binder 驱动
- AMS 的启动过程
- PMS 的启动过程
- Launcher 的启动过程
- Android 四大组件
- Android 系统服务 - Input 事件的分发过程
- Android 底层渲染 - 屏幕刷新机制源码分析
- Android 源码分析实战