通过FIFO实现Android Framework/App与hal层单向通信

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

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,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值