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


    一、Android系统架构

       第一层:Linux内核

                 包括驱动程序,管理内存、进程、电源等资源的程序

       第二层:C/C++代码库

                包括Linux的.so文件以及嵌入到APK程序中的NDK代码

      第三层:Android SDK API

               包括用Java编写的各种Library

      第四层:应用程序

               这是程序员与非程序员都要接触到的应用程序

    二、Android系统移植

    首先,了解一个概念HAL(硬件抽象层),它位于第二层,普通的程序库(.so文件);

    Android操作系统:AndroidSDK——>HAL——>Linux驱动;

    Linux系统:应用程序——>Linux驱动;

    先用一个例子说明一下,例如,为硬件平台增加了一个新型的Wi-Fi模块,就需要为这个Wi-Fi模块编写新的驱动程序,或修改原来的驱动程序,以使得Linux内核可以与Wi-Fi模块正常交互。

    由此可知道,Android系统移植是让Android操作系统在某一个特定硬件平台上运行,即该操作系统支持硬件平台的CPU架构,要让Android可以识别平台上的各种硬件,主角就是Linux驱动。

    注意:在移植Linux驱动时,主要考虑Linux内核版本,就算Android版本不同,只要Linux内核版本相同,Linux驱动就可以相互替换

    三、Linux设备驱动

    驱动就是直接和硬件交互的一类程序,负责对硬件进行抽象;提供应用程序可方位的API,只要应用程序通过驱动来访问硬件,就不需要修改应用程序的源代码。当有很多型号的打印指令不一样的打印机,同时被同一个应用程序调用,会出现不能使用的情况,当我们进行了驱动程序的开发,通过接口对类进行抽象,就可以大大降低硬件耦合度过高的情况,通过驱动来访问打印机。

  • 相关阅读:
    【BZOJ 5000 OI树】
    九、表锁
    八、ORDER BY优化
    七、索引优化分析
    六、JVM之垃圾回收
    五、JVM之堆内存
    四、JVM之栈与栈帧
    三、JVM之方法区
    二、JVM之体系结构
    一、JVM之类加载器
  • 原文地址:https://www.cnblogs.com/xiansheng/p/5418238.html
Copyright © 2020-2023  润新知