Android 12(S) 图像显示系统 - BufferQueue的工作流程(十)
题外话
疫情隔离在家,周末还在努力学习的我 .....
一、前言
上一篇文章中,有基本讲清楚Producer一端的处理逻辑,最后也留下了一个疑问:
Consumer是什么时候来消费数据的?他是自己主动来取的?还是收到了某种通知后再来处理的?
这篇文章,就带着这些疑问来开始分析源码。开头还是把这种流程图贴一下
二、Listener监听器的回调过程解析
生产者写完数据,把buffer还给buffer queue后,又是怎样通知消费者来使用的呢?
下面这些解析步骤,就是回答上面的问题
1. 生产者把数据写入buffer后,调用BufferQueueProducer::queueBuffer 入队列这个buffer;
2. 怎么去通知消费者来取呢? queueBuffer函数中会调用frameAvailableListener->onFrameAvailable(item);
3. frameAvailableListener是什么呢?frameAvailableListener = mCore->mConsumerListener;
4. mCore即为BufferQueueCore, BufferQueueCore中有成员 sp<IConsumerListener> mConsumerListener
5. BufferQueueCore::mConsumerListener 是什么时候设置的呢?
关注公众号 Android元宇宙 继续阅读相关文章!
分类:
Android 图形图像
标签:
Android图形图像
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构