Android 그래픽 시스템의 발전 과정.
허니컴 이전에는 Surface Flinger 에서만 GPU 사용
허니컴이 Tablet 용 Framework 이다보니 늘어난 pixel 에 대응하기 위해서 GPU 사용이 필요하게 됨.
onDraw() 이후에 실제 그리는 부분을 CPU 에서 하는 것이 아니라 이제는 GPU 에서 하게 됨.
기존 View 는 한 View 가 invalidate 가 되면, dirty check를 한 후, parent 로 올라가면서 invalidate 를 쭉 호출하게 되고, 다시 dirty check 된 녀석까지 draw 를 수행하여 그리게 된다.
* 기존 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 에 주로 사용한다.
참고 자료
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[android] HttpResponseCache library (0) | 2013.07.20 |
---|---|
[android] Webview 에 custom font 적용하기 (8) | 2013.07.18 |
[android] Strict Mode 에 대해 알아보자. (0) | 2013.07.17 |
[andoid] AsyncTask vs. Handler + Thread (0) | 2013.07.16 |
[android] actionbar 어떻게 사용하고, 왜 사용하는가? (0) | 2013.07.15 |
댓글