1.2Android系统移植的主要工做

一、Android移植分为两部分:应用移植和系统移植;架构

二、应用移植:指将第四层的应用程序一直到某一特定硬件平台上。操作系统

  (1)为保证应用程序能在新的平台上正常运行,须要对源代码就行一些修改,由于硬件平台之间以及Android SDk API以前均可能存在差别。若是没法获取应用程序的源代码,只能从新在新的硬件平台上实现;开放源代码

  (2)Android应用移植不涉及驱动和HAL程序库(注:HAL程序库是Android新增长的硬件抽象层);设计

三、系统移植:指让Android操做系统在某一特定硬件平台上运行。io

  (1)使操做系统在特定硬件平台上运行的条件:编译

    ①操做系统支持硬件平台上的CPU架构。Linux内核自己支持不少经常使用的CPU架构,如ARM,X86,PowerPC,所以不须要作过多的改动,但不表明不作改动;基础

    ②识别硬件平台上的各类硬件。这些工做主要也是由Linux内核完成的,主角是Linux驱动。硬件

  (2)HAL(Hardware Abstraction Layer,硬件抽象层)程序

    ①位于第二层,也是普通的Linux程序库(.so文件),Android SDK经过HAL之间访问Linux驱动(通常的Linux系统都是由应用程序直接访问驱动)。技术

    ②Google公司这样设计的目的:Linux内核基于GPL开源协议,可是许多驱动厂商不想开放源代码,因此增长了HAL层,能够将Linux驱动的业务逻辑放在HAL层,这样处理Linux驱动开源技术只是一个空架子。

四、总结:

  (1)Android移植的主要工做:移植Linux驱动和移植HAL;

  (2)Android移植的基本原则是尽量找到驱动和HAL的源代码,在源代码的基础上改比从头开始编写容易得多,实在没法获取源代码,就只能从头开始作起了;

  (3)Android移植很大程度上是Linux内核移植,Linux内核移植主要是移植驱动程序。不一样Linux版本的驱动程序不能通用,须要修改源代码,并在新的Linux内核下从新编译才能够运行在新的Linux内核版本下。

相关文章
相关标签/搜索