网站首页
手机版

如何快速了解Android系统内核

更新时间:2022-04-17 15:28:00作者:未知

如何快速了解Android系统内核

  分析Android平台系统架构,通过对最新Android源代码的解析,将其与标准Linux内核源码比较,详细解析Android内核的功能更新,讨论Android 内核与标准Linux内核之间的不同以及Android在移动平台的优势,并对Android在各种内核之间做出一个定位,介绍了Ubuntu环境下Android内核的获取与编译。
  
  1、概述
  

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

  2、Android 系统架构
  
  Android是 Google开发的基于Linux平台的开源手机操作系统,它是一 个移动终端平台,包括了移动电话工作所需的全部软件,由操作系统、中间件、 UI 及应用程序组成。
  
  Android系统架构自底向上由以下4个层次组成[2]:基于Linux的内核模 块、运行时库与其他库、应用程序框架、应用程序。
  
  第一层:Linux 操作系统和Android系统扩展,由C语言实现。
  
  第二层:系统库层与Android运行时环境,由C/C++实现。
  
  第三层:Android应用程序框架隐藏在每个应用后面的是一系列服务和统。
  
  第四层:Android应用程序
  
  Android 应用程序层由运行在Android设备上的所有应用共同构成,它不仅 包括通话、短信、联系人等系统应用,还包括其他后续安装到设备中的第三方应用。3、Android 内核分析
  
  2.1 内核在操作系统中的地位
  

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

  为了对比分析Android内核,在Ubuntu操作系统上搭建了Android内核 的编译开发平台,通过repo,下载最新的Android内核代码版本Jelly Bean。
  
  经过与标准Linux内核源代码进行详细对比,可以发现,Android内核与标 准Linux内核在文件系统、进程间通信机制、内存管理等方面存在不同。
  
  (1)文件系统
  
  Android内核中增加了标准Linux内核中没有采纳的YAFFS2文件系统。
  
  (2)进程间通信机制
  

  Binder是一种进程间通信机制,其实是提供远程过程调用(RPC)功能。在
  
  Android系统的Binder机制中,由一系统组件组成,分别是 Client、Server、Service Manager和Binder驱动程序,其中 Client、Server 和 Service Manager 运行在用户空间,Binder驱动程序运行内核空间。
  
  (3)内存管理
  
  在内存管理模块,Android内核采用了一种不用于标准 Linux内核的低内
  
  存管理策略。Android系统采用的则是一种叫作LMK(Low Memory Killer)的 机制,这种机制将进程按照重要性进行分级、分组。内存不足时,将处于最低级别组的进程关闭。
  
  4、Android 内核获取与编译
  
  下面以Ubuntu 13.04操作系统为例,讲解在 Ubuntu 13.04系统下如何搭建
  
  Android内核编译开发平台。在Ubuntu上搭建Android内核编译环境,具体步 骤如下:
  
  (1)准备系统环境, 需要的软件包列表 flex, bison,gperf, libsdl-dev, libesd0-
  
  dev,libwxgtk2.6-dev(optional), build-essential, zip,curl;(2)安装JDK的 1.7 版本;(3)安装 repo;(4)在主文件目录建立一个bin文件夹并加入到环境变量当中;(5)下载repo脚本,将它的属性改为可执行curl http://android.git.kernel.org/repo> ~/bin/repo chmod a+x~/bin/repo;(6)创建一个保存源码的目录 mkdir coredroid cd coredroid(7)获取Android内核代码:git clone git://android.git.kernel.org/kernel/co mmon.git
  
  经过以上步骤,最新版本Android内核就被下载到文件夹 coredroid当中。make 编译完成后生成 zImage文件, 可用模拟器测试运行cd mydroid/out/cupcake/out/target/product/genericemulator -image system.img -data userdata.img -ramdisk ramdisk.img -kernel~/coredroid/common /arch/arm/boot/zIma ge
  
  5、结语
  
  Android 内核由标准Linux内核优化得来,其继承了Linux 内核的各种优点,保留了标准Linux内核的主体架构。同时,Android 按照移动平台的需求,在文件系统、内存管理、进程间通信机制、电源管理等方面进行了修改,添加相关的驱动程序及必要的新功能,但是与大多数精简的嵌入式 Linux操作系统相比,Android很大程度上保留了标准Linux的基本架构,因此,Android系统应用范 围更加广泛,拓展性更强。

本文标签: 系统  文件系统  内核  架构  

为您推荐

excel表格怎么大批量筛选(excel表格怎么大批量筛选重复项并快速删除)

1、在选中单元格后,点击排序和筛选。2、在展开的界面中,点击筛选。3、在单元格界面中,点击全部显示。4、在展开的界面中,点击确定即可。

2023-03-21 15:30

Word2007文档水印怎么去除(word2007文档如何去除水印)

Word2007文档水印怎么去除 Word2007文档水印怎么去除 方法一 页面布局-页面背景-水印-删除水印,文档中的水印被删除. 方法二 页面布局-页面背景

2023-03-15 00:31

Word2003文档中的回车符怎么隐藏(怎样隐藏word里的回车符)

Word2003文档中的回车符怎么隐藏 Word2003文档中的回车符怎么隐藏 隐藏回车符 1.单击菜单栏"工具"下的"选项",在打开的窗口中取消勾选"视图"选

2023-03-15 00:30

Word2007自动滚动怎么设置(如何设置word自动滚动)

Word2007自动滚动怎么设置   Word2007自动滚动怎么设置 1.首先打开一篇长篇文档,单击其左上角的"office按钮"在弹出的快捷菜单中选择"Wo

2023-03-15 00:29

Word2013文档中大纲视图如何使用(word2007大纲视图)

Word2013文档中大纲视图如何使用 在Word 2013中,用户可以使用大纲视图来查看并编辑文档的大纲结构,同时可以对正文进行处理.在大纲视图模式下,文档的

2023-03-15 00:29

Word怎么用快捷键快速修改文字格式 word快捷键修改

Word怎么用快捷键快速修改文字格式   Word怎么用快捷键快速修改文字格式 1.电脑上新建word文件,例如命名为"word技巧" 2.双击"word技巧"

2023-03-15 00:27