본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[android] TextureView 에 대한 이야기

by 돼지왕 왕돼지 2013. 7. 18.
반응형


[android] TextureView 에 대한 이야기




Android 그래픽 시스템의 발전 과정.


허니컴 이전에는 Surface Flinger 에서만 GPU 사용


허니컴이 Tablet 용 Framework 이다보니 늘어난 pixel 에 대응하기 위해서 GPU 사용이 필요하게 됨.

onDraw() 이후에 실제 그리는 부분을 CPU 에서 하는 것이 아니라 이제는 GPU 에서 하게 됨.


[android] TextureView 에 대한 이야기


기존 View 는 한 View 가 invalidate 가 되면, dirty check를 한 후, parent 로 올라가면서 invalidate 를 쭉 호출하게 되고, 다시 dirty check 된 녀석까지 draw 를 수행하여 그리게 된다.


[android] TextureView 에 대한 이야기


* 기존 View 의 문제

1. UI 스레드에서만 그릴 수 있다.

2. View 의 계층 구조를 타야 한다.

3. 실시간으로 그리기 어렵다.



* 기존 View 의 문제를 해결하기 위한 대안으로 등장한 녀석이 SurfaceView

SurfaceView 의 경우 확대, 축소, 비트맵 캡쳐가 안된다.


* 또 다시 대안으로 등장한 녀석이 GLSurfaceView

GLSurfaceView 는 빨리 전환하게 되면 죽는다.


* 또 다른 대안은 RenderScript

RenderScript 는 젤리빈부터 deprecated 되었다.




TextureView 의 등장


SurfaceTexture, TextureView, SurfaceTextureListener 가 한 팀( Set )으로 작동.

이 중 SurfaceTexture 는 framework 가 관리한다.

TextureView 는 일반 View 처럼 사용한다.

Listener 만 잘 override 해서 구현하면 사용이 간편하다.


TextureView 는 Camera 나 OpenGL 에 주로 사용한다.




참고 자료


https://docs.google.com/presentation/d/1ZEcTFfAVvrzXnaR7XlBQGrbF5vhgDfqBRT0ai7AynVU/edit?pli=1#slide=id.p



반응형

댓글