Android是通过HIDL实现上层与Hal层通信,当业务逻辑有通信需求时去扩展HIDL接口比较麻烦。本文介绍了通过FIFO实现Android FWK/App给hal发送消息的快捷方式。该方式是从FWK/App向Hal层发送消息。
1 Hal层实现
1.1 定义Hal层监听接口
定义FIFO的读端。
#include <utils/Thread.h>
class CameraMSGProcess : public android::Thread {
public:
CameraMSGProcess();
~CameraMSGProcess();
virtual bool threadLoop() override;
private:
bool mExit;
const char* mObservePath;
int mFd;
};
1.2 实现Hal层监听接口
#include <log/log.h>
#include <errno.h>
#include <cutils/properties.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
CameraMSGProcess::CameraMSGProcess() :
Thread(/*canCallJava*/false),
mExit(false),
mObservePath("/data/local/fifo"),
mFd(-1){
//创建fifo,

文章介绍了如何使用FIFO(先进先出队列)作为替代方法,简化Android框架层(FWK)和硬件抽象层(HAL)之间的通信。在HAL层,定义了监听接口,通过创建和监控FIFO来接收FWK或应用的消息。当FWK需要与HAL通信时,可以直接写入FIFO。这种方式避免了扩展HIDL接口的复杂性。
3万+

被折叠的 条评论
为什么被折叠?



