O que é uma janela Android?
Activity
, que é a tela que você vê.
Alguém me pode dizer o que é uma janela no Android? só temos um ou vários deles.
4 answers
Podes ter muitos deles, mas normalmente não de forma sincronizada. Para pedir informações adicionais, você pode chamar uma janela, ou disparar uma intenção para outra atividade.
Para mais informaçõesvisite este link .
[UPDATE] (deixe-me partilhar o que aprendi sobre {[[0]} após a resposta original)
Numa frase, AWindow
é uma área rectangular que tem uma hierarquia de visualização. Os rectângulos coloridos em baixo da imagem são janelas.
Como pode ver, pode haver várias janelas numa só tela, eO WindowManager gere-as. A lista de janelas no ecrã actual pode ser obtida através da hierarquia Visualizador , ou adb shell dumpsys window
.
Lista de janelas no exemplo do Visualizador de Hierarquia :
(abaixo está a resposta original)
Tinha a mesma pergunta e espero que isto vos possa ajudar. De acordo com a documentação de desenvolvimento do Android,
E a Dianne Hackborn, que é uma engenheira de estrutura Android, deu algumas definiçõesaqui . Ela disse:"cada atividade é dada uma janela na qual desenhar sua interface de usuário."
Além disso, encontrei outras informações da apresentação do Romain Guy. fale em San Francisco Android user group de aqui, e baixe slides completos de aqui)Uma janela é basicamente como se você pensasse em uma janela no desktop. It tem uma única superfície em que o conteúdo da janela é renderizado. Uma aplicação interage com o Gestor de janelas para criar janelas; o Gestor de janelas cria uma superfície para cada janela e dá-a à aplicação de desenho. A aplicação pode desenhar o que quiser na superfície; para o Gestor de janelas é apenas um rectângulo opaco.
Uma superfície é um objecto mantendo os pixels que estão a ser compilados para o ecrã. Todas as janelas que vê no ecrã (uma janela, a sua actividade de ecrã completo, a barra de Estado) têm a sua própria superfície para onde se desenha, e o Flinger de superfície torna-as para a visualização final na sua ordem Z correcta. Uma superfície normalmente tem mais de um buffer (geralmente dois) para fazer a renderização dupla-buffered: a aplicação pode desenhe o seu próximo estado UI enquanto o indicador de superfície compõe o ecrã usando o último buffer, sem ter de esperar que a aplicação termine o desenho.
Uma vista é um elemento UI interactivo dentro de uma janela. Uma janela tem uma única hierarquia de visualização ligada a ela, que fornece todo o comportamento da janela. Sempre que a janela precisar de ser redesenhada (tal como porque uma visão se invalidou), isto é feito na superfície da janela. A superfície está bloqueada, o que devolve uma tela que pode ser usada para atraí-la. Um trajeto de desenho é feito na hierarquia, entregando a tela para cada vista para desenhar a sua parte da IU. Uma vez feito, a superfície é desbloqueada e postada de modo que o buffer desenhado é trocado para o primeiro plano para então ser composto para a tela pelo Flinger de superfície.
Então, resumindo ... :
- Um
Activity
tem uma janela (na qual desenha a sua interface de utilizador), - a
Window
tem uma únicaSurface
e uma única hierarquia de visualização ligada a ela, - a
Surface
incluiViewGroup
que contém opiniões.
Application --->
Activity --->
Window Manager --->
Window --->
Surface --->
Canvas --->
View Root --->
View Group --->
View --->
Bitmap/Open GL panel --->
Current Surface Buffer --->
Surface Flinger --->
Screen