37
좋은 , 나쁜 , 이상한

좋은 뷰, 나쁜 뷰, 이상한 뷰

Embed Size (px)

DESCRIPTION

TextureView, GLSurfaceView, SurfaceView, Renderscript

Citation preview

Page 1: 좋은 뷰, 나쁜 뷰, 이상한 뷰

좋은 뷰, 나쁜 뷰, 이상한 뷰

Page 2: 좋은 뷰, 나쁜 뷰, 이상한 뷰

김용욱 (@dalinaum)@dalinaum http://goo.gl/xDlc6

Page 3: 좋은 뷰, 나쁜 뷰, 이상한 뷰

GDG Android Korea

http://goo.gl/Og4da

Page 4: 좋은 뷰, 나쁜 뷰, 이상한 뷰

허니컴 이전에는 합성에만 GPU를 사용 (Surface Flinger)

Page 5: 좋은 뷰, 나쁜 뷰, 이상한 뷰

허니컴 이후로 늘어난 픽셀

Page 6: 좋은 뷰, 나쁜 뷰, 이상한 뷰

부족한 CPU 파워 (버스 성능)

Page 7: 좋은 뷰, 나쁜 뷰, 이상한 뷰
Page 8: 좋은 뷰, 나쁜 뷰, 이상한 뷰
Page 9: 좋은 뷰, 나쁜 뷰, 이상한 뷰
Page 10: 좋은 뷰, 나쁜 뷰, 이상한 뷰

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

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

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

기존 View의 문제

Page 11: 좋은 뷰, 나쁜 뷰, 이상한 뷰

http://sozu.tistory.com/35

SurfaceView: Hole Punching

Page 12: 좋은 뷰, 나쁜 뷰, 이상한 뷰

http://androidhuman.tistory.com/307

Page 13: 좋은 뷰, 나쁜 뷰, 이상한 뷰
Page 14: 좋은 뷰, 나쁜 뷰, 이상한 뷰

홀 펀칭이기 때문에 사용할 수 없어요.확대, 축소, 비트맵 캡쳐? 그게 뭐죠?

Page 15: 좋은 뷰, 나쁜 뷰, 이상한 뷰

http://anddev.tistory.com/18

Page 16: 좋은 뷰, 나쁜 뷰, 이상한 뷰

HC이전에는 화면전환하면 새로 준비하는 겁니다.

ICS에서는 GLSurfaceView 빨리 전환하다가는 죽는겁니다. View 새로 만드는 겁니다.

Page 17: 좋은 뷰, 나쁜 뷰, 이상한 뷰
Page 18: 좋은 뷰, 나쁜 뷰, 이상한 뷰

User-level GLSurfaceView

GLSurfaceView는 포팅할 수 있어요.귀찮으시죠?....

https://gist.github.com/3890965패키지 명은 바꾸고 쓰세요...

Page 19: 좋은 뷰, 나쁜 뷰, 이상한 뷰

Renderscript?

Page 20: 좋은 뷰, 나쁜 뷰, 이상한 뷰
Page 21: 좋은 뷰, 나쁜 뷰, 이상한 뷰

궁금하신 분들을 위해

https://github.com/dalinaum/MyHelloComputehttps://github.com/dalinaum/Renderscript-Carouselhttps://github.com/dalinaum/Renderscript-PageCurlhttps://github.com/dalinaum/RenderScriptDemoshttps://github.com/dalinaum/Bubble-Popshttps://github.com/dalinaum/RenderScript101

젤리빈에서 폐기되었다는 비밀(?)은 우리끼리만 간직하도록 해요.

Page 22: 좋은 뷰, 나쁜 뷰, 이상한 뷰

TextureView: 서피스뷰의 대안

Page 23: 좋은 뷰, 나쁜 뷰, 이상한 뷰

SurfaceTexture TextureView SurfaceTextureListener

Page 24: 좋은 뷰, 나쁜 뷰, 이상한 뷰

SurfaceTexture TextureView SurfaceTextureListener

티파니 서피스텍스쳐는 저희가 직접 관리하지 않아요.

Page 25: 좋은 뷰, 나쁜 뷰, 이상한 뷰

SurfaceTexture TextureView SurfaceTextureListener

리스너만 저희가 오버라이드해서 구현하고

Page 26: 좋은 뷰, 나쁜 뷰, 이상한 뷰

SurfaceTexture TextureView SurfaceTextureListener

텍스쳐 뷰는 속성 값들만 바꿔주면 됩니다.

Page 27: 좋은 뷰, 나쁜 뷰, 이상한 뷰
Page 28: 좋은 뷰, 나쁜 뷰, 이상한 뷰

SurfaceTexture는 허니컴에 도입

But....

Page 29: 좋은 뷰, 나쁜 뷰, 이상한 뷰
Page 30: 좋은 뷰, 나쁜 뷰, 이상한 뷰
Page 31: 좋은 뷰, 나쁜 뷰, 이상한 뷰
Page 32: 좋은 뷰, 나쁜 뷰, 이상한 뷰
Page 33: 좋은 뷰, 나쁜 뷰, 이상한 뷰
Page 34: 좋은 뷰, 나쁜 뷰, 이상한 뷰
Page 35: 좋은 뷰, 나쁜 뷰, 이상한 뷰
Page 36: 좋은 뷰, 나쁜 뷰, 이상한 뷰

OpenGL

Page 37: 좋은 뷰, 나쁜 뷰, 이상한 뷰

TextureView Demos

https://github.com/dalinaum/TextureViewDemo

http://goo.gl/6QSHXOpenGL