WEB开发网
开发学院手机开发Android 开发 移植android 到定制开发板 阅读

移植android 到定制开发板

 2010-05-28 15:32:00 来源:WEB开发网   
核心提示:移植Android的kernel到实际的硬件平台上,很多人很早就做过这件事了,移植android 到定制开发板,不过相关的文档和经验总结不多,我就写一个吧,最低要求基本需要 64M+的内存,64M-128M+的FLASH(取决于你加载文件系统的方式,也为了自己记录一下大致的流程,以后好继续

移植Android的kernel到实际的硬件平台上,很多人很早就做过这件事了,不过相关的文档和经验总结不多,我就写一个吧,也为了自己记录一下大致的流程,以后好继续。

1 Android内核Porting相关背景知识

1.1 运行平台

Google的Android平台到今天为止(2008-2-27),应用层部分还是以二进制的Binary的形式发布的,其编译的目标平台是 ARM926EJ-S的CPU属于ARMV5T的版本,所以ARMV4架构的CPU平台无法使用其二进制代码。关于这点,可以参考下面这篇文章,Benno在此做了详尽的理论分析和代码测试:http://benno.id.au/blog/2007/11/21/android-neo1973

所以目前只有基于ArmV5或以上的架构的平台可以实际运行Android

1.2 软件环境

SDK下载:http://code.google.com/android/download_list.html

KERNEL,模拟环境等SRC包下载:http://code.google.com/p/android/downloads/list

1.2.1Kernel

到M5-r14 release 为止,Android的Kernel是基于Linux2.6.23的内核开发的,主要添加了一个名为Goldfish的虚拟CPU以及Android所需相关特定驱动代码。

你需要一个支持EABI的内核作为你内核Porting的起点(最低版本?不知道,只要EABI OK,应该没有本质区别,但是,Android的很多驱动依赖于2.6.23的内核API,版本越低的内核,移植修改内核相关代码的工作量越大)

1.2.2Tools chain

SDK中的内核使用的是4.2.1版本的GCC,基本上,你需要的是一个支持EABI的工具链,比如你可以使用Codesourcery的最新工具链:http://www.codesourcery.com/

1.2.3 其它工具

Android的Emulator是一个很好的仿真工具,其底层是基于QEMU来实现的,可以使用SDK中的adb工具登陆Emulator的控制台,和控制台交换文件等,用于获取你所需的信息。

1.3 相关论坛资源等

http://benno.id.au/blog/

http://groups.google.com/group/android-internals

http://groups.google.com/group/android-developers

2 Porting基本思路

2.1 所需资源

2.1.1 硬件

首先,当然是需要一个可以用来向上porting的硬件开发板了,对硬件的需求除了上面说的,需要ArmV5+兼容的CPU以外,最低要求基本需要 64M+的内存,64M-128M+的FLASH(取决于你加载文件系统的方式,如果可以透过网络使用NFS-ROOT或者MMC卡等来存放文件系统的话,这个应该就无所谓了)

1 2 3  下一页

Tags:移植 android 定制开发

编辑录入:coldstar [复制链接] [打 印]
赞助商链接