android 应用层操作硬件的几种方式:
1:在android应用层app里直接写JNI调用C函数来操作驱动。(缺点:如果多个app都用这种方式操作同一个硬件可
能会引起异常)
案例:
在“我的收藏”的《Android驱动(一)硬件访问服务学习之(一)Android通过JNI访问硬件》文章
2:在frameworks层实现一个JNI。加入到系统的系统service里(加入的时候会起一个名称),app通过系统的API还有传入相应 的名称得到系统service,用这个service调用上面实现的JNI,从而操作驱动里的硬件。(app->系统service->JNI->底层驱动)
案例:
在“我的收藏”的《Android硬件访问服务-Service》文章
3:在上面第2种方法的基础上,把JNI里的操作硬件的代码再分离出来一个HAL层,在这个HAL层里操作底层的驱动。(app->系统service->frameworks JNI->HAL->底层驱动)