Android 从硬件到应用:一步一步向上爬 4 -- 使用 JNI 方法调硬件驱动

本文介绍如何在Android系统中,通过JNI方法调用硬件抽象层(HAL)模块来访问硬件驱动。在frameworks/base/services/jni目录创建com_android_server_GpioService.cpp文件,并声明JNI函数。更新Android.mk文件,编译生成libandroid_servers.so库。通过GpioService,上层应用可以调用JNI方法,间接控制底层硬件。
摘要由CSDN通过智能技术生成

Android下,java应用程序通过JNI方法调用硬件抽象层模块,在Android 从硬件到应用:一步一步向上爬 3 -- 硬件抽象层访问硬件驱动

中我们已经编译好了硬件抽象层模块,下面就要开始为HAL层编写JNI方法,为上层提供服务。

cd到frameworks/base/services/jni目录中,新建一个com_android_server_GpioService.cpp文件:

#include "jni.h"  
#include "JNIHelp.h"  
#include "android_runtime/AndroidRuntime.h"  
#include <utils/misc.h>  
#include <utils/Log.h>  
#include <hardware/hardware.h>  
#include <hardware/gpio.h>  
#include <stdio.h>  
namespace android  
{  
	struct gpio_device_t* gpio_device = NULL;  

	static void gpio_setVal(JNIEnv* env, jobject clazz, jint value) 
	{  
		int val = value;    
		gpio_device->set_val(gpio_device, val);  
	}  
   
	static jint gpio_getVal(JNIEnv* env, jobject clazz) 
	{  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Marvin_wu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值