android java 和kernel 的交互方式
按照常规的要通过JNI实现, 然后jni 调用HAL的IOCTL ,或者类似Vold 中建立netlink 的方式和kernel交互。
实际上这不是一种高效的方式。这样在时间紧迫的情况下,如果您的程序中 java只是要主动和kernel交互的,获取一些信息,或者写入一些,那么可以完全采用如下的方法:
首先驱动随便实现一个的节点:
// sys/class/mynode/mydev/driver_level
    static struct class *driver_class = NULL;
    
    static struct device *driver_dev = NULL;
   
    
    unsigned int  _level=0xff;
   
    static ssize_t driver_level_show(struct device *dev,
    
    struct device_attribute *attr, char *buf)
    
    {
    
   
// 获取驱动的值
    return sprintf(buf, “%u\n”,  _level);
    
    }
   
    static ssize_t driver_level_store(struct device *dev,
    
    struct device_attribute *attr, const char *buf, size_t size)
    
    {
    
    
    int value = simple_strtoul(buf, NULL, 0);
    
    _level=value;
    
    // set value
   
//做需要的事情
 
