Android系统移植 http://source.android.com/devices/index.html

移植Android到不同的设备

 

Android允许提供不同的硬件平台和驱动支持Android的运行。硬件抽象层(Hardware Abstraction Layer)提供了再Android平台软件栈和硬件设备之间的标准接口。另外,Android操作系统是开源的,可以帮助你快速的开发软件,让软硬件协同工作。

 

为了保证Android设备的高质量和对用户的统一用户体验,必须通过兼容测试包(Compatibility test suite). CTS能搞保证任何人开发的设备符合统一的标准,并且应用可以可靠的运行,并且有着良好的体验。

 

Android底层系统架构

在你将Android移植到你的硬件设备之前,对android在更高的层次上如何工作有一个了解非常重要。因为驱动和HAL和Android系统的其他部分的源码有很多交互,因此理解这部分对你学习整个AOSP(Android Open Source Project)源码的其他部分十分重要。下面这张图说明了再系统层次Android是如何工作的。


图1.Android系统架构

应用框架(Application Framework)

这一层是大部分应用软件开发者需要关心的。这里需要明白对于开发者可用的应用编程接口(API),许多接口和下层的HAL接口提供的功能相同,所以这部分可以帮助了解如何实现驱动。

Binder进程间通信

Binder进程间通信机制允许应用程序框架跨进程调用Android系统服务提供的功能。这基本上允许高层的框架API可以和Android系统服务进行交互。从应用框架的层次看,所有的通信对开发者是隐藏的,事情看起来“工作的非常好”。

系统服务

应用框架层API提供的大部分功能需要和系统服务进行通信来访问底层的硬件。服务被人为的分为不同的功能模块,这些模块完成不同的功能,比如窗口管理器,搜索服务和通知管理器(Notification Manager).系统服务被分在两个组里:系统(system)和多媒体(media).system(系统)服务包括窗口和通知管理器等。多媒体服务包括所有播放和录制多媒体相关的服务。

硬件抽象层(Hardware Abstraction Layer)

HAL为Android系统调用底层驱动提供了一个标准的接口,同时屏蔽了底层驱动和硬件的具体实现。你必须为产品上的硬件实现相应的硬件抽象接口或驱动。Android并不强制要求驱动和HAL实现的标准接口,你可以根据你产品的实际状况作出调整。然而,你必须保证所有的HAL接口实现可以正确的和底层硬件交互。所有的HAL实现都被编译成为一个动态链接库。

Linux内核

         开发Android设备驱动和开发标准的Linux设备驱动相同。Android使用了一个特殊版本的Linux,添加了一些设备驱动比如wakelock,一个内存管理系统,Binder进程间通信驱动等对嵌入式平台非常重要的功能。这些新添加的功能主要和系统功能相关。你可以使用任何版本的内核,只要支持特定的功能,例如binder驱动。然而,我们推荐使用最新版的AndroidKernel。

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值