Jimmy's Blog

SurfaceFlinger
SurfaceFlinger

(转载)SurfaceFlinger之VSync工作原理

这篇文章写得挺不错的,就是篇幅长,内容多,而且平时没有解过这方面的bug,感觉理解的并不是特别透彻   VSync信号的科普我们上一篇已经介绍过了,这篇我们要分析在SurfaceFlinger中的作用。(愈发觉得做笔记对自己记忆模块巩固有很多帮助,整理文章不一定是用来给别人看的,但一定是为加强自己记忆的~) 流程基础   从上一篇得知,Android 4.1一个很大的更新是Project Butter,黄油计划,为了解决用户交互体验差的问题(Jelly Bean is cra…

2018-08-30 0条评论 4704点热度 0人点赞 jimmychen 阅读全文
SurfaceFlinger

(转载)VSync信号

  在我们详细分析SurfaceFlinger之前要了解一下VSync信号,为下一节分析Vsync工作原理打下基础。 VSync信号相关   首先我们要了解以下几个概念 屏幕刷新率   即 Refresh Rate 或 Scanning Frequency,单位赫兹/Hz,是指设备刷新屏幕的频率,该值对于特定的设备来说是个常量,如 60hz。   每一台CRT显示器都有自己的刷新率,其单位是Hz,其数值是显示器每秒钟更新画面的次数。不同…

2018-08-17 0条评论 2517点热度 0人点赞 jimmychen 阅读全文
SurfaceFlinger

(转载)SurfaceFlinger服务的启动与连接过程

  上一篇我们分析了Android的开机动画启动流程,这一篇我们基于上一篇的基础,分析一下SurfaceFlinger的启动,还有连接它的过程。 SurfaceFlinger的启动 启动概述   SurfaceFlinger服务是一个独立进程,并且负责统一管理设备的帧缓冲区。通过上一篇开机动画流程分析,我们可以在init.rc中找到SurfaceFlinger服务配置的地方,位于system/core/rootdir/Init.rc中: [crayon-62bcd23605e…

2018-08-16 0条评论 3056点热度 0人点赞 jimmychen 阅读全文
SurfaceFlinger

(转载)Android开机动画流程简述

  在详细分析SurfaceFlinger模块之前要先看看Android的开机动画,因为这个BootAnimation是一个C++应用程序,需要使用SurfaceFlinger服务来创建和渲染自己的Surface,并且不涉及与用户进行交互,所以能以最简洁的方式体现Android与SurfaceFlinger服务的关系。 开机动画的启动   第一个开机画面是在内核启动的过程中出现的,它是一个静态的画面。第二个开机画面是在init进程启动的过程中出现的,它也是一个静态的画面。第三…

2018-08-10 0条评论 2835点热度 1人点赞 jimmychen 阅读全文
Android

(转载)SurfaceFlinger源码分析之SurfaceFlinger概述

PS:最近工作事情太多,Android显示框架这一块都没有时间好好分析,其次是显示框架的内容实在是太多,自己看代码还好,但是要总结也不知道从哪里开始好。估计可能是理解还不够透彻吧,所以还是多看一些博客,自己也结合代码分析一下会好点。 前言   Android的Graphic系统是设计的很精妙,但是也很复杂。SurfaceFlinger也是Graphic系统中十分重要的组成部分,要从正面分析不是一件容易的事情。所以我们先从侧面窥视它的重要模块,积累起足够的模块基础,再统一分析,就会一目了然。 GU…

2018-08-07 0条评论 3937点热度 0人点赞 jimmychen 阅读全文
SurfaceFlinger

(转载)Android应用程序与SurfaceFlinger服务的连接过程分析

博主在后面根据原博客的内容同步分析Android O的代码时发现,好多代码内容都找不到了,估计是原博主老罗在分析的时候的Android版本比较老的缘故吧。除了这篇博客还算有参考价值外,后续的博客就不转载了,哎,果然不能急,还是得自己看代码分析代码比较靠谱啊。   前文在描述Android应用程序和SurfaceFlinger服务的关系时提到,每一个有UI的Android应用程序都需要与SurfaceFlinger服务建立一个连接,以便可以通过这个连接来请求SurfaceFlinger服务为它创建…

2018-07-16 2条评论 1543点热度 0人点赞 jimmychen 阅读全文
SurfaceFlinger

(转载)Android应用程序与SurfaceFlinger服务的关系概述和学习计划

博主在后面根据原博客的内容同步分析Android O的代码时发现,好多代码内容都找不到了,估计是原博主老罗在分析的时候的Android版本比较老的缘故吧。除了《(转载)Android应用程序与SurfaceFlinger服务的连接过程分析》还算有参考价值外,后续的博客就不转载了,哎,果然不能急,还是得自己看代码分析代码比较靠谱啊。   SurfaceFlinger服务负责绘制Android应用程序的UI,它的实现相当复杂,要从正面分析它的实现不是一件容易的事。既然不能从正面分析,我们就想办法从侧…

2018-07-13 0条评论 1628点热度 0人点赞 jimmychen 阅读全文
SurfaceFlinger

(转载)Android图形显示之硬件抽象层Gralloc

  FrameBuffer驱动程序分析文中介绍了Linux系统下的显示驱动框架,每个显示屏被抽象为一个帧缓冲区,注册到FrameBuffer模块中,并在/dev/graphics目录下创建对应的fbX设备。Android系统在硬件抽象层中提供了一个Gralloc模块,封装了对帧缓冲区的所有访问操作。用户空间的应用程序在使用帧缓冲区之间,首先要加载Gralloc模块,并且获得一个gralloc设备和一个fb设备。有了gralloc设备之后,用户空间中的应用程序就可以申请分配一块图形缓冲区,并且将这…

2018-06-26 0条评论 2365点热度 0人点赞 jimmychen 阅读全文
分类
  • Android / 45篇
  • ART虚拟机 / 7篇
  • Binder / 9篇
  • C/C++ / 10篇
  • JNI编程指南与规范 / 18篇
  • Linux / 12篇
  • SQL数据库 / 10篇
  • SurfaceFlinger / 10篇
  • 再战C Primer Plus / 14篇
  • 再战C++ Primer Plus / 14篇
  • 网络编程 / 4篇
Adsense

COPYRIGHT © 2022 Jimmy's Blog. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang