zoukankan      html  css  js  c++  java
  • 浅谈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,只要应用程序通过驱动来访问硬件,就不需要修改应用程序的源代码。当有很多型号的打印指令不一样的打印机,同时被同一个应用程序调用,会出现不能使用的情况,当我们进行了驱动程序的开发,通过接口对类进行抽象,就可以大大降低硬件耦合度过高的情况,通过驱动来访问打印机。

  • 相关阅读:
    学PHP应注意的问题与知识点
    php 的生命周期
    Pyhton中汉字的使用方法(转)
    院外培训:GIS数据处理与建模高级培训班学习心得体会 来自
    绕人的python汉字问题
    arcmap导出或者打印时插入的图片和对象绘制失败
    【百度地图API】如何获取行政区域的边界? (转)
    VS2010不能编译.Net3.5项目的解决方法(转)
    ArcGIS中Python汉字使用说明(转)
    ArcGIS10联网无法启动问题解决
  • 原文地址:https://www.cnblogs.com/xiansheng/p/5418238.html
Copyright © 2011-2022 走看看