Android驱动开发流程 及 系统分层模型

【Android系统分层模型】

【驱动开发流程】

    1、下载 Android 源码;


    2、下载 Linux Kernel 源码,将其放置于 Android 源码根目录的 kernel/ 文件夹下;

    3、编写设备驱动源码。按照惯例是在 Linux kernel 源码根目录下的 driver/ 路径新建与设备同名的 xxx 文件夹,并添加驱动源码文件(h文件、c文件、Kconfig 和 Makefile);如果是音频驱动,一般添加到根目录的 sound/ 文件夹中;

    4、编写 HAL 层源码(hardware),这是供 Application Frameworks 层和内核交互用的。按照惯例是在 Android 源码根目录下的 alps/hardware/libhardware/include/hardware/ 路径中添加与设备 xxx 同名的 HAL 头文件 xxx.h;在 hardware/libhardware/modules/ 路径中新建 xxx 文件夹,并添加 HAL c文件 xxx.c、Android.mk文件;

    5、编写 JNI 方法(framwork),JNI 的作用是实现用 java 接口调用 c 接口。对应于 Android 系统中的动作就是 APP 应用程序通过 JNI 方法调用 HAL 层接口。按照惯例,JNI 代码使用 C++ 编写,源文件存放于 Android 源码根目录的 frameworks/base/services/jni/ 路径下(在我的实际工程项目中,路径是 frameworks/base/services/core/jni/),文件名通常为 com_android_server_xxxService.cpp;打开这个目录下的 onload.cpp 文件,添加 register_android_server_xxxService() 函数声明,以实现 Android 系统初始化时自动加载 JNI 方法表;打开这个目录下的 Android.mk 文件,在 LOCAL_SRC_FILES 变量末位添加我们的 cpp 文件;

    6、编写 Application Frameworks 层的 API 接口,以使上层 APP 能通过 JNI 访问 HAL 接口来操作底层硬件;

    7、编写 APP 应用程序,在应用程序中调用硬件。

【注意事项】

    一般来说,在开发团队中,驱动工程师只需要完成步骤1~4即可,步骤5~7分别由其他工程师完成。


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值