最近,大厂新闻不少,有两件事情受到关注:
一个事情是,前不久,OPPO的芯片研发团队哲库宣布解散,一石激起千层浪。
另一个事情是,最近,网上传言某里将砍20%,传得沸沸扬扬,接着某里出来否认该传言。
不过之后某里内部人员有消息传出,某里问题确实存在,不裁哪有位置留给后来人
这间接导致身边很多人哀声一片:大厂都裁员了,工作更不好找了,投了几百份简历,收到的面试通知只有寥寥几份,到最后不是降薪就是PASS,满意的offer永远无法落到自己头上,唉…真难呀!!!
移动开发市场真的就不行了吗?
一直以来都有不少人唱衰移动开发市场,确实,现在的岗位需求已经趋于平稳和普通。在过去,开发一款移动应用程序,往往需要多个程序员针对多个平台进行开发,而现在跨平台的出现,完美解决这类问题。再者小程序的出现,轻应用替代原生应用,这种状态发生的结果就是,市场原生应用的下载量和使用率的下降,直接导致开发需求减少,更不用提开发人员了。
那移动开发人才真的落幕了吗?
近十几年来,移动端技术栈已经愈发趋于成熟完善,对业务来说,就连大公司的工程师也是在做 UI 的展示逻辑,随便找个刚毕业的学生都能替代,那真的就落幕了吗?
对于那些「成天只会画UI,写界面,写业务逻辑」的移动端程序员而言,是的,但对那些往最底层和原理研究的程序员来说,这是另一个春天。
市场是公平的,打开招聘软件,你会发现上面懂底层源码的系统开发岗薪资不降反增
之所以这么高的原因是,这部分人深入系统底层,如Framework、Art、Native、Hal、Linux、Arm等,能从全局上对产品的设计和开发进行把控,技术壁垒使他能享受该待遇。
而大部分人因常年做应用层开发,对Framework层源码这些东西并不熟悉,只是简单的听说过,从而很难达到这种水平。
于是在此为了方便大家阅读Framework层源码,分享一份阿里内网自用的Framework学习手册,其包括了系统启动流程分析、跨进程通信IPC、Handler源码、AMS解析、WMS解析、Surface源码、PKMS源码等多方面源码分析。
第一章 系统启动流程分析
- 第一节 Android启动概览
- 第二节 init.rc解析
- 第三节 Zygote
- 第四节 面试题
第二章 跨进程通信IPC解析
- 第一节 Sercice 还可以这么理解
- 第二节 Binder基础
- 第三节 Binder应用
- 第四节 AIDL应用(上)
- 第五节 AIDL应用(下)
- 第六节 Messenger原理及应用
- 第七节 服务端回调
- 第八节 获取服务(IBinder)
- 第九节 Binder面试题全解析
第三章 Handler源码解析
- 第一节 源码分析
- 第二节 难点问题
- 第三节Handler常问面试题
第四章 AMS 源码解析
- 第一节 引言
- 第二节 Android架构
- 第三节 通信方式
- 第四节 系统启动系列
- 第五节 AMS
- 第六节 AMS 面试题解析
第五章 WMS源码解析
- 第一节 WMS与activity启动流程
- 第二节 WMS绘制原理
- 第三节 WMS角色与实例化过程
- 第四节 WMS工作原理
- …
第六章 Surface源码解析
- 第一节 创建流程及软硬件绘制
- 第二节 双缓冲及SurfaceView解析
- 第三节 Android图形系统综述
- …
第七章 基于Android12.0的SurfaceFlinger源码解析
- 第一节 应用建立和SurfaceFlinger的沟通桥梁
- 第二节 SurfaceFlinger的启动和消息队列处理机制
- 第三节 SurfaceFlinger 之 VSync(上)
- 第四节 SurfaceFlinger之VSync(中)
- 第五节 SurfaceFlinger之VSync(下)
- …
第八章 PKMS源码解析
-
第一节 PKMS调用方式
-
第二节 PKMS启动过程分析
-
第三节 APK的扫描
-
第四节 APK的安装
-
第五节 PKMS之权限扫描
-
第六节 静默安装
-
第七节 requestPermissons源码流程解析
-
第八节 PKMS面试题
第九章 InputManagerService源码解析
- 第一节 Android Input输入事件处理流程(1)
- 第一节 Android Input输入事件处理流程(2)
- 第一节 Android Input输入事件处理流程(3)
第十章 DisplayManagerService源码解析
- 第一节 DisplayManagerService启动
- 第二节 DisplayAdapter和DisplayDevice的创建
- 第三节 DMS部分亮灭屏流程
- 第四节 亮度调节
- 第五节 Proximity Sensor灭屏原理
- 第六节 Logical Display和Physical Display配置的更新