Android基础篇——聊聊Android系统

在正式地进行Android学习之前,我们首先要里了解什么叫做Android系统,Android系统的架构,它的优势在那里,以及Android开发工程师的发展方向有哪些等,以便于我们对我们即将学习的内容进行铺垫,同时也是让大家对Android有个深刻的认识。

什么叫Android

什么叫Android?其实大家伙们对这个应该是比较了解的,如果翻译成中文“安卓”的话可能就更清晰了,是的,安卓智能手机,就是一个Android设备。那么是不是说,智能手机就是Android呢?这就错了。准确来说,Android是安卓手机里面的那个操作系统,也就是说,Android是一个可搭载在硬件上使用的操作系统。而安卓手机和苹果手机的争端,就是操作系统直接的对碰。那么,对于Android的准确定义是怎么样的呢?你可以这么说:Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。

Android的架构与底层实现

我们在前面说了,Android是基于Linux内核的操作系统,那么其核心自然也离不开linux,那么是不是说Android就是linux呢?那也不是,只是说我们借用了Linux的内核,在此基础上进行了进一步的封装,以便于在移动设备上进行使用,由此形成的新的操作系统。官方对它的架构有这么一张图来表示:
这里写图片描述
这张图可算得上是一个经典了,几乎每个学习Android的人都必定熟悉的一张图。我们先来看看怎么理解这张图:
正如左边的介绍一样,Android系统架构分四层。从上到下分别是:
应用层:
框架层:
本地库与运行时环境层:
内核层:
其中,上两层对应的是Android移动应用开发,也是我们要重点掌握的内容。而后两层更多趋向于sdk和操作系统移植等方面的事情。可以简单了解,但不能不清楚。
接下来,我们再来看一下Android的进化史,这里说的不是版本上的进化,而是讲述一个Android从无到有的过程,期间依赖了什么,支持了什么,希望通过这个介绍,让你对Android有一个更为深刻的认识:
这里写图片描述
你看,这就是一个Android系统从无到有的进化过程。首先,从底层而言,我们的硬件是通过内核调用驱动程序去进行的,而什么让内核去执行呢?就是系统调用(system call),在这里,我们通过shell去调用 system call,system call通过内核提供的借口去调用driver驱动硬件。而为了操作方便,我们的前辈们制定了标准c库,shell和标准c库的结合可以看到一个app。在这个层面上,我们也还是用的c语言,和java没有关系。到了后来,有人在标准c库的基础上进行了进一步的封装,形成了c++库,这里就出现了c++。c++和c的一个区别可能就在于c++偏向于面向对象编程,而c语言则倾向于面向过程编程。我们的前辈们用c++库搭建出了两个应用,一个是qt,因为和我们没有多大关系,所以目前不多做介绍,如果学嵌入式和c++,则建议掌握。而另一个应用叫什么呢?就是java虚拟机。在这个基础上,我们对c/c++又进行了一次的封装,便形成了纯面向对象编程的java。但故事并没有结束。因为Android刚推出时是主打手持移动设备市场,为了符合手持移动设备的需求,我们基于linux内核进行了重新的封装,同时对java的一些库进行扩充,最终,便造就了我们的Android,也就是一个Android从无到有的过程。

学习原生Android的优势和劣势

我们为什么要学习Android?它的优势有哪些?劣势又有哪些呢?我们一起来探讨一下:
首先是优势:到目前为止,Android智能设备的使用量已经取代苹果领跑全球,成为全球用户量最高的移动操作系统。那么在这么庞大的使用量上,对Android的优化和对用户提供优秀的应用软件都将是互联网公司盈利的主要来源。因此企业对Android人才的需求量还是非常高的,加上Android Things的出现,Android进入嵌入式领域已经成为可能,智能穿戴设备,智能家居等的兴趣,无一不为Android的进一步发展提供便利。虽然目前谷歌已经在设计一个新的操作系统,但从设计到退出再到广泛使用的这么一个过程中,Android应还是主流的操作系统。
至于说学习Android的劣势,主要表现人才市场的层化:
因为前期的Android是异常的火爆,所以吸引了很多的人投入到Android开发的浪潮中,导致的结果是中高级程序员缺乏,而低端程序员则冗余。于是企业开始提高对人才需求的标准,由此便形成了一种Android市场饱和的假象,其实却是企业对用人的需求提高了。但尽管这样,中高端的程序员还是缺乏,由此便出现了死循环,低端不用,中高端断层。所以很多企业对高级程序员所提供的待遇是非常高的,但也是很难招募得到。当然,跑偏了,作为入门级的我们,目前还是低端程序员的水准呢,在这个阶段最容易发生的事情是:找不到对应的工作。但是如果你能入门,再在行业里买你多学习,多积攒经验,那么你也可以实现屌丝的转变,进入高级程序员的领域。当然,要做到这点,自然少不了学习,学习以及学习。

Android的发展方向

关于Android的学习方向,个人总结出来有两种:
1.Android底层开发
这点主要从智能家居和移动穿戴设备等一些嵌入式领域出发,实现android和设备的移植,优化,更改等。主要掌握语言为C/c++,java/Kotlin.
2.Android移动网站开发
这点主要是考虑如何利用网页技术制作app,比如React Native框架等。要求熟悉web开发技术
当然,以上很多内容只是个人总结,仅当参考,如有描述不恰当的地方,烦请下方评论指出,共同探讨,一起进步:

下一章:创建第一个Android项目,敬请期待~

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页