<application>

sintaxe:
<application android:allowTaskReparenting=["true" | "false"]
                 android:allowBackup=["true" | "false"]
                 android:allowClearUserData=["true" | "false"]
                 android:backupAgent="string"
                 android:backupInForeground=["true" | "false"]
                 android:banner="drawable resource"
                 android:debuggable=["true" | "false"]
                 android:description="string resource"
                 android:directBootAware=["true" | "false"]
                 android:enabled=["true" | "false"]
                 android:extractNativeLibs=["true" | "false"]
                 android:fullBackupContent="string"
                 android:fullBackupOnly=["true" | "false"]
                 android:hasCode=["true" | "false"]
                 android:hardwareAccelerated=["true" | "false"]
                 android:icon="drawable resource"
                 android:isGame=["true" | "false"]
                 android:killAfterRestore=["true" | "false"]
                 android:largeHeap=["true" | "false"]
                 android:label="string resource"
                 android:logo="drawable resource"
                 android:manageSpaceActivity="string"
                 android:name="string"
                 android:networkSecurityConfig="xml resource"
                 android:permission="string"
                 android:persistent=["true" | "false"]
                 android:process="string"
                 android:restoreAnyVersion=["true" | "false"]
                 android:requiredAccountType="string"
                 android:resizeableActivity=["true" | "false"]
                 android:restrictedAccountType="string"
                 android:supportsRtl=["true" | "false"]
                 android:taskAffinity="string"
                 android:testOnly=["true" | "false"]
                 android:theme="resource or theme"
                 android:uiOptions=["none" | "splitActionBarWhenNarrow"]
                 android:usesCleartextTraffic=["true" | "false"]
                 android:vmSafeMode=["true" | "false"] >
        . . .
    </application>
contida em:
<manifest>
pode conter:
<activity>
<activity-alias>
<meta-data>
<service>
<receiver>
<provider>
<uses-library>
descrição:
A declaração do aplicativo. Esse elemento contém subelementos que declaram cada um dos componentes do aplicativo e tem atributos que podem afetar todos os componentes. Muitos desses atributos, como icon, label, permission, process, taskAffinity e allowTaskReparenting, definem valores padrão para os atributos correspondentes dos elementos do componente. Outros, como debuggable, enabled, description e allowClearUserData, definem valores para o aplicativo como um todo e não podem ser modificados pelos componentes.
atributos
android:allowTaskReparenting
Se as atividades definidas pelo aplicativo podem ou não ser transferidas da tarefa que as iniciou para a tarefa com a qual elas têm afinidade quando essa tarefa for trazida para a frente: "true" se puderem ser transferidas, e "false" se precisarem permanecer com a tarefa na qual começaram. O valor padrão é "false".

O elemento <activity> tem o próprio atributo allowTaskReparenting, que pode modificar o valor definido aqui. Veja esse atributo para mais informações.

android:allowBackup
Permitir ou não que o aplicativo participe da infraestrutura de backup e restauração. Se o atributo for definido como falso, nenhum backup ou restauração do aplicativo será realizado, mesmo por um backup completo do sistema que faria todos os dados do aplicativo serem salvos via adb. O valor padrão desse atributo é verdadeiro.
android:allowClearUserData

Permitir ou não que o aplicativo redefina os dados do usuário. Esses dados incluem sinalizações, por exemplo, se o usuário viu dicas introdutórias, bem como configurações e preferências personalizáveis pelo usuário. O valor padrão desse atributo é true.

Observação: somente apps que fazem parte da imagem do sistema podem declarar esse atributo explicitamente. Os apps de terceiros não podem incluir esse atributo nos arquivos do manifesto.

Para ver mais informações, consulte a seção Restaurar dados do usuário em novos dispositivos.

android:backupAgent
Nome da classe que implementa o agente de backup do aplicativo, uma subclasse de BackupAgent. O valor do atributo precisa ser um nome de classe totalmente qualificado (por exemplo, "com.example.project.MyBackupAgent"). No entanto, como uma abreviação, se o primeiro caractere do nome for um ponto (por exemplo, ".MyBackupAgent"), ele será anexado ao nome do pacote especificado no elemento <manifest>.

Não há um padrão. O nome precisa ser especificado.

android:backupInForeground
Indica que as operações de Backup automático podem ser realizadas nesse app, mesmo se ele estiver em um estado equivalente ao primeiro plano. O sistema encerra um app durante a operação de Backup automático. Portanto, use esse atributo com cuidado. A definição dessa sinalização como verdadeira pode afetar o comportamento do app enquanto ele estiver ativo.

