您的位置:首页 > 运维架构 > 网站架构

Android系统架构

2015-09-18 16:39 204 查看

一、Android 大致可以分为四层架构,五块区域。



应用程序层(Applications)

先从我们最熟悉的一层开始,此层处于系统架构的最上层,所有安装在手机上的应用程序都属于这一层,例如电话簿,短信,浏览器等。

应用框架层(Application Framework)

提供了大量的API供开发人员使用,开发人员大部分时间是在和它打交道。Android自带的一些核心应用就是使用这些API完成的。API是一些预先定义的函数。

系统运行库层(Libraries)

这一层通过一些 C/C++库来为系统运行提供环境支持或者说是软件运行时所需要的文件支持,是连接应用程序框架层与Linux内核层的重要纽带。如SQLite 库提供了数据库的支持, OpenGL|ES 库提供了 3D 绘图的支持, Webkit 库提供了浏览器内核的支持等。

同样在这一层还有 Android 运行时库,它主要提供了一些核心库,能够允许开发者使用 Java 语言来编写 Android 应用。另外 Android 运行时库中还包含了 Dalvik 虚拟机。

Linux内核层

Android 系统是基于 Linux 2.6 内核的,这一层为 Android 设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、 Wi-Fi 驱动、电源管理等。

二、深入理解

上面提到系统运行库层是C/C++库,而我们都知道编写Android代码用的是Java语言,按理来说程序是不会运行的。所以在Android运行时我们需要一个虚拟机,就是DVM。而ios系统是用OC写的,iPhone上的应用也是OC写的,所以同等配置的手机下,iPhone会比Android显得更快。

许多开发人员可能对C、C++不太熟悉,第二层的api就是封装好的函数,可以操纵第三层的C/C++类库。

举个例子来说明Android四层架构之间的联系,照相机属于第一层应用层,实现照相功能时,只需要调用第二层的api,api会操作第三层的类库,第三层的C语言类库会操作第四层的照相机驱动。

JVM的运行机制:

.java->.class->.jar,一个jar包有多个.class文件,JVM是基于栈的架构,栈在内存

DVM的运行机制:

.java->.class->.dex->.apk,DVM把多个.class文件集成到一个.dex文件中,DVM是基于寄存器的架构,寄存器在CPU,寄存器中存的只是引用

JVM的jar包有多个.class文件,每个.class文件都需要储存自己的文件信息。而DVM的apk只有一个.dex文件,所以只需要一个通用的字符串常量池来保存常用的字符串,一个通用的字节码常量池……。每启动一个Android程序,就有一个虚拟机实例诞生。每个Android程序都在自己的虚拟机中运行。本质上来说,JVM和DVM都是为了运行Java程序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: