转型Android系统开发,200份简历成功上岸(艰难的求职历程)

今年的Android就业真的太不容易了,在找工作的过程中多次想放弃,被裁员两个月了,本科毕业5年,有大厂经历,Android应用4年,Android 系统 Framework 半年左右,想要一个28K的工作都找不到。投递了200份简历,只有4个面试邀请。只好把屏蔽的外包公司都解开了,但外包的一般薪资只能达到20K左右。绝望,压抑,失眠,焦虑,很难过。

最终之余,还是进入了某外包公司,做系统定制开发,作为一个工作了好几年的Android应用层开发者,为什么决定要做这个呢,我想是这些改变了我。

必需要转型Android系统开发

不知何时起,单纯的Android应用层开发越来越少了,可能在很多人的认知里,Android开发就是主要用来实现UI和交互,但是现在小程序和混合开发大行其道,真正留给Android开发的工作量可能会越来越少。

其次主流技术演变也越来越快,从之前的rxjava到如今的协程,从之前MVC到如今的MVVM,还有Flutter、Compose等技术,可以说是日新月异。 当我们在使用这些技术时,通常会犯一个毛病,那就是使用简单,深入困难。随便新技术,可能几天就上手了,但是没有深入理解,时间久了,就容易欠下许多技术债。

比起应用层层出不穷的新技术,framework层就显得十分的成熟稳重,没有太多的变化,核心技术一直都是那些东西,能够把其中一个方向给研究透彻就已经很牛掰了。

市场

再回过头来看看最近的招聘信息,就例如某聘,稍微正常点的招聘都要求需要熟悉Android系统架构体系,Framework。

就好像现在不会点Binder,Handler,AMS,WMS,PKMS就找不到工作了,事实上确实如此。

不止是定制系统

是不是很多人以为framework开发就是定制系统,类似MIUI之类的,这就是认知上的一种错误,其实framework也有很多方向,毕竟Android源码那么庞大,根据模块划分有:

  • wifi/bt-wifi和bluetooth
  • multimedia-多媒体
  • telephony-电话

根据业务划分有

  • TV-电视
  • Iot-物联网
  • Auto-车载

相比卷到天际的应用开发,Framework真的很值得我们去研究探讨。

静下思考,认真规划,戒骄戒躁,步步落地。如果你不想卷应用开发了,framework开发可能是你可以选择的一条不归路。

Framework 学什么

从 Framework 的工作内容和特点来看,我们应该花主要的精力学习基础和核心模块,例如:系统启动流程,Binder,Handler,AMS,WMS,PKMS,然后在工作中学习涉及到的具体的模块。

要知道系统源码非常的庞大与复杂,在学习过程中一定要有分层与黑盒的思想!
在这里插入图片描述

在掌握了这六个专题后,不论是继续研究 Framework 中其他模块,或是参与 App 开发,又或是研究内核与驱动,我相信,你一定早已是是游刃有余了!

最后再分享一份腾讯大佬整理的《Android Framework内核源码》,来辅助大家学习Android Framework 的核心概念和技术,从而帮助开发者更好地理解 Android 应用程序的设计和开发。

第一章 系统启动流程分析

  • 第一节 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配置的更新

图片
在这里插入图片描述

结语

最后我想说,不要抱怨市场环境有多不好,想想以前土木行业的人,已经被人们说了十几年不行的行业,但仍有大部分人也做的不错的。选择了一个行业就不要抱怨,抱怨解决不了任何问题,在任何行业里都是一样的道理,只有不断的去提升自己的能力才是正解。

猜你喜欢

转载自blog.csdn.net/Androiddddd/article/details/130969928