O valor padrão é false, o que significa que o SO evitará o backup do app quando ele estiver sendo executado em primeiro plano, como um app de música que esteja tocando músicas ativamente por meio de um serviço no estado startForeground().

android:banner
Um recurso drawable fornecendo um banner gráfico estendido para o item associado. Use com a tag <application> para fornecer um banner padrão para todas as atividades do aplicativo ou com a tag <activity> para fornecer um banner para uma atividade específica.

O sistema usa o banner para representar um app na tela inicial do Android TV. Como o banner é exibido somente na tela inicial, ele só precisa ser especificado por aplicativos com uma atividade que lide com o intent CATEGORY_LEANBACK_LAUNCHER.

Esse atributo precisa ser definido como uma referência a um recurso drawable que contenha a imagem (por exemplo, "@drawable/banner"). Não há um banner padrão.

Consulte Oferecer um banner de tela inicial em "Introdução a apps para TV" para ver mais informações.

android:debuggable
Se o aplicativo pode ou não ser depurado, mesmo quando executado em um dispositivo no modo de usuário: "true" se for possível, e "false" se não for. O valor padrão é "false".
android:description
Texto legível pelo usuário sobre o aplicativo, mais longo e mais descritivo que o rótulo do aplicativo. O valor precisa ser definido como referência a um recurso de string. Diferentemente do rótulo, isso não pode ser uma string bruta. Não há valor padrão.
android:directBootAware

Se o aplicativo reconhece inicialização direta ou não, ou seja, se ele pode ou não ser executado antes do usuário desbloquear o dispositivo. Se você estiver usando uma subclasse personalizada de Application, e se qualquer componente dentro do seu aplicativo tiver reconhecimento de inicialização direta, todo o aplicativo personalizado será considerado como tendo reconhecimento de inicialização direta.

Observação: durante a Inicialização direta, seu aplicativo só pode acessar os dados guardados no armazenamento protegido do dispositivo.

O valor padrão é "false".

android:enabled
Se o sistema Android pode ou não instanciar componentes do aplicativo: "true" se puder, e "false" se não. Se o valor for "true", o atributo enabled de cada componente determinará se ele será ativado ou não. Se o valor for "false", os valores específicos do componente serão modificados. Todos os componentes serão desativados.

O valor padrão é "true".

android:extractNativeLibs
Se o instalador de pacote extrairá ou não as bibliotecas nativas do APK para o sistema de arquivos. Se for definido como false, suas bibliotecas nativas precisarão ser alinhadas à página e armazenadas sem compactação no APK. Nenhuma mudança de código é necessária, já que o vinculador carrega as bibliotecas diretamente do APK no momento da execução.

O valor padrão é "true".

android:fullBackupContent
Esse atributo aponta para um arquivo XML que contém regras de backup completas para o Backup automático. Essas regras determinam quais arquivos são salvos em backup. Para mais informações, consulte Sintaxe da configuração XML para o Backup automático.

Esse atributo é opcional. Se não for especificado, o Backup automático incluirá a maioria dos arquivos do seu aplicativo por padrão. Para ver mais informações, consulte Arquivos que são salvos em backup.

android:fullBackupOnly
Esse atributo indica se é ou não necessário usar o Backup automático nos dispositivos em que ele está disponível. Se for definido como true, seu app realizará o Backup automático quando instalado em um dispositivo com Android 6.0 (API de nível 23) ou versões posteriores. Em dispositivos mais antigos, o app ignora esse atributo e executa Backups de chave-valor.

O valor padrão é "false".

android:hasCode
Se o aplicativo contém ou não um código: "true" se tiver, e "false" se não. Quando o valor for "false", o sistema não tentará carregar nenhum código do aplicativo ao iniciar componentes. O valor padrão é "true".

Por exemplo, se o app for compatível com Dynamic Delivery do Google Play e incluir módulos de recursos dinâmicos que não geram arquivos DEX, que é otimizado por bytecode para a plataforma Android, é necessário definir essa propriedade como false no arquivo de manifesto do módulo. Caso contrário, você poderá receber erros no momento da execução.

android:hardwareAccelerated
Se a renderização acelerada por hardware será ou não ativada para todas as atividades e visualizações nesse aplicativo: "true" se ela precisar estar ativada, e "false" se não precisar. O valor padrão é "true" se você tiver definido minSdkVersion ou targetSdkVersion como "14" ou superior. Caso contrário, o valor é "false".

