关闭

Android内核的简单分析

发表于:2012-2-24 09:43

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Veda    来源:51Testing软件测试网采编

  随着嵌入式技术的发展,智能手机的运行速度和所集成的功能获得了极大提升。借着这股东风,Google主导的开放手机联盟OHA (0Den Handset Alliance)顺势在2008年推出了Android移动终端平台。Android是一个开放、自由的移动终端平台。它的发布,打破了诺基亚Symbian操作系统和微软WindOWs Mobile操作系统在智能手机平台上的垄断地位。同时,其平台化的优势也大大丰富各种手持式设备软件的功能。

  Android系统架构

  Android是Google开发的基于Linux平台的开源手机操作系统。它是一个移动终端平台,包括了移动电话所需的全部软件,由操作系统、中间件、UI(UserInterface)及应用程序组成。开发人员使用Java语言,开发运行于Dalvik虚拟机上的应用程序。其运行效率比一般嵌入式“linux操作系统上的J2ME程序高。Android系统架构自底向上由以下4个层次组成:基于Linux的内核模块、运行时库与其他库、应用程序框架、应用程序。

  1、基于Linux的内核模块。Android内核基于Linux 2.6,提供安全、内存管理、进程管理、网络组、驱动模型等核心服务。同所有Linux内核一样。Android内核是介于硬件层和软件组之间的一个抽象层次。

  2、运行时库与各种程序库。运行时库实质是一款Java重新设计的虚拟机Dalvik.它包含J2SE所提供的绝大部分功能 每个Android应用都运行在自己的进程上。Dalvik虚拟机为它分配自有的实例,Dalvik使一台设备能运行多个虚拟机程序但消耗较少的资源。在Android中,编译器将Java源文件转为class文件,内置的dx工具又将class文件转化为Dex文件。Dex文件是在Dalvik虚拟机上运行程序的标准格式。而各种程序库则包含一套C/C++库。Android的各式组件都可使用这些功能通过组件间接提供给开发者。这些库包括图形框架、媒体功能库、Webkit、及SQLite数据库等等。

  3、应用程序框架。提供应用程序开发所需要的各种API在开发过程中。开发人员通过充分使用应用框架提供的API,对各种组件、服务进行重用。从而开发出精简、高效的应用程序。主要包括以下几种核心组件:

  ● UI组件:包括List、Layout、Textbox、Utton、Checkbox等,用以构建应用程序与用户的交互界面。

  ● 内容提供器(Content Provider):实现标准的方法接口。让其他应用保存或读取其提供的数据。例如外部程序通过Content Provider访问联系人数据。

  ● 资源管理器(Resource Manager):管理对非代码的访问,例如本地图像、布局文件、本地化字符串等。

  ● 消息管理器(Notification Manager):让程序将警示信息显示在状态栏上。例如平台接收到短信息、电子邮件、未接电话时在状态栏上的提示。

  ● Activity管理器fActiv Manager):用来管理应用程序生命周期并提供常用的导航回退功能闭。

  4、应用程序。Android预装了一系列由Java语言编写成的核心应用程序,包括短信服务、电话、Email客户端、浏览器、Google地图等。

  Android内核分析

  1、内核在操作系统中的地位

  Android基于Linux操作系统,由硬件、系统内核、系统服务和应用程序等四大部分组成。其中,内核(Kerne1)是最核心的部分。其主要作用在于与计算机硬件进行交互,实现对硬件的编程控制和接口操作。调度访问硬件资源,同时向应用程序提供一个高级的执行环境和对硬件的虚拟接口。主要功能包括:中断服务程序、进程调度程序、进程地址空间的内存管理、进程间通信。内核与普通应用程序不同,其拥有所有硬件设备的访问权限以及启动时即划分的受保护的内存空间。

  2、Android内核

  和标准的Linux内核一样,Android内核主要实现内存管理、进程调度、进程间通信等功能。

  Android内核是在标准Linux内核的基础上修改而成。为了适应嵌入式硬件环境和移动应用程序的开发。Android对标准Linux内核进行了一定的修改。为了对比分析Android内核,在Ubuntu操作系统上搭建了Android内核的编译开发平台,通过repo,下载最新的Android内核代码版本cupcake(其中Linux内核版本为2.6.27) 从获得的内核源码树的根目录结构看,Android内核源码与标准Linux内核并无不同。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号