湖北建设执业注册中心网站,广告公司报价单明细,郑州今天管控最新消息,sem全称Android系统架构总体可分为四层结构#xff0c;从下往上依次是:Linux内核层、系统运行库层、应用程序框架层以及应用程序层。如下图所示#xff1a; 一、Linux内核层 Google选择了Linux内核作为Android的底层支撑系统。当前的Android系统是基于Linux2.6内核的#xff0c;提供…Android系统架构总体可分为四层结构从下往上依次是:Linux内核层、系统运行库层、应用程序框架层以及应用程序层。如下图所示 一、Linux内核层 Google选择了Linux内核作为Android的底层支撑系统。当前的Android系统是基于Linux2.6内核的提供了一个操作系统所应该具有的最基本的功能。 当然除了标准的Linux内核外Android还额外增加了适合手机的内核驱动程序显示驱动、摄像头驱动、闪存驱动、Binder(IPC)驱动、键盘驱动、 WiFi驱动、音频系统驱动、蓝牙驱动、电源管理等。 二、系统运行库层: Android系统运行库层主要分为系统库和Android运行时环境两部分。 系统库 系统库是应用程序框架的支撑是连接应用程序框架层与Linux内核层的重要纽带。其主要包含以下几个部分 Surface Manager执行多个应用程序时候负责管理显示与存取操作间的互动另外也负责2D绘图与3D绘图进行显示合成。 Media Framework多媒体库支持多种常用的音频、视频格式录制和回放编码格式包括MPEG4、MP3、H264、AAC、ARM。 SQLite轻量级的关系型数据库引擎。 OpenGL|ES根据OpenGL ES 1.0 API标准实现的3D绘图函数库。 FreeType提供点阵字与向量字的描绘与显示 。 WebKit开源的浏览器引擎支持CSSJAVASCRIPTDOM等脚本语言。 SGL底层的2D图形渲染引擎。 SSL在Andorid上通信过程中实现安全认证。 Libc从BSD继承来的标准C系统函数库专门为基于embedded linux的设备定制。 Android运行时环境Run Time Context Android应用程序采用Java语言编写程序在Android运行时环境中执行运行时环境可分为核心库和Dalvik虚拟机两部分。 核心库提供了Java语言API中的大多数功能同时也包含了Android的一些核心API如android.os、android.net、android.media等等。 Dalvik虚拟机是由Google公司自己设计专门用于Android平台的Java虚拟机它针对移动终端做了特殊的优化。Dalvik虚拟机具有一下几个特征 1)专有的DEX文件格式 一个应用中可以定义很多类编译完成后即会有很多相应的CLASS文件CLASS文件内会有不少冗余的信息而DEX文件格式会把所有的CLASS文件内容整合到一个文件中。这样除了减少整体的文件尺寸I/O操作也提高了类的查找速度。原来每个类文件中的常量池在DEX文件中由一个常量池来管理而且DEX文件的结构非常紧凑。 2)一个应用一个虚拟机实例一个进程 每一个Android应用都运行在一个Dalvik虚拟机实例里而每一个虚拟机实例都是一个独立的进程空间。虚拟机的线程机制内存分配和管理等等都是依赖底层操作系统实现的。所有Android应用的线程都对应一个Linux线程虚拟机因而可以更多的依赖操作系统的线程调度和管理机制。不同的应用在不同的进程空间里运行对不同来源的应用都使用不同的Linux用户来运行可以最大程度的保护应用程序的安全和独立运行特性。 在Android系统中Zygote 是一个虚拟机进程同时也是一个虚拟机实例的孵化器每当系统要求执行一个 Android应用程序时Zygote就会孵化FORK出一个子进程来执行该应用程序。Zygote进程是在系统启动时产生的它会完成虚拟机的初始化资源库的加载预置类库的加载和初始化等操作而在系统需要一个新的虚拟机实例时Zygote通过复制自身最快速的提供给系统。 3) 基于寄存器 Dalvik虚拟机是基于寄存器的相对于基于堆栈的虚拟机实现基于寄存器的虚拟机实现虽然在硬件通用性上要差一些但是它在代码的执行效率上却更胜一筹。在基于寄存器的虚拟机里可以更为有效的减少冗余指令的分发和减少内存的读写访问。 三、应用程序框架层 应用程序框架层是开发者从事Android应用开发的基础很多核心应用程序也是通过这一层来实现其核心功能该层简化了组件的重用开发人员可以直接使用它提供的组件进行快速的应用程序开发也可以通过继承而实现个性化的拓展。 以下是这次层中各个部分的功能 Activity Manager活动管理器管理各个应用程序生命周期以及通常的导航回退功能 Window Manager窗口管理器管理所有的窗口程序 Content Provider内容提供器通过它可以在不同应用程序之间存取或者分享数据 View System视图系统构建应用程序的基本组件 Notification Manager(通知管理器)通过它应用程序可以在状态栏中显示自定义的提示信息 Package Manager包管理器:Android系统内的程序管理可以查看Android应用程序以及Activity的相关信息 Telephony Manager(电话管理器):管理所有的移动设备功能 Resource Manager资源管理器:提供应用程序使用的各种非代码资源如本地化字符串、图片、布局文件、颜色文件主题样式二进制文件等 Location Manager(位置管理器):提供位置服务 XMPP ServiceXMPP服务:提供Google Talk服务 四、应用程序层 Android平台不仅仅是操作系统也包含了许多应用程序诸如SMS短信客户端程序、电话拨号程序、图片浏览器、Web浏览器等应用程序。这些应用程序都是用Java语言编写并且都是可以被开发人员所开发的其他应用程序替换这点不同于其他手机操作系统固化在系统内部的系统软件更加灵活和个性化。 用户开发的Android应用程序和Android的核心应用程序是同一层次的它们都是基于Android的系统API构建的。转载于:https://www.cnblogs.com/pengxiaoli/archive/2013/01/12/2857606.html