转载请注明出处:http://blog.csdn.net/f123210f/article/details/78223658
大家好,从今天开始,我将在我的博客中为大家絮叨Android的一些知识。说是为大家絮叨,其实主要是自我工作多年的一个总结与回顾。毕竟我们的孔圣人曾经曰(yue)过:温故而知新。
既然是总结与回顾,那么自然是要从头开始,因此此系列也十分适合准备学习Android知识的人。当然了,如果是新手学习,那么还是应该系统的进行,这里推荐一本书《第一行代码——第2版》。这是业内大神的一本书,已经出到了第二版。对于新手来说,最合适不过。
好了,废话少说,我们进入正题。
Android系统架构
一、为什么要了解系统架构
学习一个知识,我们首先要有个整体的概念。那么Android是如何控制手机硬件来为我们服务的呢?这就要了解一下整个Android的系统架构了。
二、系统架构
首先来看一张图,这幅图有助于理解下面枯燥的文字。
我们从上往下看:
APPLICATIONS层
Applications层,又叫应用层,顾名思义,就是我们安装在手机上的各种应用,包括手机自带的一些联系人、短信,都属于这一层。我们接下来开发的应用也属于这一层。
FRAMEWORK
应用框架层,这里主要是供我们开发Applications层应用的API,我们调用这些API可以实现各种功能。
LIBRARIES
这一层为我们提供了C/C++的库。我们在图中可以清晰的看到,SQLite库、WebKit库分别为我们提供了数据库和浏览器内核支持。
旁边的黄色部分,Android运行时库,里面有个Dalvik虚拟机,这是个伟大东西,它区别与Java虚拟机,优化了移动端内存和CPU性能,更适合移动端。每一个应用程序都有自己的Dalvik虚拟机,运行在独立的进程中。
附:Android5.0之后Dalvik改为了ART
ART:在安装软件时,就把字节码预编译成机器码,然后存储到一个地方,在运行时,就不需要再去编译机器码了
使用ART模式开机速度和软件运行的速度快LINUX KERNEL
Android是基于Linux内核的,毕竟Java语言不能直接操作硬件,这一层呢,也就主要提供硬件的驱动。如显示、音频、相机、蓝牙等。
到此Android的四层架构就介绍完了,当然其中还有很多细枝末节,如图中的每一个小方块都能拆开讲上很久,在这里就不说了,后面再详细介绍。