본문 바로가기

카테고리 없음

[Android] Window


What is Window?

하나의 뷰 계층을 가진 직사각형 영역, 하단의 직사각형들이 각각의 윈도우 영역




What are Characteristics of Window?

1. Activity에 의해 생성됨
2. WindowManager에 의해 관리됨.
3. 각각의 Activity는 User Interface를 그릴 수 있는 하나의 윈도우가 주어짐
4. Window의 Contents를 그릴 수 있는 하나의 Surface를 가짐
5. Surface는 view들을 가지고 있는 ViewGroup을 포함한다.



How interaction happens among the Window, Surface, Canvas, and Bitmap?


1. Suface는 lock이 되어있어서, 그 안에 그릴 수 있는 Canvas를 return
2. 원 또는 박스 등 그리는 방법에 대한 모든 로직은 Canvas 안에 포함
3. Canvas는 Surface에 쓸 수 없음
4. Canvas는 Bitmap 또는 열린 GL container에 그림
5. Bitmap은 만들어지고, Surface의 current drawing buffer를 가리킴. return된 Canvas에 이 Bitmap을 그려짐
6. Window는 Canvas가 붙어있는 view 계층을 가짐
7. draw 탐색은 view 계층 아래에서 수행되며, 각각의 뷰에 UI 일부분을 그리기 위해 이 Canvas를 전달
8. 완료되면, Surface는 unlock이 되고 게시가 됨
9. Surface Flinger는 그려진 버퍼를 사용하여 screen을 구성함


How is Hierarchy?

Application --->
  Activity --->
    Window Manager --->
      Window --->
        Surface --->
          Canvas --->
            View Root --->
              View Group --->
                View --->
                  Bitmap/Open GL panel --->
                    Current Surface Buffer --->
                      Surface Flinger --->
                        Screen


Reference