一直在做Linux驱动方面的,驱动移植完后,就交给上层处理了,至于Android是怎么调用的只知道一点。
自己的理解是:当驱动移植好后,在/dev下创建了相关的设备节点文件,然后中层由C++程序来使用这个驱动程序,并将对驱动的相关的操作封装成类,在弄几个主要的操作函数,最后使用Android特有的jni函数映射方法将C++的这几个函数映射成java程序可以使用的函数,之后就完全是java程序的开发了。
   以上纯属个人理解,不知道对否,还请知道的朋友指点一下!

解决方案 »

  1.   

    android中驱动和app是分开的!中间还有一层(H什么的)将驱动和app分开,主要就是为了上层开发时不必考虑驱动部分。所以个人理解驱动和app完全可以分开进行的啊!
      

  2.   

    你理解的差不多了,中间有个HAL层,由C语言写的,然后由C++编写的jni提供给android的java framework调用
      

  3.   

    HAL应该在DRIVER的下层吧,怎么跑FRAMEWORKS的下层去了啊
      

  4.   

    怎么大家理解的都不太一样呢?Android从底层驱动到最上层的应用总共有几层呢?按我上面理解的就3层,应该是不对的,按你们说的,应该是四层。驱动层,HAL层,C++层,java层。这四层之间的关系是什么样的呢?
      

  5.   

    从下到上:
    Hardware(Hardware -> Interrupt Controler)-> Device(HAL -> IO Management -> Driver)-> FRAMEWORKS(Kernel -> Task&Service Level-> Interface)-> APP (Data -> View)