Android系统的移植要做的两个工作
2011-05-11 10:02
246 查看
Android系统的移植的主要目的是为了能在特定的硬件上运行Android系统。而在移植的过程中,一个重要的方面就是把握关键要点,减少工作量。从
工作的角度,首先要熟悉硬件抽象层的接口,其次要集成和复用已有的驱动程序,主要的工作量在硬件抽象层的实现中。为了更好地理解和调试系统,也应该适当地
了解上层对硬件抽象层的调用情况。
移植方面主要的工作有两个部分:
Linux驱动
Android系统硬件抽象层
Linux中的驱动工作在内核空间,Android系统硬件抽象层工作在用户空间,有了这两个部分的结合,就可以让庞大的Android系统运行在特定的硬件平台上。
Android移植的主要工作如图1所示。
图1 Android移植的主要工作
在具有了特定的硬件系统之后,通常在Linux中需要实现其驱动程序,这些驱动程序通常是Linux的标准驱动程序,在Android平台和其他
Linux平台基本上是相同的。主要的实现方面是Android系统中的硬件抽象层(Hardware Abstract
Layer),硬件抽象层对下调用Linux中的驱动程序,对上提供接口,以供Android系统的其他部分(通常为Android本地框架层)调用。
提示:Android硬件抽象层的接口是本地移植层的接口,不属于标准API,不具有向前或者向后兼容性。
在Android系统需要移植的内容,主要包含了以下的各个部分: 显示部分(Display)
包括framebuffer驱动+Gralloc模块(可选择是否实现) 用户输入部分(Input)
包括Event驱动+EventHub(Android标准内容) 多媒体编解码(Codec)
包括硬件Codec驱动+Codec插件(如OpenMax) 3D加速器部分(3D Accelerator)
包括硬件OpenGL驱动+OpenGL插件 音频部分(Audio) 包括Audio驱动+Audio硬件抽象层
视频输出部分(Video Out) 包括视频显示驱动+Overlay硬件抽象层 摄像头部分(Camera)
包括Camera驱动(通常是v4l2)+Camera硬件抽象层 电话部分(Phone) Modem驱动程序+RIL库
全球定位系统部分(GPS) 包括GPS驱动(通常为串口)+GPS硬件抽象层 无线局域网部分(WIFI)
包括Wlan驱动和协议+WIFI的适配层(Android标准内容) 蓝牙部分(Blue Tooth)
包括BT驱动和协议+BT的适配层(Android标准内容) 传感器部分(Sensor) 包括Sensor驱动+Sensor硬件抽象层
震动器部分(Vibrator) 包括Vibrator驱动+Vibrator硬件抽象层(Android标准内容)
背光部分(Light) 包括Light驱动+ Light硬件抽象层 警告器部分(Alarm)
包括Alarm驱动和RTC系统+用户空间调用(Android标准内容) 电池部分(Battery)
包括电池部分驱动+电池的硬件抽象层(Android标准内容)
Android中具有很多组件,但并不是每一个部件都需要移植,对于一些纯软的组件,就没有移植的必要。对于一些部件,例如浏览器引擎,虽然需要下层
网络的支持,但是并非直接为其移植网络接口,而是通过无线局域网或者电话系统数据连接来完成标准的网络接口。
Android的移植主要可以分成几个类型:基本图形用户界面(GUI)部分,包括显示部分和用户输入部分;和硬件相关的加速部分,包括媒体编解码和
OpenGL;音视频输入输出环节,包括音频,视频输出和摄像头部分;连接部分,包括无线局域网,蓝牙,GPS;电话部分;附属部件:包括传感器、背光、
振动器等。
除了以上的移植方面,电源管理也是非常重要的一个方面,它和Android的各个子系统都有关系。
Android系统主要需要移植部件如图2所示。
图2 Android系统主要需要移植部件
对于大部分子系统,硬件抽象层和驱动程序都需要根据实际系统的情况实现,例如:传感器部分、音频部分、视频部分、摄像头部分、电话部分。也有一些子系
统,硬件抽象层是标准的,只需要实现Linux内核中的驱动程序即可,例如:输入部分、振动器部分、无线局域网部分、蓝牙部分等。对于有标准的硬件抽象层
的系统,有的时候通常也需要做一些配置工作。
时至今日,随着Android系统的发展,它已经不仅仅是一个移动设备的平台,也可以用于消费类电子和智能家电,例如:上网本、电子书、数字电视、机
顶盒、固定电话等。在这些平台上,通常需要实现比移动设备更少的部件。一般来说,基本用户界面部分(包括显示和用户输入)是需要移植的,其他部分是可选
的。例如:电话系统、振动器、背光、传感器等一般不需要在非移动设备系统来实现;对于一些固定位置设备通常也不需要实现GPS系统。
工作的角度,首先要熟悉硬件抽象层的接口,其次要集成和复用已有的驱动程序,主要的工作量在硬件抽象层的实现中。为了更好地理解和调试系统,也应该适当地
了解上层对硬件抽象层的调用情况。
移植方面主要的工作有两个部分:
Linux驱动
Android系统硬件抽象层
Linux中的驱动工作在内核空间,Android系统硬件抽象层工作在用户空间,有了这两个部分的结合,就可以让庞大的Android系统运行在特定的硬件平台上。
Android移植的主要工作如图1所示。
图1 Android移植的主要工作
在具有了特定的硬件系统之后,通常在Linux中需要实现其驱动程序,这些驱动程序通常是Linux的标准驱动程序,在Android平台和其他
Linux平台基本上是相同的。主要的实现方面是Android系统中的硬件抽象层(Hardware Abstract
Layer),硬件抽象层对下调用Linux中的驱动程序,对上提供接口,以供Android系统的其他部分(通常为Android本地框架层)调用。
提示:Android硬件抽象层的接口是本地移植层的接口,不属于标准API,不具有向前或者向后兼容性。
在Android系统需要移植的内容,主要包含了以下的各个部分: 显示部分(Display)
包括framebuffer驱动+Gralloc模块(可选择是否实现) 用户输入部分(Input)
包括Event驱动+EventHub(Android标准内容) 多媒体编解码(Codec)
包括硬件Codec驱动+Codec插件(如OpenMax) 3D加速器部分(3D Accelerator)
包括硬件OpenGL驱动+OpenGL插件 音频部分(Audio) 包括Audio驱动+Audio硬件抽象层
视频输出部分(Video Out) 包括视频显示驱动+Overlay硬件抽象层 摄像头部分(Camera)
包括Camera驱动(通常是v4l2)+Camera硬件抽象层 电话部分(Phone) Modem驱动程序+RIL库
全球定位系统部分(GPS) 包括GPS驱动(通常为串口)+GPS硬件抽象层 无线局域网部分(WIFI)
包括Wlan驱动和协议+WIFI的适配层(Android标准内容) 蓝牙部分(Blue Tooth)
包括BT驱动和协议+BT的适配层(Android标准内容) 传感器部分(Sensor) 包括Sensor驱动+Sensor硬件抽象层
震动器部分(Vibrator) 包括Vibrator驱动+Vibrator硬件抽象层(Android标准内容)
背光部分(Light) 包括Light驱动+ Light硬件抽象层 警告器部分(Alarm)
包括Alarm驱动和RTC系统+用户空间调用(Android标准内容) 电池部分(Battery)
包括电池部分驱动+电池的硬件抽象层(Android标准内容)
Android中具有很多组件,但并不是每一个部件都需要移植,对于一些纯软的组件,就没有移植的必要。对于一些部件,例如浏览器引擎,虽然需要下层
网络的支持,但是并非直接为其移植网络接口,而是通过无线局域网或者电话系统数据连接来完成标准的网络接口。
Android的移植主要可以分成几个类型:基本图形用户界面(GUI)部分,包括显示部分和用户输入部分;和硬件相关的加速部分,包括媒体编解码和
OpenGL;音视频输入输出环节,包括音频,视频输出和摄像头部分;连接部分,包括无线局域网,蓝牙,GPS;电话部分;附属部件:包括传感器、背光、
振动器等。
除了以上的移植方面,电源管理也是非常重要的一个方面,它和Android的各个子系统都有关系。
Android系统主要需要移植部件如图2所示。
图2 Android系统主要需要移植部件
对于大部分子系统,硬件抽象层和驱动程序都需要根据实际系统的情况实现,例如:传感器部分、音频部分、视频部分、摄像头部分、电话部分。也有一些子系
统,硬件抽象层是标准的,只需要实现Linux内核中的驱动程序即可,例如:输入部分、振动器部分、无线局域网部分、蓝牙部分等。对于有标准的硬件抽象层
的系统,有的时候通常也需要做一些配置工作。
时至今日,随着Android系统的发展,它已经不仅仅是一个移动设备的平台,也可以用于消费类电子和智能家电,例如:上网本、电子书、数字电视、机
顶盒、固定电话等。在这些平台上,通常需要实现比移动设备更少的部件。一般来说,基本用户界面部分(包括显示和用户输入)是需要移植的,其他部分是可选
的。例如:电话系统、振动器、背光、传感器等一般不需要在非移动设备系统来实现;对于一些固定位置设备通常也不需要实现GPS系统。
相关文章推荐
- Android系统的移植要做的两个工作
- Android系统的移植要做的两个工作
- Android系统的移植要做的两个工作
- Android系统的移植要做的两个工作
- Android系统的移植要做的两个工作
- android系统开发(九)-Audio部分准备工作alsa移植
- android系统开发(九)-Audio部分准备工作alsa移植
- android系统开发(九)-Audio部分准备工作alsa移植
- android系统开发(九)-Audio部分准备工作alsa移植
- android系统开发(九)-Audio部分准备工作alsa移植
- 深入浅出 - Android系统移植与平台开发(八)- HAL Stub框架分析
- Android系统移植与调试之------->MTK 标准编译命令
- android系统移植之按键驱动篇
- Android系统移植与调试之------->Android常用的一些make命令
- 深入浅出 - Android系统移植与平台开发(六)- 为Android启动加速
- 深入浅出 - Android系统移植与平台开发(十一)- Android系统的定制
- Android系统移植技术详解
- freescale i.mx23平台上移植android2.2-froyo - audio 系统.
- uboot UBIFS移植及android UBIFS文件系统烧写 .
- Android 系统移植与调试(二)Android系统编译 amlogic RK 全志系统编译