“老程序员逆境中的奋斗:从炒饭摊到Framework开发的转换之路“

前言

都说现在大龄程序员被环境所抛弃了,大龄程序员面临的不仅仅是技术的挑战,更有生活的压力。再加上现在的环境的确不好过。

但我身边的这位同事(老哥)却给我生生的上了一课。

老哥今年应该到37了,干程序员这行快11年了。之前是搞Android应用开发的,去年年底入职我现在这家公司。而且是转行Framework开发,之前没有这方面的经验,但是凭借之前积累了大量的经验和技术对于公司这方面的业务熟悉的很快,还多次获得公司的各种奖励。这真是姜还是老的辣,不得不佩服。我当时还有点不相信他才转行过来没多久。

而在我和老哥混熟了之后,了解他之前的故事更是敬佩有加。

在这里插入图片描述

老黄牛和小灰狼

老哥曾经在一家知名的科技公司工作,但在一次公司的裁员中,失业了。为什么呢?

老哥属于那种老黄牛的性格,一直默默做事,这和很多程序员一样,平常生活基本上是下班了就回去做饭哄孩子玩,对于公司的人情世故基本上没有怎么参与。

老哥自己对于学习这方面也没有什么精力,而随着AI和机器学习的发展,应用开发的门槛越来越高,竞争激烈的行业中,价值似乎在逐渐降低。有很多东西现在年轻人也能完成,而且他们还拥有更多的活力,更强的学习能力,以及更高的性价比。然后再一次优化后,老哥被裁了,老哥曾经尝试过和公司谈判,希望通过降薪保住自己的工作,但还是没能得偿所愿。老黄牛比不过小灰狼。

在失去工作的那段时间,老哥和妻子商量后,决定开始他们的小生意——摆摊卖炒饭。虽然这并不是老哥所向往的工作,但是他们需要生活。虽然炒饭摊生意还算不错,老哥也没有想着一直这样下去,也一直在学习,在找方向。他也了解过其他行业,但是感觉现在环境都差不多,而且对于Androida他自己也舍不得离开。

一次偶然的机会,老哥了解到了Android Framework开发。发现这是一个充满挑战,也充满机遇的领域。就决定利用空闲的时间,开始学习Android Framework开发。

在学习Android Framework的过程中,老哥说也遇到了很多困难。需要学习新的技术,理解新的概念,很多东西都需要去学习,比如linux,jni,c/c++,IPC,aidl,hidl,adb shell等等,还需要面对自己的年龄压力。常常感到疲惫,感到无助,但是一直没有放弃。

后面通过面试来的我现在的公司。其实他说的时候听起来很快就过去了,可能没有共鸣感的人会觉得没什么。

但是这就是很多大龄程序员的遭遇,这一行没有核心技术真的很容易被取代,没人会同情你有房贷车贷,老婆孩子。

文末

静下思考,认真规划,戒骄戒躁,步步落地。如果你不想卷应用开发了,framework开发是你可以选择的一条路。有兴趣的小伙伴可以关注我,我整理了一份framework学习路线和方法,共大家参考学习。

由于文章内容比较多,篇幅有限,资料已经被整理成了PDF文档,有需要《Android Framework进阶学习指南》完整文档的可扫描下方卡片免费获取~

《Android Framework 开发揭秘》

目录

img

第一章 系统启动流程分析

            ● 第一节 Android启动概览

            ● 第二节 init.rc解析

            ● 第三节 Zygote

            ● 面试题

img

第二章 Binder解析

            ● 第一节 宏观认识Binder

            ● 第二节 binder的jni方法注册

            ● 第三节 binder驱动

            ● 第四节 数据结构

            ● 第五节 启动service_manager

            ● 第六节 获取service_manager

            ● 第七节 addService流程

            ● 第八节 Binder面试题全解析

第三章 Handler解析

            ● 第一节 源码分析

            ● 第二节 难点问题

            ● 第三节 Handler常见面试题

第四章 AMS解析

            ● 第一节 引言

            ● 第二节 Android架构

            ● 第三节 通信方式

            ● 第四节 系统启动系列

            ● 第五节 AMS

            ● 第六节 AMS面试题解析

img

第五章 WMS解析

            ● 第一节Activity与Window相关概念

            ● 第二节 Android窗口管理服务WindowManagerService计算Activity窗口大

            ● 第三节Android窗口管理服务WindowManagerService对窗口的组织方式分析

            ● 第四节 Android窗口管理服务WindowManagerService对输入法窗口(Input 

            ● 第五节 Android窗口管理服务WindowManagerService对壁纸窗口(Wallpap

            ● 第六节Android窗口管理服务WindowManagerService计算窗口Z轴位置的过程分析

            ● 第七节Android窗口管理服务WindowManagerService显示Activity组件的启

            ● 第八节Android窗口管理服务WindowManagerService切换Activity窗口(A

            ● 第九节 Android窗口管理服务WindowManagerService显示窗口动画的原理分析

img

第六章 Surface源码解析

​ ● 第一节 创建流程及软硬件绘制

​ ● 第二节 双缓冲及SurfaceView解析

​ ● 第三节 Android图形系统综述

第七章 基于Android12.0的SurfaceFlinger 源码解析

​ ● 第一节 应用建立和SurfaceFlinger的沟通桥梁

​ ● 第二节 SurfaceFlinger的启动和消息队列处理机制

​ ● 第三节 SurfaceFlinger 之 VSync(上)

​ ● 第四节 SurfaceFlinger之VSync(中)

​ ● 第五节 SurfaceFlinger之VSync(下)

第八章 PKMS源码解析

​ ● 第一节 PKMS调用方式

​ ● 第二节 PKMS启动过程分析

​ ● 第三节 APK的扫描

​ ● 第四节 APK的安装

​ ● 第五节 PKMS之权限扫描

​ ● 第六节 静默安装

​ ● 第七节 requestPermissions源码流程解析

​ ● 第八节 PKMS面试题

第九章 InputManagerService源码解析

​ ● 第一节 Android Input输入事件处理流程(1)

​ ● 第二节 Android Input输入事件处理流程(2)

​ ● 第三节 Android Input输入事件处理流程(3)

第十章 DisplayManagerService源码解析

​ ● 第一节 DisplayManagerService启动

​ ● 第二节 DisplayAdapter和DisplayDevice的创建

​ ● 第三节 DMS部分亮灭屏流程

​ ● 第四节 亮度调节

​ ● 第五节 Proximity Sensor灭屏原理

​ ● 第六节 Logical Display和Physical Display配置的更新

第七章 基于Android12.0的SurfaceFlinger 源码解析

猜你喜欢

转载自blog.csdn.net/Gaga246/article/details/131168450