android graphic classes
来源:互联网 发布:印度不服中国 知乎 编辑:程序博客网 时间:2024/06/05 16:17
android graphic相关的class很多,如果不搞清楚每个class的作用,在使用的时候经常搞不清楚怎么用,到底用哪个class,这里写一下常见的类的说明。
BufferQueue
native class。
BufferQueue是最重要的一个class,它维护了一个graphic buffer的list,并连接了producer和consumer两端。BufferQueue通过Gralloc hal来申请graphic buffer。
producer端使用dequeueBuffer()得到buffer,使用后,调用queueBuffer()将buffer还给BufferQueue。
consumer端使用acquireBuffer()获得buffer,使用后,调用releaseBuffer()来释放buffer给BufferQueue。
Surface
java和native的Surface是一样的意义,是Bufferqueue的producer端的包装。
一般通过lockCanvas()来进行dequeueBuffer操作,unlockCanvasAndPost()来进行queueBuffer操作。
SurfaceHolder
java class。
SurfaceHolder初始设计的用意是来保留app level的一些信息,比如format,dimensions。实际上它现在不是很重要,但是因为这个api存在很久了,所以一直被保留着。大多数时候,我们都是直接从surfaceholder中getsurface去使用。
SurfaceView
java class。
SurfaceView是一个有自己的surface的view,它直接让SurfaceFlinger为他创建了一个window( layer ),所以它也是一个producer的角色。
SurfaceView 绘制的内容,是单独提交给SurfaceFlinger去输出的。
SurfaceTexture
java class。
SurfaceTexture是bufferqueue的owner & consumer的角色。app建立一个SurfaceTexture实际上创建了一个BufferQueue,并且作为BufferQueue的Consumer,由producer传入的数据,会被绑定到texture中。
当有新的buffer可用的时候,onFrameAvaiable() callback被触发,调用updateTexImage()来进行acquireBuffer()和releaseBuffer(),并将内容绑定到texture中去。
一般用于app去接受buffer,比如set给camera,通过SurfaceTexture可以获得到camera的数据。
GLConsumer
natvie class。
GLConsumer是SurfaceTexture在natvie对应的对象。
TextureView
java class。
TextureView是一个拥有SurfaceTexture的View,它通过SurfaceTexture获得要draw的数据,然后按照一般view绘图的方式将数据draw出去。
GLSurfaceView
java class。
继承SurfaceView,用来帮助进行gles的操作。这个class帮助做了一些gles操作所需要的初始动作,比如建立GLContext,建立GLWindowSurface,app只需要在实现它的onDrawFrame()函数。
ANativeWindow
native class。
ANativeWindow和Surface是一样的作用,一样作为BufferQueue的producer端来使用。
BufferQueue
native class。
BufferQueue是最重要的一个class,它维护了一个graphic buffer的list,并连接了producer和consumer两端。BufferQueue通过Gralloc hal来申请graphic buffer。
producer端使用dequeueBuffer()得到buffer,使用后,调用queueBuffer()将buffer还给BufferQueue。
consumer端使用acquireBuffer()获得buffer,使用后,调用releaseBuffer()来释放buffer给BufferQueue。
Surface
java和native的Surface是一样的意义,是Bufferqueue的producer端的包装。
一般通过lockCanvas()来进行dequeueBuffer操作,unlockCanvasAndPost()来进行queueBuffer操作。
SurfaceHolder
java class。
SurfaceHolder初始设计的用意是来保留app level的一些信息,比如format,dimensions。实际上它现在不是很重要,但是因为这个api存在很久了,所以一直被保留着。大多数时候,我们都是直接从surfaceholder中getsurface去使用。
SurfaceView
java class。
SurfaceView是一个有自己的surface的view,它直接让SurfaceFlinger为他创建了一个window( layer ),所以它也是一个producer的角色。
SurfaceView 绘制的内容,是单独提交给SurfaceFlinger去输出的。
SurfaceTexture
java class。
SurfaceTexture是bufferqueue的owner & consumer的角色。app建立一个SurfaceTexture实际上创建了一个BufferQueue,并且作为BufferQueue的Consumer,由producer传入的数据,会被绑定到texture中。
当有新的buffer可用的时候,onFrameAvaiable() callback被触发,调用updateTexImage()来进行acquireBuffer()和releaseBuffer(),并将内容绑定到texture中去。
一般用于app去接受buffer,比如set给camera,通过SurfaceTexture可以获得到camera的数据。
GLConsumer
natvie class。
GLConsumer是SurfaceTexture在natvie对应的对象。
TextureView
java class。
TextureView是一个拥有SurfaceTexture的View,它通过SurfaceTexture获得要draw的数据,然后按照一般view绘图的方式将数据draw出去。
GLSurfaceView
java class。
继承SurfaceView,用来帮助进行gles的操作。这个class帮助做了一些gles操作所需要的初始动作,比如建立GLContext,建立GLWindowSurface,app只需要在实现它的onDrawFrame()函数。
ANativeWindow
native class。
ANativeWindow和Surface是一样的作用,一样作为BufferQueue的producer端来使用。
ANativeWindow是属于EGL的组成部分。
-------------------------------------------
by sky 0 0
- android graphic classes
- Graphic --- Android
- Graphic size in Android
- android.graphic.Path
- android graphic笔记
- Android Graphic Stacks
- Android 4.4 Graphic Architecture
- Android Graphic :OpenGL|ES
- Android Graphic - Overview
- Android Graphic 翻译系列
- Android 4.4 Graphic Architecture
- Android 4.4 Graphic Architecture
- Android Graphic SurfaceFlinger 疑难解答
- Android Graphic SurfaceFlinger分析
- Android的Graphic System
- Android graphic 架构
- Android graphic path
- openGL as android graphic engine
- 在Windows中删除/切换已建立的Samba共享连接
- 自定义控件之CascadeLayout(一)
- java poi组件Excel的导入导出
- Java RandomAccessFile用法(转载)
- DirectX 11游戏编程学习笔记之2: 第1章Vector Algebra(向量代数)
- android graphic classes
- Chrome37+代替window.showModalDialog模态窗口方法
- 区分ubuntu 32bit or 64bit
- easy ui layout 高度 宽度自适应浏览器
- gradle 教程学习笔记(一)
- Matlab 随机数 小结
- hive安装与配置
- no module named pycurl 解决办法
- 棕最桌椎足妆子状篆篆孜坠子准做酌赚桩