Что такое окно Android?

Что такое Window в Android?

Я думал, что самый верхний уровень в Android называется Activity, который является экраном, который вы видите.

Может кто-нибудь сказать мне, что такое окно в Android? у нас есть только один или несколько из них.

4 ответа

Решение

Активность - это то, что вы бы назвали окном.

С технической точки зрения, Деятельность создает Окно для вас.

Их может быть много, но обычно не синхронно. Чтобы запросить дополнительную информацию, вы можете позвонить в диалог или запустить намерение для другого действия.

Для получения дополнительной информации посетите эту ссылку.

[ОБНОВЛЕНИЕ] (Позвольте мне поделиться тем, что я узнал о Window после оригинального ответа)

В одном предложении А Window прямоугольная область, которая имеет одну иерархию представлений. Цветные прямоугольники на изображении ниже являются окнами.

Как видите, на одном экране может быть несколько окон, и WindowManager управляет ими. Список окон на текущем экране можно получить с помощью средства просмотра иерархии или adb shell dumpsys window,

Список окон в примере HierarchyViewer:

(Ниже оригинальный ответ)


У меня был тот же вопрос, и я надеюсь, что это поможет вам, ребята.

Согласно документации разработчика Android,

"Каждому действию дается окно, в котором можно нарисовать свой пользовательский интерфейс".

и Дайан Хэкборн, которая является инженером фреймворка Android, дала здесь некоторые определения. Она сказала,

Окно в основном похоже на окно на рабочем столе. Он имеет единственную поверхность, в которой отображается содержимое окна. Приложение взаимодействует с диспетчером окон для создания окон; Менеджер окон создает поверхность для каждого окна и передает ее приложению для рисования. Приложение может рисовать все что угодно в Surface; для оконного менеджера это просто непрозрачный прямоугольник.

Поверхность - это объект, содержащий пиксели, которые компонуются на экране. Каждое окно, которое вы видите на экране (диалоговое окно, ваша полноэкранная активность, строка состояния), имеет свою собственную поверхность, к которой оно обращается, и Surface Flinger отображает их на конечном экране в правильном Z-порядке. Поверхность, как правило, имеет более одного буфера (обычно два) для рендеринга с двойной буферизацией: приложение может рисовать свое следующее состояние пользовательского интерфейса, в то время как бегунок поверхности создает экран, используя последний буфер, без необходимости ждать завершения приложения. Рисунок.

Вид - это интерактивный элемент пользовательского интерфейса внутри окна. К окну прикреплена единая иерархия представления, которая обеспечивает все поведение окна. Всякий раз, когда окно необходимо перерисовать (например, из-за того, что представление аннулировало себя), это делается в Поверхность окна. Поверхность заблокирована, что возвращает холст, который можно использовать для рисования в нем. Обход рисования выполняется по иерархии, передавая холст для каждого представления, чтобы нарисовать свою часть пользовательского интерфейса. После этого Поверхность разблокируется и размещается так, что только что нарисованный буфер переключается на передний план, чтобы затем скомпоновать его с экраном с помощью Surface Flinger.

Кроме того, я нашел некоторую другую информацию из презентации Ромена Гая ( отсюда его выступление в группе пользователей Android в Сан-Франциско и его полные слайды можно посмотреть здесь)

Итак, в двух словах:

  • Activity имеет окно (в котором он рисует свой пользовательский интерфейс),
  • Window имеет один Surface и единственная иерархия представления, прикрепленная к нему,
  • Surface включают ViewGroup который держит взгляды.

Я хотел бы сказать вкратце:

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

Android: окно, поверхность, холст и растровое изображение Вот очень простой и простой концептуальный обзор того, как происходит взаимодействие между Окном, Поверхностью, Холстом и Растровым изображением.

Другие вопросы по тегам