
Android Display
文章平均质量分 77
MARTINGANG
这个作者很懒,什么都没留下…
展开
-
Android4.0.3 显示系统深入理解
1. 简介 网上已经有很多兄弟对Android的显示系统做了深入解剖,很是佩服。可最近小弟在研究Android4.0时发现出入比较大,也许是Android4.0的修改比较多吧!因为小弟没有看Android4.0以前的代码。 面对这么复杂一个Android显示系统,如何入手呢? 根据以前的经验,不管它有多么复杂,其功能不就是以下三步曲吗? 1)显示转载 2012-10-09 20:47:59 · 1390 阅读 · 0 评论 -
Androi4.0 SurfaceTexture的Buffer入队流程
SurfaceTexture的Buffer入队流程Figure 1queueBuffer流程 1. 在AWesomePlayer的Render中将解码后的Buf通过ANativeWindow接口通知SurfaceTextureClient struct AwesomeNativeWindowRenderer : public AwesomeRenderer转载 2012-10-13 20:35:22 · 1556 阅读 · 0 评论 -
ICS Overlay主要流程
ICS Overlay主要流程 只关注到Overlay的主要过程,对FB未做分析,待以后完善。 来自:http://www.cnblogs.com/zhgyee/archive/2011/11/13/2247623.html转载 2012-10-13 20:39:02 · 1133 阅读 · 0 评论 -
gstreamer介绍
gstreamer介绍Rainbow编码器是基于gstreamer实现的,webkit的video标签使用了gstreamer,gstreamer项目里还有一个rtsp的服务器,gstreamer的应用越来越多,而且它的确是一个不错的东西。最近有几次需要向人家解释gstreamer,发现这样一些观点:gstreamer比vlc差远了;下载gstreamer编译后就是一个播放器等转载 2012-10-13 20:40:06 · 2435 阅读 · 0 评论 -
DisplayHardware
DisplayHardware SurfaceFlinger调用DisplayHardware部分初始化Framebuffer、EGL和OpenGL ES。1 DisplayHardware的参数 DIRECT_TEXTURE = 0x00000002, // COPY_BITS_EXTENSION = 0x00000008, // NPOT_EXT转载 2012-10-13 21:19:53 · 775 阅读 · 0 评论 -
Android 的OpenGL ES与EGL
1 名词解释 OpenGL ES (OpenGL for Embedded Systems,以下简称OpenGL) OpenGL 三维图形 API 的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。该API由Khronos集团定义推广,Khronos是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准。EGLEGL™ 是介于诸如OpenGL 或OpenVG的Khr转载 2012-10-13 21:23:57 · 768 阅读 · 0 评论 -
Android GUI更新过程
1.ViewRoot在private void draw(boolean fullRedrawNeeded)中,会调用lockCanvas,从而获取一个Canvas对象,然后调用递归调用子窗口(View)的draw函数去绘制自己,最后调用unlockCanvasAndPost让Surface把自己更新到屏幕上。canvas = surface.lockCanvas(dirty);m转载 2012-10-13 21:26:21 · 594 阅读 · 0 评论 -
android surfaceflinger研究----SurfaceFlinger loop
上一篇文章介绍了整个Surface机制(我是这么称呼的,主要是Surface的建立,Surface的显示存储的管理),同时我们也介绍过了整个显示系统,那么这篇文章就介绍一下SurfaceFlinger 这个核心服务层的机制。 从代码中我们可以看出SurfaceFlinger 是一个thread,运行在system_server进程中,并且其threadLoop()方法的返回值为true,转载 2012-10-13 21:36:49 · 716 阅读 · 0 评论 -
Android的BUG: SurfaceTexture中的野指针
当初遇到这个bug,是不定期的低概率出现,最后找到一个比较容易重现的步骤:启动系统然后进google + 新建一个帐号(注意是新建一个帐号) 没几步就重启了 这个BUG,一开始追踪也是无头绪的,在这个bug出现时,系统的debuggerd还是有些问题,pt_regs设置的和内核对应不上,tombstone的信息完全无用,core dump功能也是无法使用,唯一的线索就是一点点转载 2012-10-13 21:45:57 · 1436 阅读 · 0 评论 -
Android4.0 SurfaceTexture
source link: http://developer.android.com/reference/android/graphics/SurfaceTexture.htmlpublic class SurfaceTextureClass Overview:Captures frames from an image stream as an OpenGL ES tex转载 2012-10-14 10:45:17 · 4168 阅读 · 0 评论 -
Android OpenGL ES与EGL
罗索实验室:http://www.rosoo.net/a/201201/15581.html Android 2.0版本之后图形系统的底层渲染均由OpenGL负责,OpenGL除了负责处理3D API调用,还需负责管理显示内存及处理Android SurfaceFlinger或上层应用对其发出的2D API调用请求。TAG: EGL转载 2012-11-02 20:20:37 · 2022 阅读 · 0 评论 -
EGL接口介绍
http://blog.csdn.net/hgl868/article/details/7074052EGL 是 OpenGL ES 和底层 Native 平台视窗系统之间的接口。本章主要讲述 OpenGL ES 的 EGL API ,以及如何用它创建 Context 和绘制Surface 等,并对用于 OpenGL 的其他视窗 API 做了比较分析,比如 WGL 和 GLX 。本章中将涵盖如转载 2012-11-02 20:51:32 · 1462 阅读 · 0 评论 -
Android OpenGL ES
http://blog.csdn.net/hgl868/article/details/69716241. OpenGL ES 简介Android 3D引擎采用的是OpenGL ES。OpenGL ES是一套为手持和嵌入式系统设计的3D引擎API,由Khronos公司维护。在PC领域,一直有两种标准的3D API进行竞争,OpenGL 和 DirectX。一般主流的游戏和显卡都支持这转载 2012-11-02 20:56:38 · 1436 阅读 · 0 评论 -
Android overlay 学习
转自:http://www.eoeandroid.com/thread-29278-1-1.htmlOverlay 分析1 overlay 代码结构Overlay 是个相对简单的模块,主要的文件有:/hardware/libhardware/include/hardware/overlay.h主要定义了两个 struct, 定义为 data device 和 control转载 2012-11-04 19:19:05 · 2032 阅读 · 0 评论 -
V4L2视频采集接口使用说明
V4L2较V4L有较大的改动,并已成为2.6的标准接口,函盖video\dvb\FM...,多数驱动都在向V4l2迁移。更好地了解V4L2先从应 用入手,然后再深入到内核中结合物理设备/接口的规范实现相应的驱动。本文先就V4L2在视频捕捉或camera方面的应用框架。V4L2采用流水线的方式,操作更简单直观,基本遵循打开视频设备、设置格式、处理数据、关闭设备,更多的具体操作通过ioctl函转载 2012-11-04 19:20:22 · 723 阅读 · 0 评论 -
Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析
前面在介绍Android系统的开机画面时提到,Android设备的显示屏被抽象为一个帧缓冲区,而Android系统中的SurfaceFlinger服务就是通过向这个帧缓冲区写入内容来绘制应用程序的用户界面的。Android系统在硬件抽象层中提供了一个Gralloc模块,封装了对帧缓冲区的所有访问操作。本文将详细分析Gralloc模块的实现,为后续分析SurfaceFlinger服务的实现打下基础。转载 2012-10-07 11:15:11 · 1190 阅读 · 0 评论 -
framebuffer 驱动
转载:http://www.hzlitai.com.cn/article/yejin-article/system/1167.htmlFSL framebuffer驱动代码分析:http://blog.chinaunix.net/space.php?uid=447727&do=blog&cuid=2213862 open,release,read,write,ioctl,转载 2012-11-04 19:21:38 · 714 阅读 · 0 评论 -
Linux V4L2 摄像头视频采集
一,什么是 video4linuxVideo4linux(简称V4L),是linux中关于视频设备的内核驱动,现在已有Video4linux2,还未加入linux内核,使用需自己 下载补丁。在Linux中,视频设备是设备文件,可以像访问普通文件一样对其进行读写,摄像头在/dev/videoN下,N可能为0,1,2,3... 一般0.另,推荐一个用于播放从摄像头采集到的raw数据的播放器转载 2012-11-05 20:50:02 · 850 阅读 · 0 评论 -
android下操作FrameBuffer
android下操作FrameBuffer一、framebuffer使用基础:1. Linux是工作在保护模式下,所以用户态进程是无法象DOS那样使用显卡BIOS里提供的中断调用来实现直接写屏, Linux抽象出FrameBuffer这个设备来供用户态进程实现直接写屏。对于用户而言,framebuffer和/dev下面的其他设备没有 什么区别,用户可以把framebuffer 看成转载 2012-10-12 20:36:49 · 1272 阅读 · 0 评论 -
Android 中的framebuffer和SurFaceFlinger的关系
Android 中的 framebuffer 和SurFaceFlinger的关系 作者: 李先静 xianjimli@gmail.com希望对那些在开发高通MSM7XXX平台的朋友有很大的帮助FrameBuffer 在Android中并不像在其它GUI那样直观,抽象的层次比较多,加上GUI的更新是通过OpenGLES来做的。所以让人很难搞清GUI更新的整个流程,最近要准备一个讲稿转载 2012-10-12 20:27:39 · 899 阅读 · 0 评论 -
android surfaceflinger研究----Surface机制
android surfaceflinger研究----Surface机制 前一篇文章介绍了android的显示系统,这篇文章中,我们把视角往上层移动一下,研究一下framework是如何与surfaceflinger进行业务交互的。如何创建surface,如何显示窗口等等,所有的这一切都是通过系统服务WindowManagerService与surfaceflinger来进转载 2012-10-09 21:02:02 · 594 阅读 · 0 评论 -
Android 如何使用GPU硬件加速
1.名词解释GPU:Graphic Processing Unit (图形处理器)OpenGL:Open Graphic Library 定义了一个跨编程语言、跨平台的编程接口的规格,不同厂商会有不同的实现方法,它主要用于三维图象(二维的亦可)绘制。SurfaceFlinger:Android中负责Surface之间叠加、混合操作的动态库Skia:Android中的2D图形库l转载 2012-10-09 21:04:08 · 910 阅读 · 0 评论 -
android surfaceflinger研究----显示系统
转自:http://blog.csdn.net/windskier/article/details/7030732一. android显示系统的建立 我们看SurfaceFlinger的定义就知道,它其实是一个Thread, 因此SurfaceFlinger的初始化工作就理所当然的放在了SurfaceFlinger线程中,详见readyToRun()@SurfaceFlinger.转载 2012-10-09 21:01:14 · 564 阅读 · 0 评论 -
高通Android平台下关于display部分的几个关键问题
显示部分的几个问题这几天通过实际测试澄清了一下,主要是下图中各个模块的使用状况以及HAL层几个模块的调用流程。以问题的方式描述如下:0. SurfaceFlinger主要功能 SurfaceFlinger只是负责merge Surface的控制,如计算出两个Surface重叠的区域,至于Surface需要显示的内容,则通过Skia、OpenGL和pixflinger来计算。转载 2012-10-09 21:06:39 · 3314 阅读 · 0 评论 -
Surfaceflinger process流程分析
根据前面的介绍,surfaceflinger作为一个server process(其进程入口见main_surfaceflinger.cpp中的main函数),上层的应用程序(作为client)通过Binder方式与其进行通信。Surfaceflinger作为一个进程,这里把它分为3个部分,如下:1、 Thread本身处理部分,包括初始化以及thread loop。2、 Binder部分,转载 2012-10-09 21:03:25 · 841 阅读 · 0 评论 -
Android 显示系统简介
Android display system introduce(Qualcomm 8x60 platform)(二、SW架构--1)2010-12-31 11:17一、Overview 上图的原型取自高通的文档,由于原图无法描述现有的架构,我在原图的基础了做了些修改,主要是增加了overlay部分,另外其他部分根据现有的软件也做了些许改动。下面先对上图做个大概的介绍,后转载 2012-10-09 21:05:39 · 846 阅读 · 0 评论 -
Android2.3 surface&&overlay
Android surface&&overlay 类: class LayerBuffer : public LayerBaseClient 内部类class OverlayChannel : public BnOverlay class OverlayRef : public LightRefBase sp mOverlayChannel;//继承Bp原创 2012-10-08 09:48:36 · 1137 阅读 · 0 评论 -
Android系统Surface制的SurfaceFlinger服务的启动过程分析
在前面一篇文章中,我们简要介绍了Android系统Surface机制中的SurfaceFlinger服务。SurfaceFlinger服务是在System进程中启动的,并且负责统一管理设备的帧缓冲区。SurfaceFlinger服务在启动的过程中,会创建两个线程,其中一个线程用来监控控制台事件,而另外一个线程用来渲染系统的UI。在本文中,我们就将详细分析SurfaceFlinger服务的启动过程。转载 2012-10-07 11:02:46 · 584 阅读 · 0 评论 -
Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划
前面我们从Android应用程序与SurfaceFlinger服务的关系出发,从侧面简单学习了SurfaceFlinger服务。有了这些预备知识之后,我们就可以从正面来分析SurfaceFlinger服务的实现原理了。SurfaceFlinger服务负责管理系统的帧缓冲区设备,并且负责渲染系统的UI,即各个应用程序的UI。在本文中,我们就简要介绍SurfaceFlinger服务,并且制定学习计划。转载 2012-10-07 11:04:32 · 526 阅读 · 0 评论 -
Android应用程序与SurfaceFlinger服务之间的共享UI元数据(SharedClient)的创建过程分析
在前面一篇文章中,我们分析了Android应用程序与SurfaceFlinger服务的连接过程。Android应用程序成功连接上SurfaceFlinger服务之后,还需要一块匿名共享内存来和SurfaceFlinger服务共享它的UI元数据,以便使得SurfaceFlinger服务可以正确地为它创建以及渲染Surface。在本文中,我们将详细地分析这块用来保存UI元数据的匿名共享内存的创建过程。转载 2012-10-07 11:10:58 · 1074 阅读 · 0 评论 -
Android应用程序与SurfaceFlinger服务的连接过程分析
前文在描述Android应用程序和SurfaceFlinger服务的关系时提到,每一个有UI的Android应用程序都需要与SurfaceFlinger服务建立一个连接,以便可以通过这个连接来请求SurfaceFlinger服务为它创建和渲染Surface。在本文中,我们将以Android系统的开机动画应用程序为例,详细描述Android应用程序是如何与SurfaceFlinger服务建立连接的。转载 2012-10-07 11:12:02 · 432 阅读 · 0 评论 -
Android系统Surface制的SurfaceFlinger服务的启动过程分析
(转自)http://blog.csdn.net/luoshengyang/article/details/8022957 在前面一篇文章中,我们简要介绍了Android系统Surface机制中的SurfaceFlinger服务。SurfaceFlinger服务是在System进程中启动的,并且负责统一管理设备的帧缓冲区。SurfaceFlinger服务在启动的过程中,转载 2012-10-06 19:37:43 · 499 阅读 · 0 评论 -
Android深入浅出之Surface
一 目的本节的目的就是为了讲清楚Android中的Surface系统,大家耳熟能详的SurfaceFlinger到底是个什么东西,它的工作流程又是怎样的。当然,鉴于SurfaceFlinger的复杂性,我们依然将采用情景分析的办法,找到合适的切入点。一个Activity是怎么在屏幕上显示出来的呢?我将首先把这个说清楚。接着我们把其中的关键调用抽象在Native层,以这些函数调用为切入点转载 2012-10-07 11:01:06 · 551 阅读 · 0 评论 -
Android应用程序请求SurfaceFlinger服务渲染Surface的过程分析
在前面一篇文章中,我们分析了Android应用程序请求SurfaceFlinger服务创建Surface的过程。有了Surface之后,Android应用程序就可以在上面绘制自己的UI了,接着再请求SurfaceFlinger服务将这个已经绘制好了UI的Surface渲染到设备显示屏上去。在本文中,我们就将详细分析Android应用程序请求SurfaceFlinger服务渲染Surface的过程。转载 2012-10-07 11:07:33 · 905 阅读 · 0 评论 -
Android应用程序请求SurfaceFlinger服务创建Surface的过程分析
前面我们已经学习过Android应用程序与SurfaceFlinger服务的连接过程了。连接上SurfaceFlinger服务之后,Android应用程序就可以请求SurfaceFlinger服务创建Surface。而当有了Surface后,Android应用程序就可以用来渲染自己的UI了。在本文中,我们将详细分析Android应用程序请求SurfaceFlinger服务创建Surface的过程。转载 2012-10-07 11:09:18 · 703 阅读 · 0 评论 -
Android应用程序与SurfaceFlinger服务的关系概述和学习计划
SurfaceFlinger服务负责绘制Android应用程序的UI,它的实现相当复杂,要从正面分析它的实现不是一件容易的事。既然不能从正面分析,我们就想办法从侧面分析。说到底,无论SurfaceFlinger服务有多复杂,它都是为Android应用程序服务的,因此,我们就从Android应用程序与SurfaceFlinger服务的关系入手,来概述和制定SurfaceFlinger服务的学习计划。转载 2012-10-07 11:12:59 · 719 阅读 · 0 评论 -
Android 中的 framebuffer
Android 中的 framebuffer简介FrameBuffer 在Android中并不像在其它GUI那样直观,抽象的层次比较多,加上GUI的更新是通过OpenGLES来做的。所以让人很难搞清GUI更新的整个流程,最近要准备一个讲稿,所以花了一些去研究,这里做点笔记供大家参考,源代码是基于高通平台的,这些代码在网上都可以下载。FrameBuffer 的相关组件如下图所示:转载 2012-10-12 20:28:51 · 624 阅读 · 0 评论 -
Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析
前面在介绍Android系统的开机画面时提到,Android设备的显示屏被抽象为一个帧缓冲区,而Android系统中的SurfaceFlinger服务就是通过向这个帧缓冲区写入内容来绘制应用程序的用户界面的。Android系统在硬件抽象层中提供了一个Gralloc模块,封装了对帧缓冲区的所有访问操作。本文将详细分析Gralloc模块的实现,为后续分析SurfaceFlinger服务的实现打下基础。转载 2012-11-05 20:51:01 · 1354 阅读 · 0 评论