1、Android移植分为两部分:应用移植和系统移植;

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

  (1)为保证应用程序能在新的平台上正常运行,需要对源代码就行一些修改,因为硬件平台之间以及Android SDk API之前都可能存在差异。如果无法获取应用程序的源代码,只能重新在新的硬件平台上实现;

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

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

  (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驱动开源技术只是一个空架子。

4、总结:

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

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

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

1.2Android系统移植的主要工作的更多相关文章

  1. 1Android系统移植与驱动开发概述

    1.Android系统架构分为四层,从下至上依次为Linux内核层,C/C++代码库.Android SDK API.应用程序,要熟悉每一层的内容以及功能: 2.Android移植分为应用移植和系统移 ...

  2. 第一章 Android系统移植与驱动开发概述

    本书第一章首先简单概要地介绍了关于Android系统移植和驱动开发的相关内容. 所谓“移植”是指为特定的自己的设备,如手机定制Android的过程.自己开发一些程序(移植)装载在设备上,使得Andro ...

  3. 第一章Android系统移植与驱动开发概述--读书笔记

    以前,初步学习过嵌入式Linux驱动开发的基础课程,对于驱动开发可以说是有了一点点微末的基础吧.首先我们要对Android嵌入式系统有一个初步的认识,Android系统发展到今天已经具备了完善的架构. ...

  4. ARM开发板系统移植-----u-boot的编译

    本文和另外两篇姊妹篇都是为了说明如何裁剪出适合在mini2440 开发板上运行的Linux系统,以记录自己的学习成果.其中本文先介绍了嵌入式系统的软件组成部分,然后介绍编译出适合在mini2440开发 ...

  5. Android系统移植与驱动开发----第一章

    第一章 Android系统移植与驱动开发 Android源代码定制完全属于自己的嵌入式系统,但是支持的设备不多,所以要移植,而在移植的过程中使用的不得不提的是驱动开发. Android系统构架主要包括 ...

  6. 浅谈Android系统移植、Linux设备驱动

    一.Android系统架构 第一层:Linux内核 包括驱动程序,管理内存.进程.电源等资源的程序 第二层:C/C++代码库 包括Linux的.so文件以及嵌入到APK程序中的NDK代码 第三层:An ...

  7. 第一章 Andorid系统移植与驱动开发概述 - 读书笔记

    Android驱动月考1 第一章 Andorid系统移植与驱动开发概述 - 读书笔记 1.Android系统的架构: (1)Linux内核,Android是基于Linux内核的操作系统,并且开源,所以 ...

  8. MiniCRT 64位 linux 系统移植记录:64位gcc的几点注意

    32位未修改源码与修改版的代码下载: git clone git@github.com:youzhonghui/MiniCRT.git MiniCRT 64位 linux 系统移植记录 MiniCRT ...

  9. 【课程分享】深入浅出嵌入式linux系统移植开发 (环境搭建、uboot的移植、嵌入式内核的配置与编译)

    深入浅出嵌入式linux系统移植开发 (环境搭建.uboot的移植.嵌入式内核的配置与编译) 亲爱的网友,我这里有套课程想和大家分享,假设对这个课程有兴趣的,能够加我的QQ2059055336和我联系 ...

随机推荐

  1. bug_ _fragment的1

    =========  2   fragment小结 ???? ======== 1     fragment:java.lang.IllegalStateException: Can not perf ...

  2. 简单且线程安全的两个单例模式java程序

    /***具体说明见 http://www.cnblogs.com/coffee/archive/2011/12/05/inside-java-singleton.html*/ package com. ...

  3. MySQL运算符之 <=>

    问题 : 我在看以前的一个开发者的代码时看到 WHERE p.name <=> NULL 在这个查询语句中 <=>符号是什么意思啊?是不是和 =号是一样啊?还是一个语法错误啊? ...

  4. [ActionScript 3.0] AS3.0 Loader加载子swf时是否需要指定新的应用程序域ApplicationDomain

    实际应用中, Loader加载子swf时是否需要指定新的应用程序域ApplicationDomain,需要择情况而定. 1.如果在本地将项目位置添加到flashplayer受信任位置(上一篇文章所述) ...

  5. Delphi同步互斥总结

    多个线程同时访问一个共享资源或数据时,需要考虑线程同步,Synchronize()是在一个隐蔽的窗口里运行,如果在这里你的任务很繁忙,你的主窗口会阻塞掉:Synchronize()只是将该线程的代码放 ...

  6. Flex 医疗行程图

    ================================================ 病案的质量控制: 1.医生自检,主任检测,病案室检测达到三级检测 2.人工检测,自动检测 3.抽检(采 ...

  7. 聚类结果的评估指标及其JAVA实现

    一. 前言 又GET了一项技能.在做聚类算法的时候,由于要评估所提出的聚类算法的好坏,于是需要与一些已知的算法对比,或者用一些人工标注的标签来比较,于是用到了聚类结果的评估指标.我了解了以下几项. 首 ...

  8. Android JNI学习之javah命令的正确使用(找了好半天才找到的,汉,网上好多说法都没用)

    按照网上抄来的javah用法一般出错,今天查了一下午在一篇文章(http://www.ibm.com/developerworks/cn/java/j-jtctips/part6/index2.htm ...

  9. 走出测试,走向CEO

    飞测说:大家好,我们又见面了,我是黑夜小怪.不巧,今晚加班回来路上,湿身了,淋了个落汤鸡,不过明天也许可以看海了,也就呵呵了,原本想回来后聊些技术的,现在突然想先聊聊我的一些想法,仅供交流. 走出测试 ...

  10. Epic - Desirable Number

    A number is called 'desirable' if all thedigits are strictly ascending eg: 159 as 1<5<9. You k ...