Android HAL
2010-04-21 06:36:00 来源:WEB开发网_set_off ();
return "led off" ;
}
/*
* declare all the native interface.
*/
private static native boolean _init();
private static native int _set_on();
private static native int _set_off();
private static native int _get_count();
}
其中 LedService 类通过 native 函数使用 led stub 提供的功能。
2. 接下来我们实现通过 jni 接口实现 native 方法。
这里无需使用 javah 生成相应的头文件。
com_hello_LedService.cpp 文件:
#define LOG_TAG "LedService"
#include "utils/Log.h"
#include
#include
#include
#include
#include
#include "../../led_stub/include/led.h"
static led_control_device_t *sLedDevice = 0;
static led_module_t* sLedModule=0;
static int get_count(void)
{
return 0;
}
static jint led_setOn(JNIEnv* env, jobject thiz) {
//if (sLedDevice) {
LOGI("led_set_on");
sLedDevice->set_on(sLedDevice);
//}
return 0;
}
static jint led_setOff(JNIEnv* env, jobject thiz) {
//if (sLedDevice) {
LOGI("led_set_off");
sLedDevice->set_off(sLedDevice);
//}
return 0;
}
/** helper APIs */
static inline int led_control_open(const struct hw_module_t* module,
struct led_control_device_t** device) {
LOGI("led_control_ope");
return module->methods->open(module,
LED_HARDWARE_MODULE_ID, (struct hw_device_t**)device);
}
static jint led_init(JNIEnv *env, jclass clazz)
{
led_module_t const * module;
更多精彩
赞助商链接