Android系统架构简介

Android系统架构师安卓系统的体系机构,Android的系统架构和其他操作系统一样,采用了分层的架构,共分为4层,从高到低分别是Android应用层,Android应用架构层,Android系统运行层和Linux内核层。

1. 应用程序

顶层中有所有的Android应用程序,包括通讯录、浏览器等,你写的应用程序也被安装在这层;所有的的应用程序都是使用Java语言编写的。

2. 应用框架层

这一层主要提供构建应用程序是可能用到的各种API,Android自带的一些核心应用就是使用这些API完成的,开发者也可以通过使用API来构建自己的应用程序

活动管理者(Activity Manager):控制应用程序生命周期和活动栈的所有方面

内容提供器(Content Providers):允许程序之间发布和分享数据。

资源管理器(Resource Manager):提供对非代码嵌入资源的访问,如字符串、颜色设置和用户界面布局。

通知管理器(Notification Manager):允许应用程序显示对话框或者通知给用户

视图系统(View System):一个可拓展的视图集合,用于创建应用程序用户界面

3. 系统运行库层

1) 程序库

Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。他们通过Android应用程序框架为开发者提供服务,以下是一些核心库:

  • 系统C库(libc):一个从BSD继承来的标准C系统函数库,他是专门为基于embedded linux的设备定制的媒体库(Media Framework):基于Packet Video opencore; 该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括 MPEG4。H264、MP3、AAC、AMR、JPG、PNG。
  • Surface Manager:对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合。
  • SGL:底层的2D图形引擎
  • 3D libraries:基于OpenFLES1.0 APLs实现,该库可以使用硬件3D加速或者使用高度优化3D软加速
  • FreeType:位图(bitmap)和矢量(vector)字体显示
  • SQLite:一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。

2) Android运行库

Android包括了一个核心库,该核心库提供了Java编程语言核心库的大多数功能。

每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该个税文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由java编译器编译,然后通过SDK中的”dx”工具转化成 .dex格式由虚拟机执行

Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。

4. Linux内核层

Android系统基于Linux2.6内核,这一层为Android设备各种硬件提供了底层驱动,如显示驱动,音频驱动,照相机驱动,蓝牙驱动,WIFI驱动,电源管理等

区别DVM与JVM

  1. 首要差别

1Dalvik:基于寄存器,编译和运行都会更快些

JVM:基于栈,编译和运行都会慢一些

  1. 字节码的区别

Dalvik:执行.dex格式的字节码,是对.class文件进行压缩后产生的,文件变小

JVM:执行.class格式的字节码

  1. 运行环境的区别

Dalvik: 一个应用启动都运行一个单独的虚拟机运行在一个单独的进程中

JVM:只能运行一个实例,也就是所有应用都运行在同一个JVM中

本帖附件

点击下载

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

0%