一样的Android,不一样的学习

        这几年,Android開始慢慢流行起来,非常多项目也開始涉及这部分内容,所以学习Android也就变的非常有意义了。

学什么

        学习Android应该学什么,非常多人有不同的见解。一般程序猿可能仅仅是学习Android的UI控件和Android的API使用等。高级程序猿可能会研究一下Android的FrameWork和Android的实现原理。相对于这两者,顶级的程序猿会深入的了解Android的层次架构和设计思想并将这些架构和设计思想加以改造、优化之后应用在其它方面。你会怎么做呢?

Android层次架构

        既然要学习Android,那么就要从最有魅力架构和设计理念開始。首先咱们先来看一下Android的架构设计图,例如以下所看到的:

        从上面图中,我们能够看出,这个Android的架构从上到下分为四层,各自是应用程序层、应用程序框架层、系统执行库层以及Linux内核层。

应用程序层

        应用程序层主要包含一些应用程序,这一层能够简单的理解为我们能够在移动设备上看到的的各种软件和应用。这些软件和应用都是能够被程序开发者开发的其它应用程序替换和更新的,这一点相对于早期固化在系统内部的移动端软件更加的灵活和个性化。

应用程序框架层

        应用程序框架层主要面对的是Android的应用开发者,它为Android开发者开发应用提供了很多可重用的组件,同一时候,它也同意开发者替换这些组建。通过这一层,开发者能够开发丰富的应用,开发者开发的应用全然能够使用其它应用已开发的功能。

系统执行层

        从上图所看到的,系统执行层能够分为两部分:一部分是Android提供的Lib库,还有一部分是Android的执行时。
        所谓Lib库,事实上就是相应用程序框架层的支撑,它所实现的全部功能都是通过应用程序框架层对外提供,并将Linux内核和应用程序框架层进行连接。
        Android的执行时类似于Java的执行时机制,能够分为API核心库和一个类似于JVM的虚拟机Dalvk。这部分能够參考JVM进行理解和学习,这里不再赘述。

Linux内核层

        Android从本质上来讲,就是在Linux的基础之上进行的一次封装。通过利用Linux Kernel作为硬件和软件之间的抽象层的,并其为上层提供的安全、内存管理、进程管理、网络堆栈、驱动模型等服务的特性,Andorid终于实现了它最基础的核心架构和设计。

        通过上面的分析,我们能够清晰的认识到,Android的设计最核心的就是分层。可是怎样分层这就是我们要关注的了,所以,学习Android不在于做出一个应用,而是通过学习Android分析它的架构,借鉴、完好、应用并创造价值。


        学习终于要的不是学什么,而是想学什么,做人不在于你做什么,而是你想做什么。

原文地址:https://www.cnblogs.com/mengfanrong/p/3937027.html