SurfaceFlinger
时光如刀
春去冬来,潮起潮落,人生几何;
夏落秋起,风去风来,岁月无痕
展开
-
应用获取画布surface流程
前面我们已经分析了activity通过SurfaceComposerClient在surfaceflinger服务中创建了一个Client。在本文中,我们将详细分析应用获取画布Surface流程。在分析Surface创建流程时,会涉及显示缓冲区队列相关知识,本文只是简单一笔带过,将在后面做具体分析。1、申请创建Surface1.1 viewrootImpl.java在应用启动时...原创 2018-04-07 22:38:24 · 1908 阅读 · 1 评论 -
SurfaceComposerClient与SurfaceFlinger建立通信流程
前面我们已经分析了activity从创建到调用本地方法去创建SurfaceComposerClient的过程。在本文中,我们将详细分析SurfaceComposerClient创建时是如何绑定SurfaceFlinger。1、申请SurfaceComposerClient入口[-> android_view_SurfaceSession.cpp]static jlong na...原创 2018-04-02 19:53:49 · 3733 阅读 · 0 评论 -
surfaceflinger之buffer生产者与消费者模型简介
应用获取画布surface流程分析了申请Surface时,在SurfaceFlinger中会创建对应的layer。而在创建layer时,就会去创建生产者消费者模型。本文着重阐述生产者消费者的创建及使用。1、模型创建入口1.1 layer创建第一次由强智能指针(sp)引用时,会执行onFirstRef方法void Layer::onFirstRef() { // Cre...原创 2018-04-21 16:20:54 · 1723 阅读 · 0 评论 -
surfaceflinger之buffer消费过程
上一篇分析了buffer的生产过程,本文着重阐述生产者对buffer消费过程。这个过程需要弄清一下几个问题: 1、消费者是谁? 2、消费者如何从BufferQueue获取buffer显示? 3、buffer显示完成后如何释放?1、消费者 SurfaceFlinger将显示数据刷新到屏幕,所以消费者指的是surfaceflinger。surfacefl...原创 2018-05-05 21:50:45 · 1861 阅读 · 0 评论 -
surfaceflinger之buffer生产过程
上一篇分析了surfaceflinger的生产-消费者模型,本文着重阐述生产者对buffer生产过程。这个过程需要弄清一下几个问题: 1、生产者是谁? 2、生产者如何从BufferQueue获取空闲buffer? 3、绘制完成后的buffer如何压入BufferQueue中,以便消费者获取?1、生产者应用获取画布surface流程已经详细地分析了APP如何通过re...原创 2018-04-28 15:37:08 · 1110 阅读 · 0 评论