Android内核分析 Android内核分析

Android内核分析

  • 期刊名字:现代计算机(专业版)
  • 文件大小:830kb
  • 论文作者:陈璟,陈平华,李文亮
  • 作者单位:广东工业大学计算机学院
  • 更新时间:2020-09-25
  • 下载次数:
论文简介

实践与经验Android内核分析陈環,陈平华,李文亮(广东工业大学计算机学院,广州510006)摘要:介绍Andoid移动平台系统架构,通过对Adroid源代码的分析,将其与标准Linux内被(2.6.27)源代码相比较,详细解析Android内核的功能更断,分析讨论Android内榷与标准Linux内核之间的不同以及Android 在移动平台上的优势,并对Android在各种内核.之间做出一个定位。介绍Ubuntu环境下Android内核的获得与编译。关键词: Android;内核;鳊译引言Dalvik,它包含J2SE所提供的绝大部分功能。每个随着嵌人式技术的发展,智能手机的运行速度和Android应用都运行在自己的进程上, Dalvik 虚拟机所集成的功能获得了极大提升。借着这股东风,Coogle为它分配自有的实例。Dalvik 使一台设备能运行多个主导的开放手机联盟OHA (Open Handset Aliance)顺虚拟机程序但消耗较少的资源。在Android中,编译势在2008年推出了Android移动终端平台。Android器将Java源文件转为class文件,内置的dx工具又将是一个开放、自由的移动终端平邰,它的发布,打破了class 文件转化为Dex文件,Dex文件是在Dalvik虚拟诺基亚Symbian操作系统和微软Windows Mobile操作机上运行程序的标准格式。系统在智能手机平台上的垄断地位,同时,其平台化各种程序库肉:包含-套C/C+库,Android的各的优势也大大丰富各种手持式设备软件的功能。式组件都可使用。这些功能通过组件间接提供给开发者。这些库包括图形框架、媒体功能库,Webkit、及1 Android 系统架构SQLite数据库,等等。Android是Google 开发的基于Linux 平台的开源(3)应用程序框架:提供应用程序开发所需要的手机操作系统,它是一个移动终端平台,包括了移动电各种API。在开发过程中,开发人员通过充分使用应话工作所需的全部软件.由操作系统.中间件.U(User用框架提供的API,对各种组件、服务进行重用,从而Interface)及应用程序组成。开发人员使用Java语言,开发出精简高效的应用程序。主要包括以下几种核开发运行于Dalvik虚拟机上的应用程序,其运行效率心组件:比一般嵌入式Linux操作系统上的J2ME程序高。UI组件:包括List,Layout .Textbox .Uton .Check-Android 系统架构自底向上由以下4个层次组box等,用以构建应用程序与用户的交互界面。成闪:基于Linux的内核模块、运行时库与其他库、应内容提供器(Content Provider):实现标准的方法用程序框架、应用程序。接口,让其他应用保存或读取其提供的数据,例如外(1)基于Linux 的内核模块部程序通过Content Provider访问联系人数据。Android内核基于Linux 2.6,提供安全、内存管资源管理器(ResourceManager):管理对非代码理进程管理、网络组、驱动模型等核心服务。同所有的访问,例如本地图像、布局文件本地化字符串等。Linux内核一样,Android内核是介于硬件层和软件组消息管理器Noifcaion Manager):让程序将警示之间的-一个抽象层次。信息显示在状态栏上,例如平台接收到矩信息.电子(2)运行时库与各种程序库邮件、未接电话时在状态栏上的提示。运行时库实质是一款Java重新设计的虛拟机Activity 管理器(Activity Manager): 用来管理应用牧稿日期:2009-10-09修稿日期 2009-11-01中国煤化工作者简介:陈绿(1984-),男项士研究生研究方向为嵌入式系统YHCNMHGMODERN COMPUTER 209.1112实践与经验程序生命周期并提供常用的导航回退功能口。以发现,Android内核与标准Linux内核在文件系统、(4)应用程序:Android预装了一系列由Java语言进程间通信机制、内存管理等方面存在不同。编写成的核心应用程序,包括短信服务.电话、Email①文件系统客户端、浏览器.Google地图等。不同于桌面系统与服务器,移动设备大多采用的不是硬盘而是采用Flash作为存储介质,因此,Android2 Android 内核分析内核中增加了标准Linux内核中没有采纳的YAFFS22.1内核在操作系统中的地位文件系统。YAFFS2 (Yet Another Flash File Sy stem,Android基于Linux 操作系统,由硬件、系统内2nd edition)专用于Flash的文件系统,对NAND-核、系统服务和应用程序等四大部分组成。其中,内Flash芯片有着良好的支持。YAFFS2 是日志结构的文核(Kemel)是最核心的部分,其主要作用在于与计算件系统,提供了损耗平衡和掉电保护,可以有效地避免机硬件进行交互,实现对硬件的编程控制和接口操意外断电对文件系统-致性和完整性的影响。YAFFS2作,调度访问硬件资源,同时向应用程序提供- -个高按层次结构设计,分为文件管理接口、内部实现层和级的执行环境和对硬件的虐拟接口。主要功能包括:NAND,简化了其本身与系统的接口设计,能更方便地中断服务程序、进程调度程序、进程地址空间的内存集成到系统当中。经过测试证明, YAFFS2性能比支持管理、进程间通信9。NOR型闪存的JFPS2文件系统优秀。内核与普通应用程序不同,其拥有所有硬件设备②进程间通信机制的访问权限以及启动时即划分的受保护的内存空间网。Android增加了一种进程间的通信机制IPCBin-2.2 Android 内核der, 在内核源代码中,驱动程序文件为coredroid和标准的Linux内核一样,Android内核主要实includelinuxbinderth 和coredroidrvrs/androidbinder.现内存管理、进程调度、进程间通信等功能。Co Binder通过守护进程Srvice Manager 管理系统中的Android内核是在标准L.inux内核的基础上修改服务,负责进程间的数据交换。各进程通过Binder访而成。为了适应嵌人式硬件环境和移动应用程序的开向同一块共享内存,以达到数据通信的机制。从应用层发,Android对标准Linux内核进行了- -定的修改。为的角度看,进程通过访问数据守护进程获取用于数据了对比分析Android内核,在Ubuntu操作系统上搭建交换的程序框架接口,调用并通过接口共享数据,而其.了Android内核的编译开发平台,通过repo,下载最他进程婴访问数据,也只需与程序框架接口进行交互,新的Android内核代码版本cupeake(其中Linux内核方便了程序员开发需要交互数据的应用程序。版本为2.6.27)。从获得的内核源码树的根目录结构③内存管理看,Android内核源码与标准Linux内核并无不同。在内存管理模块,Android内核采用了-种不用Android内核源码树根目录结构如表1所示。于标准Linux内核的低内存管理策略。在标准Linux内核当中,使用一种叫做00M(Out of Memory)的低内表1内核源码树目柬结构存管理策略;当内存不足时.系统检查所有的进程,并.对进程进行限制评分,获得最高分的进程将被关闭arch特定体系结构的源码(内核进程除外)。Android 系统采用的则是- - 种叫作CryptoCrypto APIdocuaootation内核源码文档LMK(Low Memory Killer)的机制,这种机制将进程按设备驱动程序s和各种文件系统照重要性进行分级、分组。内存不足时,将处于最低级ioelode内核头文件别组的进程关闭。例如,在移动设备当中, u界面处init内核引导和初始化于最高级别,所以该进程永远不会被中止,这样.在终代进程间通信代码端用户看来,系统是稳定运行的。在Andorid内核源码中,LMK的位置是coredroid/drivers/misclowme-morykiller.c。eripts编译内核所用的脚本与此同时,Android新增加了一种内存共享的处理。ocurity安全模块1ound声音模块方式Ashmem(Anonymous Shared Memory,匿名共享内user早期用户空间代码存)中国煤化工多自由共享具名的内存块,当中不被支持。经过与标准Linux内核源代码进行详细对比,可fYHCNMH Gm,九MODERN COMPUTER 20911113实践与经验fd = ashmem. create. region("my. shm_ region", size);版本cupcake 1.5。iffd<0)在Ubuntu上搭建Android内核编译环境,具体return -1;步骤如下:data = mmap(NULL, size, PROT READ | PROT_ WRITE,①准备系统环境,需要的软件包列表flex, bison,MAP_ _SHARED, fd, 0);gper(, libedl- -dev, libesd0-dev, libwxgtk2.6- dev(option-f(data = MAP_ FAILED)al), build- esential, zip, curl;goto out; .②安装JDK的1.5 版本;但出于安全原因,其他进程无法访问此名称③安装repo;(my_ shm, region)区域。文件描述符指向该共享内存④在主文件目录建立一个bin文件夹并加入到区域,实际上是通过IPC绑定接口。在Andor'd内核源码中,Ashmem的位置是环境变量当中;⑤下载repo脚本,并将它的属性改为可执行eurlcoredroid/mm/ashmem.c。htp://android.git.kemel.org/repo > ~bin/repo chmod④电源管理a+x ~/bin/repo;由于Android主要用于移动设备,电源管理就显⑥创建-一个保存源码的目录得尤为重要,因此,在Android内核当中,增加了一种mkdir coredroid新的电源管理策略。目前,Android采用的是一种较为cd coredroid简单的电源管理策略,通过开关屏幕开关屏幕背光、⑦获取Android内核代码:开关键盘背光、开关按钮背光和调整屏幕亮度来实现git clone git//android.git.kemel.org/keme/common.git电源管理,并没有实现休眠和待机功能。有三种途径经过以上步骤,最新版本Android内核就被下载判断调整电源管理策略:RPC调用、电池状态改变和到文件夹coredroid当中。电源设置。它通过广播Intent或直接调用API的方式cd cordroid来与其他模块进行联系。电源管理策略同时还有自动make xconfig(配置可按doucument文件夹下的android.关机机制,当电力低于最低可接受程度时,系统将自.bxt说明配置)动关机。Android的电源管理模块还会根据用户行为,make自动调整屏幕亮度,其响应机制如图1所示。编译完成后生成zlmage文件,可用模拟器测试⑤驱动及其他运行相对于标准内核,Android内核还添加了字符输cd mydroid/out/cupcake/outargetproductgeneric出设备、图像显示设备、键盘输人设备、RTC设备USBemulator -image system.img. -data userdata.img -ramdiskDevice设备等相关设备驱动,增加了日志(Logger)系randisk.img -kemel ~/coredroid/common /arch/arm/bootzIma统,使应用程序可以访问日志消息。g用户操作4结语经过分析,Android内核由标准Linux内核修改屏幕亮而来,因此继承了Linux 内核的各种优点,保留了标按钮背光延迟准Linux内核的主体架构。同时,Android按照移动设备的需求,在文件系统、内存管理、进程间通信机制、电源管理等方面进行了修改,添加相关的驱动程序和.(屏幕关闭)暗延迟屏幕暗.一些必要的新功能,但是与大多数精简的嵌人式Lin-u收操作系统(例如uCLinux)相比,Android很大程度上保留了标准Linux的基本架构,因此,Android系统图1屏幕背光响应机制应用范围更加广泛,拓展性更强。3 Android内核获取与编译参考文献下面以Ubuntu 9.04操作系统为例,说明在中国煤化工l应用[].程序员,2008,Ubuntu9.04操作系统如何搭建Android内核编译开发平台,如何通过repo下载最新的Android 内核代码HCNMHGMODERN COMPUTER 200911114实践与经验[2)Code Home.Android -An Open Handset Alliance Projeet.[6]Daniel P. Bovet & Marco Cesati.深人理解Linux内核(影[EB/OL] htp:/oe.google.com/android/what -is -andrnid.印版)[M].东南大学出版杜,2006html,2008-01-01[7]吴军,周转运.嵌入式Linux系统应用基础与开发范例[3]公磊,周聪.基于Android的移动终端应用程序开发与研[M].人民邮电出版社,2007究[J].计算机与现代化, 2008: 86~89[8]Android Platfom Google Groups. [EB/0LJ. htp://cs736 -[4]赵炯.Linux内核完全注释[M].机械工业出版杜.2004android.pbworks.com/ASHMEM[5]陈莉君.Linux内核的分析及应肌西安邮电学院学报.201.,(3):17-20Analysis. of Android KernelCHEN Jing,CHEN Ping- -hua,LI Wen- -liang(Faculty of Computer,Guangdong University of Technology , Guangzhou 510006)Abstract: Describes the architecture of Android platform, by analyzing the codes of Android kermeland comparing to the standardize Linux kemel(2.6.27), analyzes and discusses the differencebetween Android kemnel and standard kernel and the advantage of Android. Points out theposition of Android in the Linux kernel system, recompiles a customize kemel on the Ubun-tu system.Keywords: Android; Kemel; Compilation(上接第94页)Research on Business Process ManagementBased on jBPMSHI Yuan- xia,XU Qing- -lin(School of Information Engineering, Guangdong University of Technology, Guangzhou 510000)Abstract: Business process management is the latet development of the process automation and 8y8-tem design, which can help enterprises optimize their business processes and improve ef-ciency. The core of business process managemen is business process management engine.Taking the case of an open source engine- -JBoss jBPM, studies the implementation ofbusiness process management.中国煤化工Keywords: Busines Proces Mangenent (BPM); jBPM; jPDI"TYHCNMHGMODERN COMPUTER 200911115

论文截图
上一条:对TTCAN的分析
下一条:OCLC分析
版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。