A partir do Android 3.0 (API de nível 11), um renderizador de OpenGL acelerado por hardware está disponível para aplicativos, para melhorar o desempenho de várias operações comuns de gráficos 2D. Quando o renderizador acelerado por hardware estiver ativado, a maioria das operações em Canvas, Paint, Xfermode, ColorFilter, Shader e Câmera serão aceleradas. Isso resulta em animações mais suaves, rolagem mais uniforme e melhor responsividade geral, mesmo para aplicativos que não fazem uso explícito das bibliotecas OpenGL do framework.

Nem todas as operações OpenGL 2D são aceleradas. Se você ativar o renderizador acelerado por hardware, teste seu aplicativo para garantir que ele possa usar o renderizador sem erros.

Para mais informações, leia o guia Aceleração de hardware.

android:icon
Um ícone para todo o aplicativo e o ícone padrão de cada um dos componentes do aplicativo. Veja os atributos icon individuais para os elementos <activity>, <activity-alias>, <service>, <receiver> e <provider>.

Esse atributo precisa ser definido como uma referência a um recurso drawable que contém a imagem (por exemplo, "@drawable/icon"). Não há um ícone padrão.

android:isGame
Se o aplicativo é ou não um jogo. O sistema pode agrupar aplicativos classificados como jogos ou exibi-los separadamente de outros aplicativos.

O padrão é false.

android:killAfterRestore
Se o aplicativo em questão precisa ser encerrado depois que as configurações forem restauradas durante uma operação de restauração completa do sistema. Operações de restauração de pacote único nunca farão com que o aplicativo seja encerrado. Normalmente, as operações de restauração total do sistema só ocorrem uma vez, quando o smartphone é configurado pela primeira vez. Os aplicativos de terceiros não precisarão usar esse atributo normalmente.

O padrão é true, o que significa que após o aplicativo ter concluído o processamento dos dados durante uma restauração completa do sistema, ele será encerrado.

android:largeHeap
Se os processos do seu aplicativo precisam ser criados com um heap Dalvik grande. Isso se aplica a todos os processos criados para o aplicativo. Aplica-se somente ao primeiro aplicativo carregado em um processo. Se você estiver usando um ID do usuário compartilhado para permitir que vários aplicativos usem um processo, é importante que todos eles usem essa opção de forma consistente, ou terão resultados imprevisíveis.

A maioria dos apps não precisará disso e se concentrará na redução do uso geral de memória para melhorar o desempenho. A ativação disso também não garante um aumento fixo na memória disponível, já que alguns dispositivos são limitados pela memória total disponível.

Para consultar o tamanho da memória disponível no momento da execução, use os métodos getMemoryClass() ou getLargeMemoryClass().

android:label
Um rótulo legível pelo usuário para o aplicativo como um todo e um rótulo padrão para cada um dos componentes do aplicativo. Veja os atributos label individuais para os elementos <activity>, <activity-alias>, <service>, <receiver> e <provider>.

O rótulo precisa ser definido como referência a um recurso de string, para que possa ser localizado como outras strings na interface do usuário. No entanto, para facilitar o desenvolvimento do aplicativo, ele também pode ser definido como string bruta.

android:logo
Um logotipo para o aplicativo como um todo e o logotipo padrão para atividades.

Esse atributo precisa ser definido como uma referência a um recurso drawable contendo a imagem (por exemplo, "@drawable/logo"). Não há um logotipo padrão.

android:manageSpaceActivity
O nome totalmente qualificado de uma subclasse Activity que o sistema pode iniciar para permitir que os usuários gerenciem a memória ocupada pelo aplicativo no dispositivo. A atividade também será declarada com um elemento <activity>.
android:name
Nome totalmente qualificado de uma subclasse Application implementada para o aplicativo. Quando o processo do aplicativo é iniciado, essa classe é instanciada antes de qualquer um dos componentes do aplicativo.

A subclasse é opcional. Ela não é necessária para a maioria dos aplicativos. Na ausência de uma subclasse, o Android usará uma instância da classe base Application.

android:networkSecurityConfig

Especifica o nome do arquivo XML que contém a Configuração de segurança de rede do seu aplicativo. O valor precisa ser uma referência ao arquivo de recurso XML que contém a configuração.

Esse atributo foi adicionado na API de nível 24.

android:permission
Nome de uma permissão que os clientes precisam ter para interagir com o aplicativo. Esse atributo é uma forma conveniente de definir uma permissão que se aplica a todos os componentes do aplicativo. Ele pode ser substituído pela configuração dos atributos permission de componentes individuais.

Para mais informações sobre permissões, consulte a seção Permissões na introdução e outro documento, chamado Segurança e permissões.

