移动互联网黄金年代过去,大型App机会绝迹?—浅谈Android就业环境

126 阅读3分钟

就目前的Android就业环境来看,深入研究Android Framework层框架源码成为了广大开发者的首要之选

不得不承认的是,移动互联网的黄金年代已经过去,大型 App 的开发机会几乎绝迹,更多的是短平快的小项目。对于这些短平快的小项目,5 年以上开发人员的优势非常小,在企业的角度甚至是减分项,为什么这么说?老开发工资高,加班接受度低,不吃老板画的饼了..... 相比之下,2-3 年工作经验的新人更受欢迎,工资低,有冲劲,能加班。最致命的问题是, App 开发,无论是原生,前端,跨平台技术栈,变化非常快。老开发通常有家庭需要照顾,精力有限,学习速度很可能是赶不上新人。以上种种,导致了 35 岁问题!

35 岁问题出现最核心的原因是你积累的经验没有形成新人入行的门槛。简单地说,你的工作不吃经验!

Android 系统开发涉及的知识面很广,代码量大,复杂度高,相关的学习资料也非常匮乏。新人上手有较大的门槛,无形中就形成了岗位的护城河。

从 2008 年发布 Android1.0 到现在,Android 迭代了很多版本,但核心基础组件是一直没有大的变化的(比如 Binder,应用层四大组件,Handler 等),也就是说系统开发积累的经验是可以积累并形成壁垒的

总之Framework值得我们深入探讨,对此这里分享一份字节大佬整理的Framework源码解读笔记

该学习笔记旨在通过实例和案例介绍 Android Framework 的核心概念和技术,从而帮助开发者更好地理解 Android 应用程序的设计和开发。

适合具有一定 Android 应用开发经验的程序员,希望能通过深入学习 Android Framework 来帮助开发者更好地理解和掌握这一技术。

整份手册内容主要涵盖:系统启动流程分析、跨进程通信IPC、Handler、AMS 、WMS、SurFace,SurfaceFlinger、PKMS等10个章节,共442页,章节最后还有相关面试题解析,帮助大家更好地学习Framework,通过面试难关。

在这里插入图片描述

详细VX关注公众号:Android老皮

Android系统启动流程

了解Framework的同学,可能都或多或少的知道AMS、WMS、类加载、热修复Sophix、插件化等都要涉及系统的启动流程。

从手机开机开始涉及到的关键流程一般可分为以下五个步骤

  1. 手机开启执行Boot ROM引导芯片开始执行。
  2. 加载引导程序Boot Loader到RAM,Boot Loader一般就会由厂商进行定制。
  3. 执行引导程序:初始化堆栈、硬件、网络内存等操作。
  4. 启动Android内核,寻找init关键文件,并启动init进程
  5. Kernel启动后,在用户空间启动init进程,该进程作为用户空间的第一个进程,并调用init进程中的main方法开始启动Zygote进程。

仅凭流程是无法掌握具体技术,相信完整的源码解析加上案例分享,可以帮大家省下不少时间。

在这里插入图片描述

跨进程通信IPC

IPC(inter-Process-Communication)进程间通信,用于两个进程之间进行数据交互的过程,任何操作系统都有IPC机制,但不同的操作系统有着不同的通信方式,Android系统是一种基于Linux内核的移动操作系统,Linux的跨进程通信主要通过管道、共享内存、内存映射等实现的,但Android有自己的进程间通信机制,最具代表性的就是Binder。

在这里插入图片描述

在这里插入图片描述