Android hardware简易流程

 

一、kernel层

安卓内核层驱动程序生成设备节点/dev/...   /sys/class/...   /proc/... ,并直接驱动硬件设备

 

二、hardware层

1).硬件抽象层以模块的形式来管理各个硬件访问接口:
    模块的命名规范:<MODULE_ID>.variant.so
     MODULE_ID:表示模块ID
     variant:表示系统的四个属性,依次按照ro.hardware、ro.product.board、ro.board.platform、ro.arch来取值[这些值通过build.prop读取的],如果读不到这四个值或者xx.xx.so找不到对应的文件,则模块最终命名为      <MODULE_ID>.default.so
2)硬件抽象层通过调用设备节点去操作驱动程序

3).so模块编译完成后最终放在了/system/lib/hw/目录下

4).通过hw_get_module函数去加载/system/lib/hw/目录下的硬件抽象层模块

 

三、frameworks层


1.通常在frameworks/base/core/java/android/os/目录下定义硬件访问服务接口 AIDL
2.通常在frameworks/base/servicecs/java/com/android/server/目录下实现硬件访问服务,并在SystemServer.java文件下添加对应的服务
3.通常在frameworks/base/services/jni/目录下,通过调用JNI方法去实现硬件设备读写等操作

四、app层


通过import android.so.xxxService导包,调用aido接口,来控制驱动

流程总结:app ->aidl ->server服务 ->jni -> hardware -> kernel driver

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值