这几年,Android开始慢慢流行起来,不少项目也开始涉及这部份内容,因此学习Android也就变的颇有意义了。
程序员
学习Android应该学什么,不少人有不一样的看法。通常程序员可能只是学习Android的UI控件和Android的API使用等。高级程序员可能会研究一下Android的FrameWork和Android的实现原理。相对于这二者,顶级的程序员会深刻的了解Android的层次架构和设计思想并将这些架构和设计思想加以改造、优化以后应用在其余方面。你会怎么作呢?
安全
既然要学习Android,那么就要从最有魅力架构和设计理念开始。首先我们先来看一下Android的架构设计图,以下所示:
网络
从上面图中,咱们能够看出,这个Android的架构从上到下分为四层,分别是应用程序层、应用程序框架层、系统运行库层以及Linux内核层。
架构
应用程序层主要包括一些应用程序,这一层能够简单的理解为咱们可以在移动设备上看到的的各类软件和应用。这些软件和应用都是能够被程序开发人员开发的其余应用程序替换和更新的,这一点相对于早期固化在系统内部的移动端软件更加的灵活和个性化。
框架
应用程序框架层主要面对的是Android的应用开发人员,它为Android开发人员开发应用提供了许多可重用的组件,同时,它也容许开发人员替换这些组建。经过这一层,开发人员能够开发丰富的应用,开发人员开发的应用彻底可使用其余应用已开发的功能。
学习
从上图所示,系统运行层能够分为两部分:一部分是Android提供的Lib库,另外一部分是Android的运行时。
所谓Lib库,其实就是对应用程序框架层的支撑,它所实现的全部功能都是经过应用程序框架层对外提供,并将Linux内核和应用程序框架层进行链接。
Android的运行时相似于Java的运行时机制,能够分为API核心库和一个相似于JVM的虚拟机Dalvk。这部分能够参考JVM进行理解和学习,这里再也不赘述。
优化
Android从本质上来说,就是在Linux的基础之上进行的一次封装。经过利用Linux Kernel做为硬件和软件之间的抽象层的,并其为上层提供的安全、内存管理、进程管理、网络堆栈、驱动模型等服务的特性,Andorid最终实现了它最基础的核心架构和设计。
经过上面的分析,咱们能够清晰的认识到,Android的设计最核心的就是分层。可是如何分层这就是咱们要关注的了,因此,学习Android不在于作出一个应用,而是经过学习Android分析它的架构,借鉴、完善、应用并创造价值。
学习最终要的不是学什么,而是想学什么,作人不在于你作什么,而是你想作什么。
spa