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. 실시간으로 그리기 어렵다.
* 대안으로 등장한 녀석이 SurfaceView
SurfaceView 의 경우 확대, 축소, 비트맵 캡쳐가 안된다.
* 또 다시 대안으로 등장한 녀석이 GLSurfaceView
GLSurfaceView 는 빨리 전환하게 되면 죽는다.
* 또 다른 대안은 RenderScript
RenderScript 는 젤리빈부터 deprecated 되었다.
TextureView 의 등장
SurfaceTexture, TextureView, SurfaceTextureListener 가 한 팀( Set )으로 작동.
이 중 SurfaceTexture 는 framework 가 관리한다.
TextureView 는 일반 View 처럼 사용한다.
Listener 만 잘 override 해서 구현하면 사용이 간편하다.
TextureView 는 Camera 나 OpenGL 에 주로 사용한다.
출처: http://aroundck.tistory.com/2075 [돼지왕 왕돼지 놀이터]
'Android' 카테고리의 다른 글
Android Drawing Process 1 (0) | 2019.04.15 |
---|---|
안드로이드 터치 이벤트 흐름 (0) | 2017.12.19 |
Android Camera2 API Step By Step : Preview (0) | 2017.11.26 |
Async작업을 위한 handler, looper, Thread! (0) | 2017.10.25 |
안드로이드 기초 쌓기 - 해상도와 DP (0) | 2017.07.13 |