![](https://csdnimg.cn/release/download_crawler_static/88014360/bg8.jpg)
2.1.4. 中介软件
操作系统与应用程序的沟通桥梁,应用分为两层:函数层(Library)和虚拟机(Virtual
Machine)。 Bionic 是 Android 改良 libc 的版本。Android 同时包含了 Webkit,所谓的
Webkit 就是 Apple Safari 浏览器背后的引擎。Surface flinger 是就2D 或3D 的内容显示
到屏幕上。Android 使用工具链(Toolchain)为 Google 自制的 Bionic Libc。
Android 采用 OpenCORE 作为基础多媒体框架。Open CORE 可分7大块:PVPlayer、
PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System
Compatibility Library(OSCL)、Common、OpenMAX。
Android 使用 skia 为核心图形引擎,搭配 OpenGL/ES。skia 与 Linux Cairo 功能相当,
但相较于 Linux Cairo, skia 功能还只是雏形的。2005年 Skia 公司被 Google 收购,2007
年初,Skia GL 源码被公开,Skia 也是 Google Chrome 的图形引擎。
Android 的多媒体数据库采用 SQLite 数据库系统。数据库又分为共用数据库及私用数
据库。用户可通过 ContentResolver 类(Column)取得共用数据库。
Android 的中间层多以 Java 实现,并且采用特殊的 Dalvik 虚拟机(Dalvik Virtual
Machine)。Dalvik 虚拟机是一种“暂存器型态”(Register Based)的 Java 虚拟机,变量
皆存放于暂存器中,虚拟机的指令相对减少。
Dalvik 虚拟机可以有多个实例(Instance), 每个 Android 应用程序都用一个自属的
Dalvik 虚拟机来运行,让系统在运行程序时可达到优化。Dalvik 虚拟机并非运行 Java 字
节码(Bytecode),而是运行一种称为.dex 格式的文件。
2.1.5. 安全权限机制
Android 本身是一个权限分立的操作系统。在这类操作系统中,每个应用都以唯一的
一个系统识别身份运行(Linux 用户 ID 与群组 ID)。系统的各部分也分别使用各自独立的
识别方式。Linux 就是这样将应用与应用,应用与系统隔离开。
系统更多的安全功能通过权限机制提供。权限可以限制某个特定进程的特定操作,也
可以限制每个 URI 权限对特定数据段的访问。
Android 安全架构的核心设计思想是,在默认设置下,所有应用都没有权限对其他应
用、系统或用户进行较大影响的操作。这其中包括读写用户隐私数据(联系人或电子邮
件),读写其他应用文件,访问网络或阻止设备待机等。