前言
如果你最近在找工作或者有关注Android行业的招聘这一块就会发现,现在很多公司,特别是大厂在招聘高工或者架构师的时候都会将熟悉framework原理或源码列为招聘要求之一。那么作为一个Android开发者是否都要去学习framework呢?又该如何去学习呢?我们今天来聊一聊Framework开发的那些事。
为何需要学习framework
系统应用开发,现在来说,已经开始脱离系统,单独拿出来开发,系统定制接口,已提供给应用调用,用来增强功能。原生的桌面,拨号,设置,已经没法做出差异化优势,因此都费尽心机,来进行应用深度开发对于之前维护系统应用模块的人来讲,修修补补,真的没有什么成长。对个一个Android开发者来说,每天的工作如果没有很深的技术壁垒,就很容易被别人攻陷,最后被公司和市场给“优化”掉。
就好比如设置、联系人、再小的改动,修改故障的时候,没有非常高的要求,做过应用开发的,都可以过来参和一脚,改改问题。而让一个应用开发得去修改系统接口,估计改的心累,并且犹豫不决。所以这时候你需要一层技术壁垒,来增强自己的核心竞争力。也只有拥有核心竞争力,并持之以恒的学习,扩充自己的深度,广度,那么不管是在怎样的一个市场环境下,你的位置都牢不可破,不会轻易被替代,这也是为什么我觉得Android开发者需要学习framework的原因。
framework如何学习
Framework的核心技术
接下来博主从自身的角度,讲讲系统应用开发,该如何向framework进军,进行学习,掌握更加核心的技术。
这里有人会说,我做应用风生水起,也游刃有余,不比你们做系统Framework的差,何必把系统应用开发的贬的一文不值。这里要说一下,文中没有这个意思,你的应用做的有声有色,赚的盆满钵满,这里肯定有其因素。比如它的性能,它的界面绚丽,百变主题。或者它有智能识别,等等。这些都叫做差异化产品,有其亮点,特色,才能杀出重围。
而系统应用开发,我这里偏向于手机整机开发中的OEM厂商,主要做出系统,能够保证功能正常,不会花费大量人力精力去做应用深度开发,系统重构的。这里主要会以追求速度,同时满足客户的硬件要求,比如多个霍尔器件,多个温度传感器,多个皮套功能,等等,但很少去大量改动应用架构,以免影响最终量产。
以上,就是特指的这个应用开发人员。随后,我来讲讲,Framework需要掌握哪些知识呢?
操作系统
熟悉我的人都知道,我特喜欢把这个放在第一位,原因很简单,它确实支撑了我随后的所有知识根基,让我能够从容不迫的,将一个个系统拆解出来。
我们就拿安卓来讲,启动过程
Android 启动过程框架
跟linux如出一辙,所以很容易迁移过来,同时&