Android Display System
文章平均质量分 73
jeffreyliu
这个作者很懒,什么都没留下…
展开
-
Android2.3异步双屏修改记录之部分测试结果
代码部分的修改主要涉及到如下所列这些:1 HAL层修改... 2 libui.so库的修改... 3 EGL的修改... 4 SurfaceFlinger的修改... 5 SurfaceFlinger_Client的修改... 总体指导框图如下:具体修改过程这里不再详述,下面是相关的测试结果:1、运动可执行文件surfaceflinger启动SurfaceFli转载 2012-04-25 18:21:51 · 776 阅读 · 0 评论 -
Android display架构分析
Android display架构分析(一)http://hi.baidu.com/leowenj/blog/item/429c2dd6ac1480c851da4b95.html高通7系列硬件架构分析如上图,高通7系列 Display的硬件部分主要由下面几个部分组成:A、MDP高通MSM7200A内部模块,主要负责显示数据的转换和部分图像处理功能理,如YUV转RGB,放大缩转载 2012-04-19 09:01:05 · 867 阅读 · 0 评论 -
Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的关系
一、SurfaceSurface就是“表面”的意思。在SDK的文档中,对Surface的描述是这样的:“Handle onto a raw buffer that is being managed by the screen compositor”,翻译成中文就是“由屏幕显示内容合成器(screen compositor)所管理的原生缓冲器的句柄”,这句话包括下面两个意思:1.转载 2012-07-11 22:59:27 · 935 阅读 · 0 评论 -
Android -- SurfaceFlinger 概要分析系列 (一)
图形显示整个架构是android中相当复杂的系统,涉及到众多的概念,但是非常重要,如花屏,透明,显示速度等等都与其相关,所以是必须破解的障碍,那么就深入学习吧。基本处理流程:应用程序直接与Surface交互,Surface就像是UI的画布,则APP则在Surface直接画图,最后由SurfaceFlinger进行混合所有Layer数据,在此利用OpenGL或者2D Copy转载 2012-07-11 23:08:47 · 981 阅读 · 0 评论 -
Android -- SurfaceFlinger Surface创建 系列 (二)
应用程序中的每个窗口,对应本地代码中的Surface,而Surface又对应 于SurfaceFlinger中的各个Layer,SurfaceFlinger的主要作用是为这些Layer申请内存,根据应用程序的请求管理这些 Layer显示、隐藏、重画等操作,最终由SurfaceFlinger把所有的Layer组合到一起,显示到显示器上。一、Surface的创建过程:请看如下序列图转载 2012-07-11 23:09:23 · 1196 阅读 · 0 评论 -
Android Surfaceflinger 的使用
最近在做一个android的新平台,涉及到了SurfaceFlinger的使用。又要在另外一个平台上实现一个抓屏的功能,被折磨的囧啊。最近终于能够闲下来整理一下这块的东西了。网上有很多讲解SurfaceFlinger的文章,但大部分都是原理分析,看的头大。下面是一个测试小例子,测试SurfaceFlinger的使用,并结合skia测试了软合成shotsceen的性能。点击(此处)折叠或转载 2012-07-11 23:13:12 · 1490 阅读 · 0 评论 -
Android SurfaceFlinger中的Layer,LayerDim,LayerBlur,LayerBuffer
应用程序中不同类型的Surface,在FrameWorks本地层的SurfaceFlinger中,分别对应着不同的Layer类,本文主要是讨论这几种Layer的实现和差异。阅读本文之前,最好对SurfaceFlinger这个系统服务有所了解,可以参阅我的以下两篇文章:Android SurfaceFlinger中的SharedClient -- 客户端(Surface)和服务端(Lay转载 2012-07-11 23:15:34 · 997 阅读 · 0 评论 -
Android SurfaceFlinger中的SharedClient -- 客户端(Surface)和服务端(Layer)之间的显示缓冲区管理
SurfaceFlinger在系统启动阶段作为系统服务被加载。应用程序中的每个窗口,对应本地代码中的Surface,而Surface又对应于SurfaceFlinger中的各个Layer,SurfaceFlinger的主要作用是为这些Layer申请内存,根据应用程序的请求管理这些Layer显示、隐藏、重画等操作,最终由SurfaceFlinger把所有的Layer组合到一起,显示到显示器上。当一个转载 2012-07-11 23:17:57 · 813 阅读 · 0 评论 -
android surfaceflinger研究----SurfaceFlinger loop
上一篇文章介绍了整个Surface机制(我是这么称呼的,主要是Surface的建立,Surface的显示存储的管理),同时我们也介绍过了整个显示系统,那么这篇文章就介绍一下SurfaceFlinger 这个核心服务层的机制。 从代码中我们可以看出SurfaceFlinger 是一个thread,运行在system_server进程中,并且其threadLoop()方法的返回值为true,转载 2012-04-26 10:44:04 · 726 阅读 · 0 评论 -
Android SurfaceFlinger学习文档
参考资料:1、“Android Display System --- Surface Flinger”2、“Android核心分析(26) ----- Android GDI之SurfaceFlinger”3、“Android SurfaceFlinger中的SharedClient -- 客户端(Surface)和服务端(Layer)之间的显示缓冲区管理”4、“Android S转载 2012-04-26 07:35:33 · 991 阅读 · 0 评论 -
Android SurfaceFlinger中的工作线程:threadLoop()
SurfaceFlinger继承了Thread类,自然也继承了Thread类的threadLoop方法,SurfaceFlinger工作线程的主代码都在threadLoop()方法中。工作线程启动后,基类Thread会循环地调用threadLoop方法,SurfaceFlinger的threadLoop()主要是要完成系统中各个Layer(Surface)进行混合(compose),然后不停地把一转载 2012-04-26 07:34:15 · 639 阅读 · 0 评论 -
Android双屏显示的一些修改与尝试
这些天来一直在看android display相关的代码和资料并作了一些尝试,现在将这些天来的工作记录如下,有错误的地方希望广大同行指正,谢谢!经过阅读代码和查到的相关一些资料,对android双屏的支持总体思路如下图所示:由于目前跟踪代码只跟到了surfaceflinger这一层,下面先从surfaceflinger说起:在frameworks\base\servic转载 2012-04-25 18:17:58 · 1010 阅读 · 0 评论 -
Android4.0.3 显示系统深入理解
网上已经有很多兄弟对Android的显示系统做了深入解剖,很是佩服。可最近小弟在研究Android4.0时发现出入比较大,也许是Android4.0的修改比较多吧!因为小弟没有看Android4.0以前的代码。 面对这么复杂一个Android显示系统,如何入手呢? 根据以前的经验,不管它有多么复杂,其功能不就是以下三步曲吗? 1)显示系统的创建及初始化 2)画转载 2012-04-26 06:55:23 · 2245 阅读 · 0 评论 -
Android核心分析(26)-----Android GDI之SurfaceFlinger
Android GDI之SurfaceFlingerSurfaceFinger按英文翻译过来就是Surface投递者。SufaceFlinger的构成并不是太复杂,复杂的是他的客户端建构。SufaceFlinger主要功能是:1) 将Layers (Surfaces) 内容的刷新到屏幕上2) 维持Layer的Zorder序列,并对Layer最终输出做出裁剪计算。3) 响应Clien转载 2012-04-26 07:27:04 · 988 阅读 · 0 评论 -
Android核心分析(28)-----Android GDI之Surface&Canvas
Surface&Canvas Canvas为在画布的意思。Android上层的作图几乎都通过Canvas实例来完成,其实Canvas更多是一种接口的包装。drawPaints ,drawPoints,drawRect,drawBitmap ...1 Canvas与Surface之间本质关系 对于本节,我们不去研究Skia图形引擎本身,我们需要了解的我们的所做的图形转载 2012-04-26 07:28:51 · 792 阅读 · 0 评论 -
Android Display System --- Surface Flinger
Android Display System ---Surface Flinger SurfaceFlinger是Android multimedia的一个部分,在Android的实现中它是一个service,提供系统范围内的surface composer功能,它能够将各种应用程序的2D、3D surface进行组合。在具体讲SurfaceFlinger之前,我们先来看一下有关显示转载 2012-04-26 07:23:05 · 1742 阅读 · 1 评论 -
Android核心分析(27)-----Android GDI 之SurfaceFlinger之动态结构示意图
SurfaceFlinger对象建立过程示意 1 SurfaceSession的建立 客户端请求建立Surface时,首先在要与SurfaceFlinger建立一个Session,然后再Session上建立一个Connection通过概念返回Bclient对象。WindowManagerService在添加第一个窗口前会检查SurfaceSession是否建立,如何没有建立,将会转载 2012-04-26 07:27:49 · 1223 阅读 · 0 评论 -
Android SurfaceFlinger中的SharedClient -- 客户端(Surface)和服务端(Layer)之间的显示缓冲区管理
SurfaceFlinger在系统启动阶段作为系统服务被加载。应用程序中的每个窗口,对应本地代码中的Surface,而Surface又对应于SurfaceFlinger中的各个Layer,SurfaceFlinger的主要作用是为这些Layer申请内存,根据应用程序的请求管理这些Layer显示、隐藏、重画等操作,最终由SurfaceFlinger把所有的Layer组合到一起,显示到显示器上。当一个转载 2012-04-26 07:33:04 · 748 阅读 · 0 评论 -
android surfaceflinger研究----显示系统
这周抽空研究了一下SurfaceFlinger,发现真正复杂的并不是SurfaceFlinger本身,而是android的display显示系统,网上关于这部分的介绍有不少,本不打算写的,但是发现还是记录一下研究代码的过程比较好,一是能够帮助自己理清思路,另一个原因就是以后当这块内容忘记的时候,能快速的通过这个记录捡起来。 一. android显示系统的建立 我们看Surfa转载 2012-04-26 10:37:32 · 837 阅读 · 0 评论 -
android surfaceflinger研究----Surface机制
前一篇文章介绍了android的显示系统,这篇文章中,我们把视角往上层移动一下,研究一下framework是如何与surfaceflinger进行业务交互的。如何创建surface,如何显示窗口等等,所有的这一切都是通过系统服务WindowManagerService与surfaceflinger来进行的。 android中的Surface机制这一块代码写的比较难理解,光叫Surface转载 2012-04-26 10:42:59 · 819 阅读 · 0 评论 -
展讯平台-LCD驱动
所谓驱动者,三分硬件,三分格式,四分软件。对于展讯平台的LCD驱动,首先就要了解一点基本的硬件知识。一、LCD的接口 其实LCD的接口有很多,但是不管是在手机还是电脑,液晶屏的接口也最常用的有两个,MCU和RGB 1、MCUMCU接口又根据时序的不同分为Intel的8080和Motorola的6800。他们两个主要是时序的区别。现在6800已经基本不用了转载 2012-07-16 09:06:31 · 1244 阅读 · 0 评论