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程序。
相关文章推荐
- iOS122 有态度的iOS第三方资源聚合网站
- 搭建网站常见返回码40X 50X等错误的原因及解决方案
- RabbitMQ 集群与高可用配置
- 蔡学镛:让架构接地气,不再云里雾里
- Git相关网站
- Android开发相关网站和工具
- Flask+Mysql搭建网站之其他笔记
- 淘宝数据魔方技术架构解析
- 混合IT架构的最佳实践
- 新浪微博技术架构分析
- 微信、陌陌等著名IM软件设计架构详解
- HDFS 高可用HA搭建过程
- Unity3D 之脚本架构,优雅地管理你的代码
- 使用SQLMAP对网站和数据库进行SQL注入攻击
- 架构的伸缩性(转载)
- JavaScript检测访问网站IP地址来自哪些地市
- 9月上旬国内网站流量统计TOP5:淘宝网险夺第三
- Android 4.0 Camera架构分析之Camera初始化
- 常见网站CSS样式重置
- 网站性能优化