1. 为什么要学习 Android Framework?
作为一名应用层 App 开发工程师,我们为什么要学习 Android Framework?答案很简单,为了不被淘汰!在 2023 年的当下,不会点 Binder WMS AMS PMS
好像都找不到工作了,更过分的是应聘企业甚至希望你会点 RN Fluter
等跨平台技术,顺便能掌握点前端技术就更好了,活生生的面试造火箭!对于市面上 99% 的 App 的开发是不需要我们掌握 Framework 的,企业去面试这些,只是为了筛人罢了,因为收到的简历确实太多了,常规的题目已经无法对应聘者做出筛选了。
对于 Android 应用开发工程师,如果想要长期的在这个行业干下去,大的方向上大概有两条相对靠谱的进阶路线可以选择:
- 大前端路线:掌握 Android IOS 双端原生开发,跨平台开发,前端开发
- 系统开发路线:掌握 Linux 系统开发技术,熟悉 Framework 层核心组件原理,了解 Linux 内核
大前端路线出现的很大原因是企业挣不到钱了,养不起人了,希望一个人能干几个人的活,这种岗位主打的是性价比。
不得不承认的是,移动互联网的黄金年代已经过去,大型 App 的开发机会几乎绝迹,更多的是短平快的小项目。对于这些短平快的小项目,5 年以上开发人员的优势非常小,在企业的角度甚至是减分项,为什么这么说?老开发工资高,加班接受度低,不吃老板画的饼了… 相比之下,2-3 年工作经验的新人更受欢迎,工资低,有冲劲,能加班。最致命的问题是, App 开发,无论是原生,前端,跨平台技术栈,变化非常快。老开发通常有家庭需要照顾,精力有限,学习速度很可能是赶不上新人。以上种种,导致了 35 岁问题!
35 岁问题出现最核心的原因是你积累的经验没有形成新人入行的门槛。简单地说,你的工作不吃经验!
Android 系统开发涉及的知识面很广,代码量大,复杂度高,相关的学习资料也非常匮乏。新人上手有较大的门槛,无形中就形成了岗位的护城河。
从 2008 年发布 Android1.0 到现在,Android 迭代了很多版本,但核心基础组件是一直没有大的变化的(比如 Binder,应用层四大组件,Handler 等),也就是说系统开发积累的经验是可以积累并形成壁垒的。
废了这么多话,归根结底一句话——Framework 是值得应用开发投入精力来学习的
以下是 Android Framework 核心基础的学习路线图:
清晰的学习路线图可以在 链接:https://pan.baidu.com/s/1F0Ibi8pHcYT39HASy3zvNw 提取码:1234
处下载到。
学习路线一共分为 11 个专题,接下来看看这 11 个专题都需要学习哪些内容:
2. 基础篇
基础知识涉及的面很广,我们应该做好长期学习的准备,学习过程中做好笔记,及时复习和记忆。另外,我们应该一边学习系统源码,一遍学习基础,遇到不会的,再回头看看基础,形成知识记忆到应用的闭环。千万不要基础学完了,再去学习系统源码,效率低,效果差。
基础部分我们主要掌握以下的学习内容:
-
Linux的基本使用:推荐学习 《Linux 运维之道 第二版》
-
编程语言
* C 语言:《一站式学习C编程》、《C语言非常道》、《嵌入式C语言自我修养》
* C++ :《21天学通 C++》
* Java:《Java 核心技术》
* JNI:这个没有特别合适的书籍推荐,可以关注我的博客和公众号,后续会分享一些我的学习笔记。
- 工具类编程语言和软件构建工具&#x