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内核版本下。

转载于:https://www.cnblogs.com/mch0dm1n/p/5431577.html

1.2Android系统移植的主要工作相关推荐

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

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

  2. 嵌入式linux系统移植的四大步骤_嵌入式系统移植步骤

    在嵌入式系统移植中重要的一部分是操作系统的移植,与其它操作系统相比,Linux大的特点:它是一款遵循GPL的操作系统,我们可以自由地使用.修改.和扩展它.正是由于这一特色,嵌入式系统移植过程中Linu ...

  3. mac软件移植linux,相比软件迁移 Apple Silicon Mac的Linux系统移植工作更困难

    Asahi Linux 项目团队在博客文章中写道,他们尝试了在 Apple Silicon 系统上设置备用启动内核.虽然已实现大多数功能,但还是缺乏对安装非苹果内核的命令支持. Apple Insid ...

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

    1.Android系统架构分为四层:linux内核,Android是基于linux内核的. c/c++代码库,包括C/C++编写的代码库,包括dalivk虚拟机的运行时. Android SDK AP ...

  5. zybo上运行linux,Zybo开发板linux作业系统移植

    文章主要介紹zybo board上linux作业系统移植过程.分别介绍了开发环境搭建.U-boot编译.linux内核编译.busybox制作等流程及注意事项.文章使用的开发板是zynq 7000系列 ...

  6. 《创客学院嵌入式从入门到精通》笔记--10全面掌握嵌入式系统移植

    目录 01嵌入式基本概念,嵌入式开发环境搭建,目标机搭建,TFTP服务搭建,NFS服务搭建 1.系统移植概述及环境搭建 1.通用嵌入式系统软件组成部分 2.Linux 在嵌入式中应用的条件与前景 3. ...

  7. 嵌入式Linux(5):驱动开发网络调试驱动设备的Linux系统移植

    驱动开发之网络调试驱动设备的Linux系统移植 1.Uboot移植到开发板 uboot移植 2.开发板网络通讯 nfs命令 tftp命令 3.Linux移植到开发板 4.BusyBox 构建根文件系统 ...

  8. liunx基础及系统移植

    目录 摘要 一.Ubuntu及linux系统基础知识 1.shell命令的运用 2.Tool的安装: 3.deb是软件包,dpkg是手动安装工具,apt是自动安装工具, 4.Linux文件系统 5.g ...

  9. 嵌入式linux之Uboot和系统移植--基础

    <uboot和系统移植-第1部分-uboot学习前传> (观看朱友鹏老师视频后整理的笔记)   1.为什么要有uboot 2.为什么是uboot 3.uboot必须解决哪些问题 4.ubo ...

  10. 嵌入式Linux系统移植的四大步骤

    最近在学习系统移植的相关知识,在学习和调试过程中,发现了很多问题,也解决了很多问题,但总是对于我们的开发结果有一种莫名其妙的感觉,纠其原因,主要对于我们的开发环境没有一个深刻的认识,有时候几个简单的命 ...

最新文章

  1. 二进制日志和数据更新的关系
  2. 计算方法之迭代法求方程根
  3. java字符类型的返回值,Java字符类isWhitespace()方法及示例
  4. MSU 出品的 H.264 编码器比较 (2012.5)
  5. Undefined control sequence.l.113 \LinesNumbered
  6. 液晶接口系列——MIPI(三)DSI时序讲解与实际测试
  7. python语法元素合集
  8. 简单有限元分析python实现——二维1单元4节点刚度矩阵求解然后得到4个节点的位移和力
  9. Dell服务器误删阵列恢复操作
  10. 时间一天天过去,好像什么都没变。
  11. 父母的房产继承买卖赠予以及网络红包代金券优惠券的国家最新税法规定
  12. 用阿里云短信服务--通过Web接口发送短信
  13. web前端第一次作业
  14. 零基础能不能学习web前端开发?【爱创课堂专业前端培训】
  15. 看过来!看过来!网络安全类的认证课程都在这里
  16. Win10任务栏图标一直刷新的解决方法
  17. [MySQL免安装版本] 下载、配置、启动、密码修改
  18. 关于使用深度学习进行三维点云几何压缩
  19. RAW 264.7 小鼠单核巨噬细胞白血病细胞培养解决方案
  20. 【转载】美国战略与中国危机--戴旭

热门文章

  1. Linux下编译CMake
  2. libevent源码分析系列
  3. : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server versi
  4. lingo软件的基本使用方法_(PS软件)PHOTOSHOP基础操作和基本工具的使用
  5. HTML:canvas简述
  6. 排列组合计算问题中的卡塔兰数(Catalan Number)
  7. datetime sql
  8. Repeater控件如何让变量自增 asp.net
  9. 论文笔记_S2D.67_CamVox: 一种低成本、高精度的激光雷达辅助视觉SLAM系统
  10. 目录_计算机视觉——算法及应用