设为首页 加入收藏

TOP

Android驱动使用JNI调用
2014-11-24 07:34:57 来源: 作者: 【 】 浏览:0
Tags:Android 驱动 使用 JNI 调用

Android应用层调用Linux驱动的方式:


第一,通过在Android内核源码(不是linux内核源码)中添加HAL层、JNI层、开启系统服务,这是一个比较复杂的过程,很多标准的设备都采用这种方式设计,比如说wifi、gps、sensor等,这种调用过程看起来比较标准,但是如果作为第三方开发就会很麻烦,HAL层、JNI层,系统服务层,每层都需要编译Android内核源码,这样就会延长了产品的开发周期;第二,通过配置NDK环境,在NDK环境中直接编写JNI层,然后在Android应用层中添加类,加载JNI库即可调用设备的驱动。


现在我们以Tiny210上的LED驱动作为例子讲解如何使用NDK环境编写JNI库来调用设备的驱动程序。


一、首先是编写linux驱动程序,:


1、源码:linux-2.6.36-android\drivers\char\tiny210_leds.c


2、修改当前目录(linux-2.6.36-android\drivers\char)的kconfig,添加如下内容:


config TINY210_LEDS


tristate "LED Support for Tiny210 GPIO LEDs"


depends on CPU S5PV210


default y


help


This option enables support for LEDs connected to GPIO lines


on Tiny210 boards.


3、修改当前目录(linux-2.6.36-android\drivers\char)下的makefile文件,添加如下内容:


obj-$(CONFIG_TINY210_LEDS) += tiny210_leds.o


4、到源码目录执行make menuconfig 配置LED驱动编译进内核,系统起来就加载驱动


5、执行 make 生成zImage镜像文件


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++ 静态成员变量 在类中的实现 下一篇Android Gallery 3D效果

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Redis 分布式锁全解 (2025-12-25 17:19:51)
·SpringBoot 整合 Red (2025-12-25 17:19:48)
·MongoDB 索引 - 菜鸟 (2025-12-25 17:19:45)
·What Is Linux (2025-12-25 16:57:17)
·Linux小白必备:超全 (2025-12-25 16:57:14)