• 搭建Android开发环境


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

      构建开发环境是任何开发工作的基础,对于软硬件非常丰富的嵌入式系统来说,构建高效、稳定的环境是能否开展工作的重要因素之一。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等体系结构,支持的板子有上百种。通常,他们能够自动从存储介质上启动,都能够引导操作系统启动,并且大部分都支持串口和以太网接口。

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

  • 相关阅读:
    2021牛客寒假算法基础集训营4 B. 武辰延的字符串(二分/Hash/exkmp)
    2021牛客寒假算法基础集训营4 H. 吴楚月的表达式
    2021牛客寒假算法基础集训营4 J. 邬澄瑶的公约数(GCD/唯一分解定理)
    leetcode 995. K 连续位的最小翻转次数(差分)
    robot 源码解读2【run.py执行流程】
    robot 源码解读1【代码量】
    python计算代码的行数
    为什么要用yield
    任意网站添加目录
    mac 定时执行脚本
  • 原文地址:https://www.cnblogs.com/liqi-777/p/5426753.html
Copyright © 2020-2023  润新知