搭建Android开发环境

  本章讲解了Android移植的第一步,主要学习如何搭建Android移植的环境。由于Android底层是基于Linux内核的。因此,咱们从搭建交叉编译环境开始,包括交叉编译环境、各类服务程序和应用程序的安装、配置和使用。不一样的体系结构、不一样的操做内容甚至是不一样版本的内核,都会用到不一样的交叉编译器。选择交叉编译器很是重要,有些交叉编译器常常会有部分的Bug,都会致使最后的代码没法正常运行。linux

  构建开发环境是任何开发工做的基础,对于软硬件很是丰富的嵌入式系统来讲,构建高效、稳定的环境是可否开展工做的重要因素之一。Android移植与Android应用程序开发有很大不一样,具体流程以下:小程序

(1)   下载Android内核;架构

(2)   熟悉开发环境和工具。交叉开发环境是Android系统移植开发的基本模拟。Linux环境配置、GUN工具链、测试工具甚至集成开发环境都是Android系统移植的利器。函数

(3)   熟悉Linux内核。由于Android系统移植开发通常须要从新定制Linux内核,因此熟悉内核配置、编译、移植很重要。工具

(4)   熟悉目标板引导方式。开发板的Bootloader负责硬件平台最基本的初始化,而且具体引导Linux内核启动的功能。因为硬件平台是专门定制的,通常须要修改编译Bootloader。学习

  交叉编译器完整的安装通常涉及多个软件的安装,包括binutils、gcc、glibc、glibc-linuxthreads软件。其中,binutils主要用于生成一些辅助工具,如readelf、objcopy、objdump、as、ld等;gcc是用来生成交叉编译器的,主要生成arm-Linux-gcc交叉编译工具;glibc主要提供用户程序所使用的一些基本的函数库,glibc-linuxthreads是线程相关的函数库。这样,交叉编译环境就搭建起来了。测试

  Bootloader是在操做系统运行以前执行的一小段程序。经过这段小程序,咱们能够初始化硬件设备、创建内存空间映像表,从而创建适当的系统软硬件环境,为最终调用操做系统内核作好准备。对于嵌入式系统,Bootloader是基于特定硬件平台来实现的。所以,几乎不可能为全部的嵌入式系统创建一个通用的Bootloader,不一样的处理器架构都有不一样的Bootloader。Bootloader不但依赖于CPU的体系结构,并且依赖于嵌入式系统板级设备的配置。对于两块不一样的嵌入式板而言,即便他们使用同一种处理器,要想让运行在一块板子上的Bootloader程序也能运行在另外一块板子上,通常也须要修改Bootloader的源程序。反过来,大部分Bootloader仍然具备不少共性,某些Bootloader也可以支持多种体系结构的嵌入式系统。例如:U-Boot就同时支持PowerPC、ARM、MIPS和X86等体系结构,支持的板子有上百种。一般,他们可以自动从存储介质上启动,都可以引导操做系统启动,而且大部分都支持串口和以太网接口。spa

  为了驱动目标板,必须先作好Bootloader、操做系统内核及文件系统。操作系统