- 加载本地服务的库代码
static
{
System.load("libled_hal_jni.so");
}
最好用static,因为动态库只能加载1次
在构造方法里调用_init本地代码,对Led进行初始化
- 为app程序提供两个API:set_on和set_off,这两个API方法实际上也是交给了本地服务代码来操作的
public boolean init()
{
return _init();
}
public boolean setOn(int led)
{
return _set_on(led);
}
public boolean setOff(int led)
{
return _set_off(led);
}
总结
由于Java代码无法直接操作底层硬件,通过JNI方法将具体的操作交给本地底层代码实现,自己只是一个API Provider,即:服务提供者。