android hal和linux内核相关的联系是什么?

android hal和linux内核相关的联系是什么?

android hal是c写的,android hal跟linux内核icon的交互跟linux下c程序和内核的交互是一样的。在hal里,你可以通过openicon/write/read访问外设,也可以通过更通用的方式比如读写/sys下面的一些属性文件来达到访问和控制外设的目的;

android hal和linux内核相关的联系是什么?

而android hal跟上层,也就是android framworks层的交互则稍微复杂,因为frameworks层是基于javaicon开发的,这就涉及到c和java的互调了:

如果是frameworks层调到hal层,那就是java调c,其实基于jniicon就可以实现,那c调用java该如何实现呢?

android hal和linux内核相关的联系是什么?

其实也跟jni类似,在jni初始化中,把java函数的地址传入到c层,在c层把这个地址保存下来,当底层的数据上来的时候,先到hal层,然后在hal层调用java函数的地址,这样就可以把数据送到frameworks层了。

至于android app上层的那些callbackicon,那就是framworks又封装的一层,数据流向也是从下驱动到上的。

gps的场景下,数据流基本就是这样的。

分享到 :
相关推荐

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注