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


    1.Android系统架构分为四层:linux内核,Android是基于linux内核的。

    c/c++代码库,包括C/C++编写的代码库,包括dalivk虚拟机的运行时。

    Android SDK API,这一层实际是JAVA编写的各种library

    应用程序,这一层相当于AndroidUI,通过第三层中的Android SDK API来完成各种功能。

    2.Android移植分为应用移植和系统移植。应用移植是将第四层的应用程序移植到某一个硬件平台上。系统移植则是指让Android操作系统在某一个特定硬件平台上运行,是一个操作系统在特定硬件平台上运行的一个首要条件就是该操作系统支持硬件平台的CPU架构

    3.HAL表示硬件抽象层,是普通的linux程序库(.so文件),Android SDK通过HAL直接访问linux驱动。对有些来说它并不是必需的,通过NDK可直接访问Linux驱动。

    4.安卓移植的主要工作:移植linux驱动,移植HAL。很大程度上是内核的移植,linux内核移植主要就是移植驱动程序。判断Linux内核是否相同的方法是Linux的内核版本号,内核相同,驱动可通用。

    5.计算机系统硬件由CPU,存储器,外设组成,将存储器和外设分为三大类:字符设备,块设备,网络设备。

    6.Linux驱动核心代码用C语言实现,控制开发板上的四个LED灯。

    Linux驱动都有一个装载函数(用来装载驱动)和一个卸载函数(用来卸载函数)。

    7.驱动是直接和硬件和交互的一类程序。

    8.查看linux系统的内核版本的两种方法:

    1)执行下列命令 uname   -a

    2linux终端执行以下命令 cat  /proc/version

    /proc不是普通的文件系统,而是系统内核的映像,也就是说,该目录中的文件是存放在系统内存之中的,以文件系统的方式访问系统内核数据的操作提供接口。

    9.linux内核版本号有主版本号,次版本号,修订版本号,微调版本号,为特定的linux系统特别调校的描述组成

    本章对android以及linux做了总体的介绍,刚开始,自己确实不明白什么是Linux驱动,接触的比较少,对核心代码自己并写不出来,感觉十分困惑,但还是认真的看了,学习android驱动开发,实际上就是学习linux驱动开发,android增加了一个HAL

  • 相关阅读:
    Redis应用场景
    GDAL读取Shp问题解决:Unable to open EPSG support file gcs.csv
    IDEA整合Mybatis+Struts2+Spring (二)--整合框架
    IDEA整合Mybatis+Struts2+Spring(一)--新建项目
    Spring中的单例模式和多例模式的应用
    java设计模式1--单例模式
    HashMap原理以及自己实现HashMap
    JQ之$.ajax()方法以及ajax跨域请求
    数据库简单操作以及多表查询操作的一些总结
    JS正则表达式学习总结
  • 原文地址:https://www.cnblogs.com/yqing/p/5438449.html
Copyright © 2020-2023  润新知