理论——剖析Android系统架构

Android系统是一个移动设备的开发平台,其软件层次结构包括操作系统(OS),中间件(middleware)和应用程序(application)。根据Android的软件框图,其软件层次结构自下而上分为以下4层。

(1) 操作系统层OS

(2)各种库(Libraries)和Android 运行环境(RunTime)。

(3)应用程序框架层(Application Framework)。

(4)应用程序(application)。

上述各个层的具体结构如图 1-1所示

在本节的内容中,将详细介绍Android操作系统的组件结构方面的知识。

xxx.APK

用户 root


硬件

一。顶层应用程序

主屏幕联系人电话浏览器。。。。。。应用程序

二。应用程序框架层

活动管理器窗口管理器内容提供者视图系统通知管理器

包管理器电话管理器资源管理器本地管理器XMPP服务应用程序框架

三。各种库(libraries)和Android运行环境

接口管理器界面管理器OpenGL ES持久层库Android运行环境 

包管理器位图及矢量浏览器引擎各种库ART+Dalvik虚拟机器 

2D图形引擎 中间协议libc函数库

四。底层操作系统(OS)

显示驱动相机驱动蓝牙驱动Flash内存驱动Binder IPC驱动Linux内核层

usb驱动键盘驱动WIFI驱动音频驱动能源驱动

一 。。底层操作系统层(os)

因为Android源于Linux,使用了Linux内核,所以,Android使用Linux2.6作为操作系统的基础。Android对操作系统的使用包括核心和驱动程序两部分。

Android内核对应于Linux内核,Android更多的是需要一些与移动设备相关的驱动程序。

主要驱动如下所示:

显示驱动:(display Driver):是常用的基于Linux的帧缓冲(Frame Buffer)驱动。

Flash内存驱动(flash memory Driver):是基于MTD的Flash驱动程序

照相机驱动(Camera Driver):用于基于Linux的V4L(video for linux)驱动

音频驱动(Audio Driver):常用基于ALSA(Advanced Linux sound Architecture,高级Linux声音体系)驱动

WIFI驱动(Camera Driver):基于IEEE802.11标准的驱动程序。

键盘驱动(KeyBoard Driver):作为输入设备的键盘驱动。

蓝牙驱动(Bluetooth Driver):基于IEEE802.15.1标准的无线传输技术。

Binder IPC 驱动:Android 一个特殊的驱动程序,具有单独的设备节点,提供进程间通信的功能。

Power Manager(能源管理):用于管理电池电量等信息。

二。各种库(libraries)和Android运行环境(Runtime)

    本层次对应一般嵌入式系统,相当于中间件层次。Android的本层次分成两个部分,一个是各种库,另一个是Android运行环境。本层的内容大多是使用C实现的,其中包含了如下所示的各种库。

C库:C语言的标准库,也是系统中一个最为底层的库,C 库是通过Linux的系统调用来实现的。

多媒体框架(MediaFrameWord):这部分内容是Android多媒体的核心部分,基于PacketVideo(即PV)的openCORE,从功能上看本库一共分为两大部分。一部分是音频,视频的回放(playBack),另一部分是音,视频的记录(Recorder)。

OpenGL ES:提供了对3D的支持

界面管理工具(sufece manager):提供了管理显示子系统等功能。

sqlite: 一个通用的嵌入式数据库。

webkit:网络浏览器的核心。

FreeType:位图与矢量字体的功能。

在一般情况下,Android的各种库是以系统中间件的形式提供的,它们的显著特点是与移动设备平台的应用密切相关。另外,Android 的运行环境主要是指Dalvik

(虚拟机)技术。Dalvik和一般的Java虚拟机(Java vm)是有区别的 。

Java虚拟机:执行的是Java标准字节码(Bytecode).

ART+Dalvik:执行的是Dalvik可执行格式(.dex)中方的执行文件。在执行的过程中,每一个应用程序即一个进程(Linux的一个process)。二者最大的区别在于Java VM是以基于栈的虚拟机(stack-based),而Dalvik是基于寄存器的虚拟机(Register-based)。显然,后者最大的好处在于可以根据硬件实现更大的优化,

这更适合移动设备的特点。从Android 5.0版本开始,Android的默认运行环境为ART。ART的机制与Dalvik不同。在Dalvik下,应用每次运行的时候,字节码都需要通过即时编译器转换为机器码,这会拖慢应用的运行效率,而在ART环境中,应用在第一次安装的时候,字节码就会预先编译成机器码,使其成为真正的本地应用。这个过程叫做预编译(AOT, Ahead-Of-Time)。这样改进后,应用的启动(首次)和执行都会变得更加的快速。

三。。   Application Framework(应用程序框架)

在整个Android系统中,和应用开发最相关的是Application Framework,在这一层,Android为应用程序层的开发者提供了各种功能强大的APIs,这实际上是一个应用程序的框架。由于上层的应用程序是以Java构建的。在本层提供了程序中所需要的各种控件,例如,视图组件(Views),列表(List),栅格(Grid),文本框(Text Box),按钮(Button),甚至还有一个嵌入式的Web浏览器。一个基于的Android应用程序可以利用应用程序框架中的以下5个部分。

Activity:活动

Broadcast Intent Receiver:广播意图接受者。

Service:服务

Content Provider:内容提供者。

Intent and Intent Filter:意图和意图过滤器。

四。。 顶层应用程序(Application)

Android的应用程序主要是用户界面(User Interface)方面的,本层通常使用Java语言编写,其中还包括各种被放置在“res”目录中的资源文件构成。Java程序和相关资源在经过编译后,会生成一个APK包。Android本身提供了主屏幕(Home),联系人(Contact),电话(Phone),浏览器(Browers)等众多的核心应用。

同时应用程序的开发者还可以使用应用程序框架层的API实现自己的程序。这也是Android开源的巨大潜力的体现。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349