yjy239的博客
Android 重学系列 Vsync同步信号原理 Android 重学系列 Vsync同步信号原理
前言经过前面系列文章的学习,我们的已经理解了SurfaceFlinger运行机制以及同步机制,但是SurfaceFlinger又是以什么方法是把需要刷新的信号发送给App进程的,本文将会和探讨这个问题。 如果遇到问题可以来本文进行讨论:ht
2020-02-25
Android 重学系列 fence原理 Android 重学系列 fence原理
前言在前文中,我们已经讨论了Android 渲染体系中整体流程。但是对于fence,每一个厂商对它的理解都有点点不同,但是大体的思路和框架是跟着Android渲染体系走的。就以上一篇的msm8960为例子,在hwc_set中执行了hwc_s
2020-02-22
Android 重学系列 图元的合成(下) Android 重学系列 图元的合成(下)
前言整个图元的合成,大致上分为如下6个步骤: 1.preComposition 预处理合成 2.rebuildLayerStacks 重新构建Layer栈 3.setUpHWComposer HWC的渲染或者准备 4.doDebugFla
2020-02-14
Android 重学系列 图元的合成(上) 绘制的准备 Android 重学系列 图元的合成(上) 绘制的准备
前言经过上一篇文章的探索,我们已经熟知了图元是如何消费的。当一旦有图元进行过消费,SF就会决定刷新整个屏幕,大致上分为如下6个步骤: 1.preComposition 预处理合成 2.rebuildLayerStacks 重新构建Laye
2020-02-14
Android 重学系列 图元的消费 Android 重学系列 图元的消费
前言经过前两篇文章的解析,我们彻底的理解GraphicBuffer的生产端究竟做了什么。本文就来讨论GraphicBuffer是怎么消费。 整个图元的消费到合成,最后到通过hwc发送到fb。由于整个流程十分长,中间有许多细节,我将会挑出核心
2020-02-14
Android 重学系列 ion驱动源码浅析 Android 重学系列 ion驱动源码浅析
前言上一篇文章,在解析初始化GraphicBuffer中,遇到一个ion驱动,对图元进行管理。首先看看ion是怎么使用的: 1.打开驱动:mIonFd = open(ION_DEVICE, O_RDONLY); 2.ioctl 发送IO
2020-01-31
Android 重学系列 GraphicBuffer的诞生 Android 重学系列 GraphicBuffer的诞生
前言经过上一篇对OpenGL es的解析,我们引出了在eglSwapBuffer时候会调用会调用两个关键的方法: 1.Surface::dequeueBuffer 2.Surface::queueBuffer 从上一篇openGL es
2020-01-31
Android 重学系列 渲染图层-OpenGL es上的封装(下) Android 重学系列 渲染图层-OpenGL es上的封装(下)
前言经过上一篇对OpenGL es的环境搭建,了解几个关键的数据结构,本文将会解析软件模拟纹理的绘制流程。 先摆一张,OpenGL es上下文的数据结构: 在阅读本文时候,我们需要时刻记住这个图。 如果问题,可以来本文讨论https://w
2020-01-27
Android 重学系列 渲染图层-OpenGL es上的封装(上) Android 重学系列 渲染图层-OpenGL es上的封装(上)
前言经过探索,让我们理解了整个SF的消费者和生产者之间的关系。我们继续根据开机动画,来看看Android对OpenGL es的封装。 让我们回忆一下,上一篇开机动画OpenGL es 使用步骤,大致分为如下几个: 1.SurfaceCom
2020-01-25
Android 重学系列 渲染图层-图元缓冲队列初始化 Android 重学系列 渲染图层-图元缓冲队列初始化
前言经过上一篇文章,对开机启动动画的流程梳理,引出了实际上在开机启动动画中,并没有Activity,而是通过OpenGL es进行渲染,最后通过某种方式,把数据交给Android渲染系统。 本文,先来探索在调用OpenGL es进行渲染的前
2020-01-25
Android 重学系列 系统启动动画 Android 重学系列 系统启动动画
前言经过上一篇文章的探索和学习,相信大家对Hal 层的运作原理以及SF如何监听Hal层返回的回调有一定的了解。 原本应该是聊如何申请图元的,但是感觉和前文的逻辑割裂有点大,还是继续按照SF初始化,开机的逻辑顺序继续走下去。这一次就让我们聊聊
2020-01-25
Android 重学系列 SurfaceFlinger 的HAL层初始化 Android 重学系列 SurfaceFlinger 的HAL层初始化
前言上一篇文章我们研究了SF的初始化。但是还有一个很大也是核心的模块没有聊到,那就是HAL层对应的初始化。什么是HAL层,有简单的话来讲就是硬件驱动和软件之间的中间层,为了更好的兼容Android系统而诞生。 在Android 8.0之后会
2020-01-21
1 / 2