Android系统架构

来源:互联网 发布:淘宝差评师怎么收费 编辑:程序博客网 时间:2024/06/06 06:45

Android的系统架构和其操作系统一样,采用了分层的架构。从架构图看,Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。如下图


1.1应用程序层

     Android会同一系列核心应用程序包一起发布,该应用程序包包括客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。应用程序都是使用JAVA语言编写的。

1.2应用程序框架

  开发人员可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用.隐藏在每个应用后面的是一系列的服务和系统其中包括;

  ①丰富而又可扩展的视图Views),可以用来构建应用程序,它包括列表(Lists),网格(Grids),文本框(Text boxes),按钮(Buttons), 甚至可嵌入的web浏览器。

  ②内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据

  ③资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件(Layout files )

  ④通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。

  ⑤活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。

1.3系统运行库

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

1.4系统内核

  Android 是运行于Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux 里支持的功能,Android 大都没有支持,包括CairoX11AlsaFFmpegGTKPangoGlibc等都被移除掉了。Android又以Bionic 取代Glibc、以Skia 取代Cairo、再以opencore取代FFmpeg等 等。Android 为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到 Userspace,使得Linux driver 与 Linux kernel彻底分开。Bionic/Libc/Kernel/ 并非标准的Kernel header filesAndroid 的 Kernel header 是利用工具由 Linux Kernel header 所产生的,这样做是为了保留常数、数据结构与宏。Android 的 Linux kernel控制包括安全(Security),存储器管理(Memory Management),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等。


Android的相关开发分为Android设备的开发和Android应用程序开发两个方面,Android框架层对这两个方面的方法都具有支持作用.

那么Android分了四层,那么对我们做Andorid开发人员来讲,了解Android特性至关重要,那么Android有何特性呢?

 ①支持组件的重用和替换

 ②Dalvik虚拟机对移动设备做了优化,基于寄存器,速度快于Java

 ③内部集成WebKit引擎

 ④优化的图形库包括2D和3D

 ⑤Sqlite用作数据存储

 ⑥多媒体、GSM电话、GPS等等引用

 ⑧丰富的开发环境(模拟器、调试、内存、性能分析图标,Eclipse开发环境插件等等)