android:persistent
Se o aplicativo precisa permanecer em execução o tempo todo: "true" se ele precisar, e "false" se não precisar. O valor padrão é "false". Os aplicativos normalmente não definirão essa sinalização. O modo de persistência se destina apenas a determinados aplicativos do sistema.
android:process
O nome de um processo em que todos os componentes do aplicativo precisam ser executados. Cada componente pode modificar esse padrão definindo o próprio atributo process.

Por padrão, o Android cria um processo para um aplicativo quando o primeiro componente precisa ser executado. Então, todos os componentes são executados nesse processo. O nome do processo padrão corresponde ao nome do pacote definido pelo elemento <manifest>.

Ao definir esse atributo como um nome de processo compartilhado com outro aplicativo, você pode organizar componentes dos dois aplicativos no mesmo processo, mas somente se os dois aplicativos também compartilharem um ID do usuário e estiverem registrados com o mesmo certificado.

Se o nome atribuído a esse atributo começar com dois pontos (:), um novo processo, particular para o aplicativo, será criado quando for necessário. Se o nome do processo começar com um caractere minúsculo, um processo global será criado com esse nome. Um processo global pode ser compartilhado com outros aplicativos, reduzindo o uso de recursos.

android:restoreAnyVersion
Indica que o aplicativo está preparado para tentar uma restauração de qualquer conjunto de dados salvos em backup, mesmo que o backup tenha sido armazenado por uma versão mais recente do aplicativo que a instalada no dispositivo atualmente. Definir esse atributo como true permitirá que o Backup Manager tente restaurar mesmo quando uma incompatibilidade de versão sugerir que os dados são incompatíveis. Use com cautela.

O valor padrão desse atributo é false.

android:requiredAccountType
Especifica o tipo de conta necessário para o funcionamento do aplicativo. Se o app exigir uma Account, o valor desse atributo precisará corresponder ao tipo de autenticador de conta usado pelo app, conforme definido por AuthenticatorDescription, como "com.google".

O valor padrão é nulo e indica que o aplicativo pode funcionar sem nenhuma conta.

Como perfis restritos não podem adicionar contas no momento, especificar esse atributo deixa o app indisponível para esses perfis, a menos que você também declare android:restrictedAccountType com o mesmo valor.

Atenção: se os dados da conta revelarem informações de identificação pessoal, é importante declarar esse atributo e deixar android:restrictedAccountType nulo, para que os perfis restritos não consigam usar seu aplicativo para acessar informações pessoais que pertençam ao usuário proprietário.

Esse atributo foi adicionado na API de nível 18.

resizeableActivity

Especifica se o app é compatível com a exibição em várias janelas. É possível definir esse atributo no elemento <activity> ou <application>.

Se o atributo for definido como verdadeiro, o usuário poderá iniciar a atividade nos modos de tela dividida e de forma livre. Se o atributo for definido como falso, a atividade não será compatível com o modo de várias janelas. Se o valor for falso e o usuário tentar iniciar a atividade no modo de várias janelas, a atividade usará o modo tela cheia.

Se o app for destinado à API de nível 24 ou versões posteriores, mas você não especificar um valor para esse atributo, o valor do atributo será definido como verdadeiro.

Esse atributo foi adicionado na API de nível 24.

android:restrictedAccountType
Especifica o tipo de conta exigido pelo aplicativo e indica que os perfis restritos têm permissão para acessar essas contas que pertencem ao usuário proprietário. Se seu app exigir que uma Account e perfis restritos tenham permissão para acessar contas do usuário principal, o valor desse atributo precisa corresponder ao tipo de autenticador de conta usado pelo app, conforme definido por AuthenticatorDescription, como em "com.google".

O valor padrão é nulo e indica que o aplicativo pode funcionar sem nenhuma conta.

Atenção: especificar esse atributo permite que perfis restritos usem seu app com contas que pertencem ao usuário proprietário, que podem revelar informações de identificação pessoal. Se a conta revelar detalhes pessoais, não use esse atributo. Em vez disso, declare o atributo android:requiredAccountType para tornar o app indisponível para perfis restritos.

Esse atributo foi adicionado na API de nível 18.

android:supportsRtl
Declara se o aplicativo está disposto a oferecer compatibilidade com layouts da direita para a esquerda (RTL, na sigla em inglês).

Se for definido como true, e targetSdkVersion for definido como 17 ou mais, várias APIs RTL serão ativadas e usadas pelo sistema para que seu app possa exibir layouts RTL. Se for definido como false, ou se targetSdkVersion for definido como 16 ou menos, as APIs RTL serão ignoradas ou não terão efeito, e seu app se comportará da mesma forma, independentemente da direção de layout associada à opção de localidade do usuário. Seus layouts serão sempre da esquerda para a direita.

