Android-graphic system
文章平均质量分 79
hong19860320
这个作者很懒,什么都没留下…
展开
-
Android SurfaceFlinger中的SharedClient -- 客户端(Surface)和服务端(Layer)之间的显示缓冲区管
SurfaceFlinger在系统启动阶段作为系统服务被加载。应用程序中的每个窗口,对应本地代码中的Surface,而Surface又对应于SurfaceFlinger中的各个Layer,SurfaceFlinger的主要作用是为这些Layer申请内存,根据应用程序的请求管理这些Layer显示、隐藏、重画等操作,最终由SurfaceFlinger把所有的Layer组合到一起,显示到显示器上。当一个转载 2011-11-14 17:07:56 · 636 阅读 · 0 评论 -
Android's 2D Canvas Rendering Pipeline
This is a conceptual overview of how Android's 2D Canvas rendering pipeline works. Since Android's Canvas API is mostly a pretty thin veneer on top of Skia it should also serve as a reasonable overvie转载 2011-12-20 18:05:23 · 1545 阅读 · 1 评论 -
图形加速卡技术 [专业的基础技术文章]
图形加速卡技术论坛:1.入门篇--图形加速之 图形(发表于GZeasy.com: Jul 20 2003, 04:14 PM)来了这么久,也对这里的朋友有了一个大概的了解。恕我罗索一两句,这里的名字是“图形加速卡技术论坛”,可是情景完全不是这样啊。选购,改卡,甚至游戏也是技术,我倒不说什么,可是n 多人在这里说些完全没有关系的话题,或者让人看了完全摸不着头脑的东西,给我们留下不好的转载 2011-12-26 10:51:18 · 2627 阅读 · 0 评论 -
Cache 的write back和write through
为了保证cache和memory的数据一致性,通常有三种方法:1〉write through:CPU向cache写入数据时,同时向memory也写一份,使cache和memory的数据保持一致。优点是简单,缺点是每次都要访问memory,速度比较慢。2〉post write:CPU更新cache数据时,把更新的数据写入到一个更新缓冲器,在合适的时候才对memory进行更新。这样可以提高ca转载 2011-12-27 17:50:48 · 748 阅读 · 0 评论 -
Modify Android Pixelflinger to support ATMEL BGR555
I try to trace the libpixelflinger source code. However, it seems to be a troublesom work.----/system/core/libpixelflinger/scanline.cpp/system/core/include/libpixelflinger/format.h/system/转载 2012-01-04 16:32:47 · 901 阅读 · 0 评论 -
AlertDialog如何创建layerDim的过程
1.首先在alertdialog的构造函数中可以看到它采用了R.style.Theme_Dialog_Alert样式; \framework\base\core\java\app\AlertDialog.java protected AlertDialog(Context context, boolean cancelable, OnCancelListener cancelListe原创 2012-02-14 13:48:34 · 3491 阅读 · 0 评论 -
Android2.3异步双屏修改记录之android CS架构
在此之前,有必要理清一下下表1中所列出的一些概念。ISurface定义了基础的Surface接口,供GUI系统客户端(应用)和Server端(surfaceflinger)交互BpSurfaceISurface的派生类,提供接口供Server调用Client功能BnSurfaceISurface的另一个转载 2012-02-16 19:39:39 · 798 阅读 · 0 评论 -
Android系统2D/3D硬件加速分析报告
1.前言:如果处理器只有2D硬件加速而没有3D硬件加速,则可以利用opengl中的libagl,实现封装在libagl里的copybit,因为相对3D API来说,这个模块的封装google基本是做好的,只要去实现一个copybit HAL即可;如果处理器2D/3D硬件加速均有,那么可以丢开copybit,去实现openGL ES 2D/3D API的加速功能。 2.Android系统转载 2012-02-16 13:52:03 · 2255 阅读 · 0 评论 -
android surfaceflinger研究----显示系统
一. android显示系统的建立 我们看SurfaceFlinger的定义就知道,它其实是一个Thread, 因此SurfaceFlinger的初始化工作就理所当然的放在了SurfaceFlinger线程中,详见readyToRun()@SurfaceFlinger.cpp SurfaceFlinger对于显示的管理是通过一个或多个GraphicPlane对象(目前andr转载 2012-02-20 15:48:19 · 1280 阅读 · 0 评论 -
Android4.0.3 显示系统深入理解
1. 简介 网上已经有很多兄弟对Android的显示系统做了深入解剖,很是佩服。可最近小弟在研究Android4.0时发现出入比较大,也许是Android4.0的修改比较多吧!因为小弟没有看Android4.0以前的代码。 面对这么复杂一个Android显示系统,如何入手呢? 根据以前的经验,不管它有多么复杂,其功能不就是以下三步曲吗? 1)显示转载 2012-02-20 14:27:22 · 3586 阅读 · 3 评论 -
DisplayHardware
DisplayHardware SurfaceFlinger调用DisplayHardware部分初始化Framebuffer、EGL和OpenGL ES。1 DisplayHardware的参数 DIRECT_TEXTURE = 0x00000002, // COPY_BITS_EXTENSION = 0x00000008, // NPOT_EXT转载 2012-03-29 16:02:23 · 1715 阅读 · 0 评论 -
S3C6410的双Framebuffer于Android系统中存在的问题
S3C6410的双Framebuffer于Android系统中存在的问题在为S3C6410移植Android系统过程中,发现在拖动任务栏,软键盘输入信息等情况下,屏幕会出现闪烁现象,类似刷新率不足情况。一直认为原因是自己porting的系统没有实现copybit等2D加速功能,导致填充速度不够快。昨天在调试双Framebuffer时发现,问题可能出在双Framebuffer上的交换上。Andr转载 2012-03-31 09:51:40 · 3184 阅读 · 0 评论 -
S3C6410 Copybit Android 模块设计心得
首先再来回顾下Copybit的接口函数,虽然简单,但功能一个都不少。Copybit模块主要使用的硬件加速功能有:bitBlitStretchRotateAlpha blendingColor Transform1、bit blit和stretch的实现strctch并没有特殊去实现,因为所有的坐标数据都是Android的Surface和OpenGL ES层传转载 2011-11-18 09:29:31 · 1249 阅读 · 0 评论 -
Android 色深32位支持
首先介绍有关色彩深度的知识。计算机显示器上同时能显示的颜色数量是由色彩深度(Color Depth )决定的,例如色彩深度若为16 则同时能显示2 的16 次方即65536 种颜色,色彩深度若为24 则同时能显示2 的24 次方即16777216 种颜色。在显卡驱动设置里通常把16 位色模式称为“增强色”,24 位色模式称为“真彩色”。至于显卡支持的32 位色模式,只是为了更好地处理色转载 2011-11-14 11:07:20 · 1032 阅读 · 0 评论 -
高通Android平台下关于display部分的几个关键问题
显示部分的几个问题这几天通过实际测试澄清了一下,主要是下图中各个模块的使用状况以及HAL层几个模块的调用流程。以问题的方式描述如下:1、 Ap是怎么进行显示的?Surfaceflinger负责所有上层的显示处理,对于AP(2D或是3D的应用程序)而言,只要到surfaceflinger中创建surface,设置好参数,接下来都是统一交给surfaceflinger进行处理 2、 S转载 2011-11-24 23:16:03 · 834 阅读 · 0 评论 -
Android在新平台上的移植
最近公司退出了新一代的arm芯片,硬件有改变的还有PMU,Audio,Graphic, TouchPanel。 由于大部分硬件都没有改变,所以我们的思路很简单,就是在原来的软件版本上进行修改。另外两个同事忙活了一个月左右的时间,先后跑起来了XLoader,Uboot和Linux Kernel。但是Android死活都起不来,看了几次启动的log,最后一句都是I/ActivityManage转载 2011-11-16 11:35:15 · 671 阅读 · 0 评论 -
Android Pixelflinger 研究
1. Pixelflinger简介Pixelflinger是Android系统中为 OpenGL ES引擎提供的一套软件渲染器(renderer)。系统启动时通过查看启动日志信息可以获取当前Pixelflinger的软件版本(代码)。 Pixelflinger软件版本随着Android版本的升级而提高,目前最新的版本为1.3(基于Android2.2系统)。I/SurfaceFlinger转载 2011-11-16 19:35:21 · 653 阅读 · 0 评论 -
Android 的GUI 系统
Android 的GUI系统由C语言框架和JAVA 语言框架组成的。 如图: 1. Android 的GUI系统的C语言框架包括: 1)PixelFlinger (下层的工具库) 该库提供像素级别的基本处理,如像素格式定义、画点、线、多边形、纹理颜色填充以及多层处理等操作接口,PixelFlinger 的头文件 和 源代码分别转载 2011-11-16 19:38:09 · 700 阅读 · 0 评论 -
Android核心分析(23)-----Andoird GDI之基本原理及其总体框架
Android GDI基本框架 在Android中所涉及的概念和代码最多,最繁杂的就是GDI相关的代码了。但是本质从抽象上来讲,这么多的代码和框架就干了一件事情:对显示缓冲区的操作和管理。 GDI主要管理图形图像的输出,从整体方向上来看,GDI可以被认为是一个物理屏幕使用的管理器。因为在实际的产品中,我们需要在物理屏幕上输出不同的窗口,而每个窗口认为自己独占屏幕的使用,对所有窗转载 2011-11-17 10:13:05 · 748 阅读 · 0 评论 -
Android核心分析(24)----Android GDI之显示缓冲管理
Android GDI之屏幕设备管理-动态链接库 万丈高楼从地起,从最根源的硬件帧缓冲区开始。我们知道显示FrameBuffer在系统中就是一段内存,GDI的工作就是把需要输出的内容放入到该段内存的某个位置。我们从基本的点(像素点)和基本的缓冲区操作开始。1 基本知识1.1点的格式 对于不同的LCD来讲,FrameBuffer的二进制格式不一样,并且可以分为两部转载 2011-11-17 10:23:08 · 769 阅读 · 0 评论 -
Android核心分析(28)-----Android GDI之Surface&Canvas
Surface&Canvas Canvas为在画布的意思。Android上层的作图几乎都通过Canvas实例来完成,其实Canvas更多是一种接口的包装。drawPaints ,drawPoints,drawRect,drawBitmap ...1 Canvas与Surface之间本质关系 对于本节,我们不去研究Skia图形引擎本身,我们需要了解的我们的所做的图形转载 2011-11-16 20:24:37 · 533 阅读 · 0 评论 -
Android中的FrameBuffer
FrameBuffer 在Android中并不像在其它GUI那样直观,抽象的层次比较多,加上GUI的更新是通过OpenGLES来做的。所以让人很难搞清GUI更新的整个流程,最近要准备一个讲稿,所以花了一些去研究,这里做点笔记供大家参考,源代码是基于高通平台的,这些代码在网上都可以下载。FrameBuffer相关的组件1.SurfaceFlinger是一个服务,主要是负责合成各窗口的Su转载 2011-11-16 18:53:32 · 1098 阅读 · 0 评论 -
Android 的OpenGL ES与EGL
1 名词解释 OpenGL ES (OpenGL for Embedded Systems,以下简称OpenGL) OpenGL 三维图形 API 的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。该API由Khronos集团定义推广,Khronos是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准。EGLEGL™ 是介于诸如OpenGL 或OpenVG的Khr转载 2011-11-16 19:05:36 · 1768 阅读 · 0 评论 -
gralloc
2011.03.01系统中有好几个gralloc的模块,分别是:/hardware/libhardware/modules/gralloc//hardware/msm7k/libgralloc-qsd8k//hardware/msm7k/libgralloc/但实际上调用的是第二个模块,通过logcat可以查到.gralloc被编译成模块gralloc.$(TARGET转载 2011-11-17 19:01:19 · 1609 阅读 · 0 评论 -
探讨android图片资源的抖动处理和格式转换
android下图片资源从源图到显示需要经历三个步骤:使用aapt工具处理,图片解码,绘制。让我们按顺序一一探讨。android开发指南对位图资源有如下描述:Bitmap files may be automatically optimized with lossless image compression by the aapt tool during the build proce转载 2011-11-18 18:18:24 · 1847 阅读 · 1 评论 -
RGB888->RGB565
今天在REVIEW代码的时候,发现了这样一个宏定义:#define COLOR_TO_MTK_COLOR_SIMUL(color) ((((color) >> 19) & 0x1f) |((((color) >> 10) & 0x3f)转载 2011-11-22 16:00:40 · 1568 阅读 · 0 评论 -
Android 文件系统移植到 2440 未完
对于2440, 目前android并未完全支持armv4t。 如要运行在2440上需要修改一些汇编相关的代码。 所幸已有很多人做过这个工作,目前我是在freerunner这个基础上做的。主页是http://code.google.com/p/android-on-freerunner/, 可以用git下载代码(这个网站上有地址),这里的wiki上就关于如何build的文档。 目前的一些转载 2012-03-30 22:23:25 · 1807 阅读 · 0 评论