본문 바로가기

Android/View

안드로이드/Android 안드로이드 뷰 시스템의 대략적인 개념

안드로이드/Android 안드로이드 뷰 시스템의 대략적인 개념




안드로이드 뷰 시스템의 대략적인 개념 입니다.


Android Graphic System을 한바퀴 돌아봐야 할 타이밍이다.


결론먼저...

1) window manager는 Window를 요청하는application에게 Surface를 생성해준다...

*윈도우즈 매니져는 네이티브 윈도우 시스템과 surface를 만들어준다. (egl을이용하여 skia나 opengl을 쓰기에 적합하게..)

2) view system은 Windows의 행동을 지원하는 시스템(tree나..list box같은..)으로 단일 view 계층을 가진다.

3) view 구조에서 새롭게 그릴 것이 있을때 (invalidate시..) , view 계층을 따라 surface안에서 새롭게 그려진다.

4) canvas를 이용하여 surface에 view를 그린다.

- canvas는 surface에 그리는 방법을 알고 있다(bitmap, glcontainer...etc..)

5) Surface manager가 Surface들을 레이어로 취급하며 합성한다....(z-order)

* HWC는 SurfaceFlinger의 job을 나누어 담당할 수 있는 레이어로 HAL의 사용여부와 IP의 종류는 사용자 마음.

6) glSurfaceView는 백 스래드에서 ui를 업데이트 하는 view타입이다. - 그릴게 많아서!

7) 여기에 rendering을 하기 위해서는 glRenderer 가 필요하다...


일단 이정도....




출처 : http://blog.daum.net/rookiejj/91






결론은 각각의 어플리케이션을 생성하면 (하위) Window -> Surface -> View (상위) 만들어지는 구조라고 생각 하시면 됩니다.