O valor padrão desse atributo é false.

Esse atributo foi adicionado na API de nível 17.

android:taskAffinity
Um nome de afinidade que se aplica a todas as atividades no aplicativo, exceto àquelas que definem uma afinidade diferente com os próprios atributos taskAffinity. Veja esse atributo para mais informações.

Por padrão, todas as atividades em um aplicativo compartilham a mesma afinidade. O nome dessa afinidade é igual ao nome do pacote definido pelo elemento <manifest>.

android:testOnly
Indica se o aplicativo é destinado apenas a testes. Por exemplo, é possível que e ele exponha funcionalidades ou dados fora de si mesmo e cause uma violação de segurança, mas isso é útil para fazer testes. Esse tipo de APK pode ser instalado somente por adb. Não é possível publicá-lo no Google Play.

O Android Studio adicionará automaticamente esse atributo quando você clicar em Executar.

android:theme
Uma referência a um recurso de estilo que define um tema padrão para todas as atividades no aplicativo. Atividades individuais podem modificar o padrão definindo os próprios atributos theme. Para mais informações, consulte o guia do desenvolvedor de Estilos e temas.
android:uiOptions
Opções extras para a IU de uma atividade.

Precisa ser um dos valores a seguir.

ValorDescrição
"none"Nenhuma opção extra de IU. Esse é o padrão.
"splitActionBarWhenNarrow"Adicione uma barra na parte inferior da tela para exibir ações necessárias na barra de apps, também conhecida como barra de ações, quando restrita ao espaço horizontal, como ao usar o modo retrato em um aparelho. Em vez de um pequeno número de ações necessárias que aparecem na barra de apps na parte superior da tela, a barra de apps é dividida na seção de navegação superior e na barra inferior para ações necessárias. Isso garante que uma quantidade razoável de espaço seja disponibilizada não apenas para as ações necessárias, mas também para navegação e elementos de título na parte superior. Os itens de menu não são divididos entre as duas barras; eles sempre aparecem juntos.

Para mais informações sobre a barra de apps, consulte a aula de treinamento Adicionar barra de apps.

Esse atributo foi adicionado na API de nível 14.

android:usesCleartextTraffic
Indica se o app pretende usar tráfego de rede em texto simples, como HTTP em texto simples. O valor padrão para apps voltados à API de nível 27 ou versões anteriores é "true". Os apps voltados à API de nível 28 ou posterior têm "false"como valor padrão.

Quando o atributo é definido como "false", os componentes de plataforma (por exemplo, pilhas HTTP e FTP, DownloadManager e MediaPlayer) recusarão as solicitações do app para usar tráfego de texto simples. É altamente recomendado que bibliotecas de terceiros respeitem essa configuração também. A principal razão para evitar o tráfego de texto simples é a falta de confidencialidade, autenticidade e proteção contra adulteração. Um invasor da rede pode espionar e modificar os dados transmitidos sem ser detectado.

Essa sinalização é respeitada com base no melhor resultado, porque é impossível impedir todo o tráfego de texto simples de aplicativos para Android, considerando o nível de acesso fornecido a eles. Por exemplo, não é esperado que a API Socket respeite essa sinalização, porque ela não pode determinar se o tráfego é de texto simples. No entanto, a maior parte do tráfego de rede dos aplicativos é tratada por pilhas/componentes de nível superior, que podem respeitar essa sinalização lendo-a a partir de ApplicationInfo.flags ou NetworkSecurityPolicy.isCleartextTrafficPermitted().

Observação: WebView respeita esse atributo para aplicativos voltados à API de nível 26 e posteriores.

Durante o desenvolvimento do app, o StrictMode pode ser usado para identificar qualquer tráfego de texto simples do app. Consulte StrictMode.VmPolicy.Builder.detectCleartextNetwork() para ver mais informações.

Esse atributo foi adicionado na API de nível 23.

Essa sinalização será ignorada no Android 7.0 (API de nível 24) e posteriores se houver uma configuração de segurança de rede do Android.

android:vmSafeMode
Indica se o app quer que a máquina virtual (VM) funcione no modo de segurança. O valor padrão é "false".

Esse atributo foi adicionado na API de nível 8, em que o valor "verdadeiro" desativou o compilador just-in-time (JIT) da Dalvik.

Esse atributo foi adaptado na API de nível 22, em que o valor "verdadeiro" desativou o compilador ART ahead-of-time (AOT).

primeira aparição:
API de nível 1
veja também:
<activity>
<service>
<receiver>
<provider>