如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
实践与经验Android内核分析陈璟,陈平华,李文亮(广东工业大学计算机学院,广州510006)摘要:介绍Android移动平台系统架构,通过对Android源代码的分析,将其与标准Linux内核(2.6.27)源代码相比较,详细解析Android内核的功能更新,分析讨论Android内核与标准Linux内核之间的不同以及Android在移动平台上的优势,并对Android在各种内核之间做出一个定位,介绍Ubuntu环境下Android内核的获得与编译。关键词:Android;内核;编译0引言随着嵌入式技术的发展,智能手机的运行速度和所集成的功能获得了极大提升。借着这股东风,Google主导的开放手机联盟OHA(OpenHandsetAlliance)顺势在2008年推出了Android移动终端平台。Android是一个开放、自由的移动终端平台[1],它的发布,打破了诺基亚Symbian操作系统和微软WindowsMobile操作系统在智能手机平台上的垄断地位,同时,其平台化的优势也大大丰富各种手持式设备软件的功能。Dalvik,它包含J2SE所提供的绝大部分功能。每个Android应用都运行在自己的进程上,Dalvik虚拟机为它分配自有的实例。Dalvik使一台设备能运行多个虚拟机程序但消耗较少的资源。在Android中,编译器将Java源文件转为class文件,内置的dx工具又将class文件转化为Dex文件,Dex文件是在Dalvik虚拟机上运行程序的标准格式。各种程序库[3]:包含一套C/C++库,Android的各式组件都可使用。这些功能通过组件间接提供给开发者。这些库包括图形框架、媒体功能库、Webkit、及1Android系统架构Android是Google开发的基于Linux平台的开源手机操作系统,它是一个移动终端平台,包括了移动电话工作所需的全部软件,由操作系统、中间件、UI(UserSQLite数据库,等等。(3)应用程序框架:提供应用程序开发所需要的各种API。在开发过程中,开发人员通过充分使用应用框架提供的API,对各种组件、服务进行重用,从而开发出精简、高效的应用程序。主要包括以下几种核心组件:Interface)及应用程序组成。开发人员使用Java语言,开发运行于Dalvik虚拟机上的应用程序,其运行效率比一般嵌入式Linux操作系统上的J2ME程序高。Android系统架构自底向上由以下4个层次组[2]成:基于Linux的内核模块、运行时库与其他库、应UI组件:包括List、Layout、Textbox、Utton、Check等,用以构建应用程序与用户的交互界面。box内容提供器(ContentProvider):实现标准的方法接口,让其他应用保存或读取其提供的数据,例如外部程序通过ContentProvider访问联系人数据。资源管理器(ResourceManager):管理对非代码的访问,例如本地图像、布局文件、本地化字符串等。消息管理器(NotificationManager):让程序将警示信息显示在状态栏上,例如平台接收到短信息、电子邮件、未接电话时在状态栏上的提示。现代计算机(总第三一九期)用程序框架、应用程序。(1)基于Linux的内核模块Android内核基于Linux2.6,提供安全、内存管理、进程管理、网络组、驱动模型等核心服务。同所有Linux内核一样,Android内核是介于硬件层和软件组之间的一个抽象层次。(2)运行时库与各种程序库运行时库实质是一款Java重新设计的虚拟机收稿日期:2009-10-09修稿日期:2009-11-01Activity管理器(ActivityManager):用来管理应用作者简介:陈璟(1984-),男,硕士研究生,研究方向为嵌入式系统貋MODERNCOMPUTER貣貗2009.11实践与经验程序生命周期并提供常用的导航回退功能[2]。(4)应用程序:Android预装了一系列由Java语言编写成的核心应用程序,包括短信服务、电话、Email客户端、浏览器、Google地图等。以发现,Android内核与标准Linux内核在文件系统、进程间通信机制、内存管理等方面存在不同。①文件系统不同于桌面系统与服务器,移动设备大多采用的不是硬盘而是采用Flash作为存储介质,因此,Android内核中增加了标准Linux内核中没有采纳的YAFFS2文件系统。YAFFS2(YetAnotherFlashFileSy-stem,2Android内核分析Android基于Linux操作系统,由硬件、系统内2.1内核在操作系统中的地位核、系统服务和