Android SurfaceFlinger服务(四) ----- 消息机制MessageQueue

SurfaceFlinger服务的MessageQueue用于处理显示相关的消息,如Vsync。MessageQueue包含mLooper线程循环、mHandler消息处理和Vsync事件处理组件。在SurfaceFlinger初始化时创建并配置MessageQueue,其run函数中的死循环通过waitMessage监听和处理消息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SurfaceFlinger有着自己的消息队列MessageQueue,用来处理显示相关的消息,比如Vsync消息。

相关文件:

  • frameworks/native/services/surfaceflinger/MessageQueue.h
  • frameworks/native/services/surfaceflinger/MessageQueue.cpp

类MessageQueue和Handler定义在MessageQueue.h文件中,代码如下:

class MessageQueue {
    // 类Handler定义也在这里
    class Handler : public MessageHandler {  
        enum {
            eventMaskInvalidate     = 0x1,           
            eventMaskRefresh        = 0x2,           
            eventMaskTransaction    = 0x4            
        };
        MessageQueue& mQueue;           
        int32_t mEventMask;
    public:
        Handler(MessageQueue& queue) : mQueue(queue), mEventMask(0) { }
        virtual void handleMessage(const Message& message);
        void dispatchRefresh();
        void dispatchInvalidate();
        void dispatchTransaction();
    };

    friend class Handler;

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值