Android 창이 란 무엇입니까?
WindowAndroid에서 무엇입니까 ?
나는 안드로이드의 최상위 레벨이 Activity당신이 보는 화면 인 이라고 생각했다 .
누군가 Android의 Window가 무엇인지 말해 줄 수 있습니까? 하나 또는 여러 개만 가지고 있습니까?
활동은 창이라고 부르는 것입니다.
기술적으로 말하면 활동이 창을 만듭니다.
많은 수를 가질 수 있지만 일반적으로 동기식은 아닙니다. 추가 정보를 요청하려면 대화 상자를 호출하거나 다른 활동에 인 텐트를 실행할 수 있습니다.
자세한 내용 은이 링크 를 참조하십시오 .
[업데이트] ( Window원래 답변 후 배운 내용 을 공유 )
한 문장에서 A 는 하나의 뷰 계층이있는 직사각형 영역입니다 . 아래 이미지의 컬러 사각형은 창입니다.Window

보시다시피 한 화면에 여러 개의 창이있을 수 있으며 WindowManager가이를 관리합니다. 현재 화면에서 창 목록을 통해 얻을 수 있습니다 계층 구조 뷰어 , 또는 adb shell dumpsys window.
Hierarchy Viewer 예제의 창 목록 : 
(아래는 원래 답변입니다)
저도 같은 질문을했는데 이것이 여러분에게 도움이되기를 바랍니다.
에 따르면 안드로이드 개발자 용 문서 ,
"각 활동에는 사용자 인터페이스를 그릴 수있는 창이 제공됩니다."
Android 프레임 워크 엔지니어 인 Dianne Hackborn 이 여기에 몇 가지 정의를 제공 했습니다 . 그녀가 말했다,
창 은 기본적으로 바탕 화면의 창을 생각하는 것과 같습니다. 그것은 하나의 표면이 윈도우의 내용이 렌더링되는합니다. 응용 프로그램은 창 관리자와 상호 작용하여 창을 만듭니다. 창 관리자는 각 창에 대한 표면을 생성하고 그리기를 위해 응용 프로그램에 제공합니다. 응용 프로그램은 Surface에서 원하는 것을 그릴 수 있습니다. 창 관리자에게 그것은 단지 불투명 한 직사각형 일뿐입니다.
Surface 는 화면에 합성되는 픽셀을 포함 하는 개체입니다. 화면에 표시되는 모든 창 (대화 상자, 전체 화면 활동, 상태 표시 줄)에는 그려지는 고유 한 표면이 있으며 Surface Flinger는이를 올바른 Z 순서로 최종 디스플레이에 렌더링합니다. 표면에는 일반적으로 이중 버퍼링 렌더링을 수행하기위한 둘 이상의 버퍼 (일반적으로 두 개)가 있습니다. 애플리케이션이 완료 될 때까지 기다릴 필요없이 표면 플린 저가 마지막 버퍼를 사용하여 화면을 합성하는 동안 애플리케이션은 다음 UI 상태를 그릴 수 있습니다. 그림.
보기는 창 내부의 대화 형 UI 요소입니다. 창에는 창의 모든 동작을 제공 하는 단일 뷰 계층이 연결되어 있습니다. 창을 다시 그려야 할 때마다 (예 : 뷰가 자체적으로 무효화 되었기 때문에), 이것은 창의 Surface에서 수행됩니다 . Surface가 잠겨 있으며 캔버스를 반환하는 데 사용할 수 있습니다. 그리기 순회는 계층 구조를 따라 수행되며 각 뷰에 대해 Canvas를 전달하여 UI의 일부를 그립니다. 완료되면 Surface가 잠금 해제되고 게시되어 방금 그린 버퍼가 전경으로 스왑 된 다음 Surface Flinger에 의해 화면에 합성됩니다.
또한 Romain Guy 의 프레젠테이션 에서 다른 정보를 찾았습니다 ( 여기 에서 San Francisco Android 사용자 그룹에서 그의 강연을 볼 수 있으며 여기 에서 전체 슬라이드를 다운로드 할 수 있습니다 ).

그래서 간단히 말해서 :
- 에
Activity창 (사용자 인터페이스를 그리는 창)이 있습니다. - a
Window에는 단일Surface및 단일 뷰 계층이 연결되어 있습니다. - 보기를 보유 하는
Surface포함ViewGroup.
다음은 Window, Surface, Canvas 및 Bitmap간에 상호 작용이 발생하는 방식에 대한 매우 기본적이고 간단한 개념적 개요입니다.
간단히 말하고 싶습니다.
Application --->
Activity --->
Window Manager --->
Window --->
Surface --->
Canvas --->
View Root --->
View Group --->
View --->
Bitmap/Open GL panel --->
Current Surface Buffer --->
Surface Flinger --->
Screen
참고 URL : https://stackoverflow.com/questions/9451755/what-is-an-android-window
'IT Share you' 카테고리의 다른 글
| 알람을 재설정하기 위해 Android 애플리케이션이 업그레이드되었는지 어떻게 알 수 있습니까? (0) | 2020.11.09 |
|---|---|
| 암호화 보안 난수 생성기는 어떻게 작동합니까? (0) | 2020.11.09 |
| 배열을 반복하고 JavaScript에서 요소를 제거하는 방법 (0) | 2020.11.09 |
| wget을 사용하여 설치된 Docker를 제거하는 방법은 무엇입니까? (0) | 2020.11.09 |
| 푸시하면 개인 이메일 주소 오류가 게시됩니다. (0) | 2020.11.09 |