首页 > 其他分享 >转型Android系统开发,200份简历成功上岸(艰难的求职历程)

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

时间:2023-06-28 13:32:29浏览次数:42  
标签:200 求职 第一节 Framework 源码 第二节 Android 解析


今年的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就找不到工作了,事实上确实如此。

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

不止是定制系统

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

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

根据业务划分有

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

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

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

Framework 学什么

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

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

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

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

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

第一章 系统启动流程分析

  • 第一节 Android启动概览
  • 第二节 init.rc解析
  • 第三节 Zygote
  • 第四节 面试题

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

第二章 跨进程通信IPC解析

  • 第一节 Sercice 还可以这么理解
  • 第二节 Binder基础
  • 第三节 Binder应用
  • 第四节 AIDL应用(上)
  • 第五节 AIDL应用(下)
  • 第六节 Messenger原理及应用
  • 第七节 服务端回调
  • 第八节 获取服务(IBinder)
  • 第九节 Binder面试题全解析

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

第三章 Handler源码解析

  • 第一节 源码分析
  • 第二节 难点问题
  • 第三节Handler常问面试题

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

第四章 AMS 源码解析

  • 第一节 引言
  • 第二节 Android架构
  • 第三节 通信方式
  • 第四节 系统启动系列
  • 第五节 AMS
  • 第六节 AMS 面试题解析

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

第五章 WMS源码解析

  • 第一节 WMS与activity启动流程
  • 第二节 WMS绘制原理
  • 第三节 WMS角色与实例化过程
  • 第四节 WMS工作原理

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

第六章 Surface源码解析

  • 第一节 创建流程及软硬件绘制
  • 第二节 双缓冲及SurfaceView解析
  • 第三节 Android图形系统综述

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

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

  • 第一节 应用建立和SurfaceFlinger的沟通桥梁
  • 第二节 SurfaceFlinger的启动和消息队列处理机制
  • 第三节 SurfaceFlinger 之 VSync(上)
  • 第四节 SurfaceFlinger之VSync(中)
  • 第五节 SurfaceFlinger之VSync(下)

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

第八章 PKMS源码解析

  • 第一节 PKMS调用方式
  • 第二节 PKMS启动过程分析
  • 第三节 APK的扫描
  • 第四节 APK的安装
  • 第五节 PKMS之权限扫描
  • 第六节 静默安装
  • 第七节 requestPermissons源码流程解析
  • 第八节 PKMS面试题

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

第九章 InputManagerService源码解析

  • 第一节 Android Input输入事件处理流程(1)
  • 第一节 Android Input输入事件处理流程(2)
  • 第一节 Android Input输入事件处理流程(3)

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

第十章 DisplayManagerService源码解析

  • 第一节 DisplayManagerService启动
  • 第二节 DisplayAdapter和DisplayDevice的创建
  • 第三节 DMS部分亮灭屏流程
  • 第四节 亮度调节
  • 第五节 Proximity Sensor灭屏原理
  • 第六节 Logical Display和Physical Display配置的更新

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


结语

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


标签:200,求职,第一节,Framework,源码,第二节,Android,解析
From: https://blog.51cto.com/u_16163510/6570844

相关文章

  • Android架构开发进阶指南,Android Jetpack Compose强化实战
    在我们日常的开发中,如果所有人各自为战,没有统一规范,久而久之,项目代码会变得混乱且后续难以维护。而这时,许多人就会使用Jetpack这个由多个库组成的套件,来减少样板代码,以便将精力更多的集中于重要的编码工作上面。统一的架构模式通常会给我们带来诸多好处,如:统一开发规范,使得代码整洁......
  • 【Flutter专题】Android Flutter入门笔记、技术解析与项目实战
    Flutter是一个跨平台、高性能的移动UI框架,其采用Dart语言开发,并使用自己的渲染引擎来绘制UI,保证了自身的高性能,保证了在Android和iOS上UI的一致性。目前Flutter已经支持iOS、Android、Web、Windows、macOS、Linux、Fuchsia(Google新的自研操作系统)等众多平台。与其他跨平......
  • 面试别瞎背题了!八月冲刺不要毁在传统一问一答的模式里,这份Android面试准备计划助你事
    背景这阵子,各大网络社交平台,刷到最多的就是面试求职相关的信息。这位网友在脉脉职言求助。本科毕业三年了,一直做安卓开发,请问跳槽找工作要怎么准备呢?写代码三年月薪不到一万是不是很失败?近日,还有程序员就因为这个问题在某职场社交软件上,被认证了的百度京东员工一顿嘲讽。找工作不可......
  • Android:“金九银十”战役打响还没看到跟BAT大佬的差距就危险了!来看看如何在大厂面试一
    前言金九银十已来临,打响九月第一战!开启中长线布局策略。想必现在有许多朋友,都在为即将到来的金三银四做准备,不知道各位朋友是否十足的把握能拿到自己心仪的Offer呢?下面无偿分享一些我多年面试和工作经验给你们,希望对你们的面试有一点帮助。如何在大厂面试一击而中?如何准备Android的......
  • 斗鱼直播实现:你主播最爱的Android音视频开发
    一、直播的本质实时推送/拉取音视频数据二、视频直播流程视频直播的流程可以分为如下几步:(1)采集(2)处理(3)编码和封装(4)推流到服务器(5)服务器流分发(6)播放器流播放1、采集视频的采集涉及两方面数据的采集:音频采集和图像采集,它们分别对应两种完全不同的输入源和数据格式。(1)两个传感器:CCD:图像......
  • 最佳被虐——Android混淆文件生成器
    直接上效果!混淆前;混淆后;使用获取混淆文件自己生成规则使用intellijidea打开 proguard-creater 工程编辑Main.java根据提示填写相应参数运行即可使用已有规则前往proguard-file 下载对应的文件即可Android工程配置开启混淆buildTypes{release{minifyEnabledt......
  • Android性能优化:微信自用高性能持久化框架——MMKV组件原理
    MMKVMMKV——基于mmap的高性能通用key-value组件,底层序列化/反序列化使用protobuf实现,性能高,稳定性强。githubMMKV是基于mmap内存映射的移动端通用key-value组件,底层序列化/反序列化使用protobuf实现,性能高,稳定性强。从2015年中至今,在iOS微信上使用已有近3年,其......
  • 精选Android中高级高频面试题:四大组件及Fragment原理
    因为实际开发与参考答案会有所不同,再者怕误导大家,所以这些面试题答案还是自己去理解!面试官会针对简历中提到的知识点由浅入深提问,所以不要背答案,多理解。Activity1、说下Activity生命周期?参考解答:在正常情况下,Activity的常用生命周期就只有如下7个onCreate():表示Activity正在被创......
  • 精选Android中高级面试题:性能优化,JNI,设计模式
    性能优化1、图片的三级缓存中,图片加载到内存中,如果内存快爆了,会发生什么?怎么处理?参考回答:首先我们要清楚图片的三级缓存是如何的:如果内存足够时不回收。内存不够时就回收软引用对象2、内存中如果加载一张500*500的png高清图片。应该是占用多少的内存?不考虑屏幕比的话:占用内存......
  • Android知识笔记:记录 2 个 “容易误解” 的Android 知识点
    今天分享两个之前我们可能都搞错的Android知识点,我们还是要追求极致,把不懂的问题搞懂的~1.事件到底是先到DecorView还是先到Window的?有天早上看到事件分发的一个讨论:那么事件到底是先到DecorView还是先到Window(Activity,Dialog)的呢,引发出两个问题:1.touch相关事件在DecorView,Phon......