<aplicativo>

Sintaxe:
<application android:allowTaskReparenting=["true" | "false"]
             android:allowBackup=["true" | "false"]
             android:allowClearUserData=["true" | "false"]
             android:allowNativeHeapPointerTagging=["true" | "false"]
             android:appCategory=["accessibility" | "audio" | "game" |
             "image" | "maps" | "news" | "productivity" | "social" | "video"]
             android:backupAgent="string"
             android:backupInForeground=["true" | "false"]
             android:banner="drawable resource"
             android:dataExtractionRules="string resource"
             android:debuggable=["true" | "false"]
             android:description="string resource"
             android:enabled=["true" | "false"]
             android:extractNativeLibs=["true" | "false"]
             android:fullBackupContent="string"
             android:fullBackupOnly=["true" | "false"]
             android:gwpAsanMode=["always" | "never"]
             android:hasCode=["true" | "false"]
             android:hasFragileUserData=["true" | "false"]
             android:hardwareAccelerated=["true" | "false"]
             android:icon="drawable resource"
             android:isGame=["true" | "false"]
             android:isMonitoringTool=["parental_control" | "enterprise_management" |
             "other"]
             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:requestLegacyExternalStorage=["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>
contido em:
<manifest>
pode conter:
<activity>
<activity-alias>
<meta-data>
<service>
<receiver>
<profileable>
<provider>
<uses-library>
<uses-native-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 são substituídos pelos componentes.

atributos
android:allowTaskReparenting
Define se as atividades definidas pelo aplicativo podem ser transferidas da tarefa que as iniciou para a tarefa com que elas têm afinidade quando essa tarefa é trazida para o primeiro plano. Será "true" se puderem ser transferidas e "false" se precisarem permanecer com a tarefa em que foram iniciadas. O valor padrão é "false".

O elemento <activity> tem o próprio atributo allowTaskReparenting, que pode substituir o valor definido aqui.

android:allowBackup

Define se o aplicativo pode participar da infraestrutura de backup e restauração. Se o atributo for definido como "false", nenhum backup ou restauração do aplicativo será realizado, mesmo por um backup completo do sistema, que normalmente faria todos os dados do aplicativo serem salvos via adb. O valor padrão desse atributo é "true".

Observação : para apps destinados ao Android 12 (nível 31 da API) ou versões mais recentes, esse comportamento varia. Em dispositivos de alguns fabricantes, não é possível desativar a migração dos arquivos do seu app entre dispositivos.

No entanto, ainda é possível desativar o backup e a restauração baseados na nuvem definindo esse atributo como "false", mesmo que o app seja direcionado ao Android 12 (nível 31 da API) ou mais recente.

Para mais informações, consulte a seção Backup e restauração da página que descreve as mudanças de comportamento para apps destinados ao Android 12 (nível 31 da API) ou versões mais recentes.

android:allowClearUserData

Define se o aplicativo pode redefinir os dados do usuário. Esses dados incluem flags, 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 saber mais, consulte Visão geral do backup de dados.

android:allowNativeHeapPointerTagging

Define se o app ativa o recurso de inclusão de tag de ponteiro de heap. O valor padrão desse atributo é "true".

Observação: desativar esse recurso não resolve o problema de integridade do código. Os dispositivos de hardware futuros podem não ter suporte a essa tag de manifesto.

Para mais informações, consulte Ponteiros com tag.

android:appCategory

Declara a categoria do app. As categorias são usadas para agrupar vários apps em grupos significativos, como ao resumir o uso da bateria, da rede ou do disco. Defina esse valor apenas para apps que se encaixam bem em uma das categorias específicas.

Precisa ser um dos valores constantes abaixo.

ValorDescrição
accessibilityApps principalmente de acessibilidade, como leitores de tela.
audioApps que funcionam principalmente com áudio ou música, como players de música.
gameApps principalmente de jogos.
imageApps que funcionam principalmente com imagens ou fotos, como apps de câmera ou galeria.
mapsApps principalmente de mapas, como apps de navegação.
newsApps principalmente de notícias, como apps de jornais, revistas ou esportes.
productivityApps principalmente de produtividade, como apps de armazenamento em nuvem ou ambiente de trabalho.
socialApps principalmente sociais, como apps de mensagens, comunicação, e-mail ou redes sociais.
videoApps que funcionam principalmente com vídeos ou filmes, como apps de streaming de vídeo.

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

Não há padrão. O nome precisa ser específico.

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. Definir dessa flag como "true" pode afetar o comportamento do app enquanto ele está ativo.

O valor padrão é "false", o que significa que o SO evita o backup do app enquanto ele está sendo executado em primeiro plano, por exemplo, um app de música que esteja tocando músicas ativamente com 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 a todas as atividades do aplicativo ou com a tag <activity> para fornecer um banner a uma atividade específica.

O sistema usa o banner para representar um app na tela inicial do Android TV. Portanto, especifique-o apenas para aplicativos com uma atividade que processa a intent CATEGORY_LEANBACK_LAUNCHER.

Esse atributo é definido como uma referência a um recurso drawable que contém a imagem, por exemplo, "@drawable/banner". Não há nenhum banner padrão.

Para saber mais, consulte Oferecer um banner de tela inicial.

android:dataExtractionRules

Os aplicativos podem definir esse atributo como um recurso XML, em que especificam as regras que determinam quais arquivos e diretórios podem ser copiados do dispositivo como parte das operações de backup ou transferência.

Para saber mais sobre o formato do arquivo XML, consulte Backup e restauração.

android:debuggable
Define se o aplicativo pode ser depurado, mesmo quando executado em um dispositivo no modo de usuário. Será "true" se isso for possível, e "false" se não for. O valor padrão é "false".
android:description
Texto legível pelo usuário sobre o app, sendo mais longo e mais descritivo que o rótulo do aplicativo. O valor é definido como uma referência a um recurso de string. Diferente do rótulo, ele não pode ser uma string bruta. Não há valor padrão.
android:enabled
Define se o sistema Android pode instanciar componentes do aplicativo. Será "true" se isso for possível, e "false" se não for. Se o valor for "true", o atributo enabled de cada componente vai determinar se ele será ativado. Se o valor for "false", os valores específicos do componente vão ser modificados, e todos os componentes serão desativados.

O valor padrão é "true".

android:extractNativeLibs

A partir do AGP 4.2.0, a opção DSL useLegacyPackaging substitui o atributo de manifesto extractNativeLibs. Use useLegacyPackaging no arquivo build.gradle do app em vez de extractNativeLibs no arquivo de manifesto para configurar o comportamento de compactação da biblioteca nativa. Para mais informações, consulte a nota da versão Usar a DSL para empacotar bibliotecas nativas compactadas.

Esse atributo indica se o instalador do pacote extrai as bibliotecas nativas do APK para o sistema de arquivos. Se definido como "false", suas bibliotecas nativas vão ser armazenadas descompactadas no APK. Embora o APK possa ser maior, o aplicativo é carregado mais rapidamente porque as bibliotecas são carregadas diretamente pelo APK durante a execução.

O valor padrão de extractNativeLibs depende de minSdkVersion e da versão do AGP que você está usando. Na maioria dos casos, o comportamento padrão é provavelmente o que você quer, e não é necessário definir esse atributo explicitamente.

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 saber mais, consulte a sintaxe de configuração XML do Backup automático.

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

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

O valor padrão é "false".

android:gwpAsanMode
Esse atributo indica se é necessário usar o GWP-ASan, um recurso de alocação de memória nativo que ajuda a encontrar bugs use-after-free e de estouro do buffer de heap.

O valor padrão é "never".

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

Por exemplo, seu app pode oferecer suporte ao Play Feature Delivery e incluir módulos de recursos que não geram nenhum arquivo DEX, que são otimizados para bytecode na plataforma Android. Nesse caso, você precisa definir essa propriedade como "false" no arquivo de manifesto do módulo para evitar erros na execução.

android:hasFragileUserData
Define se é necessário mostrar ao usuário uma solicitação para manter os dados do app quando ele for desinstalado. O valor padrão é "false".
android:hardwareAccelerated
Define se a renderização com aceleração de hardware está ativada para todas as atividades e visualizações no aplicativo. Será "true" se ela estiver ativada, e "false" se não estiver. O valor padrão será "true" se você definir minSdkVersion ou targetSdkVersion como "14" ou maior. Caso contrário, será "false".

A partir do Android 3.0 (nível 11 da API), um renderizador de OpenGL com aceleração de hardware está disponível para que aplicativos possam 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 Camera vão ser 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 2D do OpenGL são aceleradas. Se você ativar o renderizador com aceleração de hardware, teste o aplicativo para que ele possa usar o renderizador sem erros.

Para saber mais, consulte 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. Confira os atributos icon individuais para os elementos <activity>, <activity-alias>, <service>, <receiver> e <provider>.

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

android:isGame
Define se o aplicativo é um jogo. O sistema pode agrupar aplicativos classificados como jogos ou mostrá-los separadamente de outros apps. O padrão é "false".
android:isMonitoringTool

Indica que o aplicativo foi projetado para monitorar outros indivíduos.

Observação: se um app declarar esse atributo no manifesto, é necessário seguir a política do Stalkerware para publicar o app no Google Play.

Não há valor padrão. O desenvolvedor precisa especificar um destes valores:

ValorDescrição
"parental_control"O app é focado no controle da família e é direcionado especificamente aos familiares responsáveis que querem manter as crianças seguras.
"enterprise_management"O app atende a empresas que querem gerenciar e monitorar os dispositivos dados aos funcionários.
"other"O app atende a um caso de uso não especificado nesta tabela.
android:killAfterRestore
Define se o aplicativo é encerrado após a restauração das configurações durante uma operação de restauração completa do sistema. Operações de restauração de pacote único nunca fazem com que o app seja encerrado. Normalmente, as operações de restauração total do sistema só ocorrem uma vez, quando o smartphone é configurado pela primeira vez. Aplicativos de terceiros normalmente não precisam usar esse atributo.

O padrão é "true", o que significa que, depois que o aplicativo acaba de processar os dados durante uma restauração completa do sistema, ele é encerrado.

android:largeHeap
Define se os processos do aplicativo são criados com um heap Dalvik grande. Isso é válido para todos os processos criados para o aplicativo e para o primeiro aplicativo carregado em um processo. Se você estiver usando um ID de usuário compartilhado para permitir que vários aplicativos usem um processo, é importante que todos eles usem essa opção de forma consistente para evitar resultados imprevisíveis.

A maioria dos apps não precisa disso e prefere se concentrar em reduzir o uso geral de memória para melhorar o desempenho. Ativar esse atributo 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. Confira os atributos label individuais para os elementos <activity>, <activity-alias>, <service>, <receiver> e <provider>.

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

android:logo
Um logotipo para o aplicativo como um todo e o logotipo padrão para atividades. Esse atributo é definido como uma referência a um recurso drawable que tem a imagem, como "@drawable/logo". Não há um logotipo padrão.
android:manageSpaceActivity
O nome totalmente qualificado de uma subclasse Activity que o sistema inicia para permitir que os usuários gerenciem a memória ocupada pelo aplicativo no dispositivo. A atividade também é 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. A maioria dos aplicativos não precisa de uma. Na ausência de uma subclasse, o Android usa uma instância da classe de 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 é uma referência ao arquivo de recurso XML que contém a configuração.

Esse atributo foi adicionado no nível 24 da API.

android:permission
O nome de uma permissão necessária para que os clientes interajam com o aplicativo. Esse atributo é uma forma conveniente de definir uma permissão que se aplica a todos os componentes do aplicativo. Ele é substituído ao configurar os atributos permission de componentes individuais.

Para saber mais sobre permissões, consulte a seção Permissões na visão geral do manifesto do app e as Dicas de segurança.

android:persistent
Define se o aplicativo permanece em execução o tempo todo. Será "true" em caso positivo e "false" em caso negativo. O valor padrão é "false". Os aplicativos normalmente não definem essa flag. O modo de persistência se destina apenas a alguns apps do sistema.
android:process
O nome de um processo em que todos os componentes do aplicativo são executados. Cada componente pode substituir 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 de usuário e estiverem assinados com o mesmo certificado.

Se o nome atribuído a esse atributo começar com dois pontos (:), um novo processo, particular ao aplicativo, será criado quando for necessário. Se o nome do processo começar com um caractere em letra minúscula, 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. A definição desse atributo como "true" permite que o Backup Manager tente fazer uma restauração mesmo que um erro de correspondência de versão sugira que os dados são incompatíveis. Use com cautela.

O valor padrão desse atributo é "false".

android:requestLegacyExternalStorage

Define se o aplicativo quer desativar o armazenamento com escopo.

Observação: dependendo das modificações relacionadas à compatibilidade da política ou do app, o sistema pode não atender a essa solicitação de desativação.

android:requiredAccountType
Especifica o tipo de conta exigido pelo aplicativo para funcionar. Se o app exige uma Account, o valor desse atributo precisa corresponder ao tipo de autenticador de conta usado pelo app, conforme definido por AuthenticatorDescription, por exemplo, "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, 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 o app e acessar informações pessoais que pertençam ao usuário proprietário.

Esse atributo foi adicionado no nível 18 da API.

android:resizeableActivity

Especifica se o app oferece suporte à exibição em várias janelas. É possível definir esse atributo no elemento <activity> ou <application>.

Se o atributo é definido como "true", o usuário pode iniciar a atividade nos modos de tela dividida e formato livre. Se você definir o atributo como ”false”, o app não poderá ser testado nem otimizado para um ambiente de várias janelas. O sistema ainda pode colocar a atividade no modo de várias janelas com o modo de compatibilidade aplicado.

Definir esse atributo como "true" não garante que não vai haver outros apps no modo de várias janelas visíveis na tela, por exemplo, o picture-in-picture, ou em outras telas. Portanto, a definição dessa flag não faz com que o app tenha acesso exclusivo a recursos.

Para apps direcionados ao nível 24 da API ou mais recente, o padrão é "true".

Se o app for direcionado ao nível 31 da API ou mais recente, esse atributo vai funcionar de forma diferente em telas pequenas e grandes:

  • Telas grandes (com 600 dp ou mais): todos os apps oferecem suporte ao modo de várias janelas. O atributo indica se um app pode ser redimensionado, não se ele oferece suporte ao modo de várias janelas. Se resizeableActivity="false", o app será colocado em modo de compatibilidade quando necessário para atender às dimensões de exibição.
  • Telas pequenas (com menos de 600 dp): se resizeableActivity="true" e a largura e altura mínimas da atividade principal estão dentro dos requisitos de várias janelas, o app oferece suporte a esse modo. Se resizeableActivity="false", o app não vai oferecer suporte ao modo de várias janelas, independente da largura e altura mínimas da atividade.

Observação: os fabricantes de dispositivos podem substituir o comportamento do nível 31 da API.

Esse atributo foi adicionado no nível 24 da API.

Observação: o valor da atividade raiz de uma tarefa é aplicado a todas as atividades extras iniciadas nela. Ou seja, se a atividade raiz de uma tarefa for redimensionável, o sistema vai tratar todas as outras atividades dela como redimensionáveis. Se a atividade raiz não for redimensionável, as outras atividades na tarefa não são redimensionáveis.

android:restrictedAccountType
Especifica o tipo de conta exigido pelo aplicativo e indica que os perfis restritos podem acessar contas que pertencem ao usuário proprietário. Se o app exige que uma Account e perfis restritos possam acessar as contas do usuário principal, o valor desse atributo precisa corresponder ao tipo de autenticador de conta usado pelo app, conforme definido por AuthenticatorDescription, por exemplo, "com.google".

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

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

Esse atributo foi adicionado no nível 18 da API.

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

Se esse atributo for definido como "true", e a targetSdkVersion for definida como 17 ou mais recente, várias APIs RTL serão ativadas e usadas pelo sistema para que o app possa exibir layouts RTL. Se ele for definido como "false", ou se a targetSdkVersion for definida como 16 ou anterior, as APIs RTL serão ignoradas ou não terão efeito, e o app vai se comportar da mesma maneira, independente da direção de layout associada à escolha de localidade do usuário. Ou seja, seus layouts sempre serão da esquerda para a direita.

O valor padrão desse atributo é "false".

Esse atributo foi adicionado no nível 17 da API.

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 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 só é instalado usando adb. Não é possível publicá-lo no Google Play.

O Android Studio adiciona esse atributo automaticamente quando você clica 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 substituir o padrão, definindo os próprios atributos theme. Para saber mais, consulte Estilos e temas.
android:uiOptions
Opções extras para a interface de uma atividade. Precisa ser um destes valores:
ValorDescrição
"none"Nenhuma opção extra de IU. Esse é o padrão.
"splitActionBarWhenNarrow"Adiciona uma barra na parte de baixo da tela para mostrar ações necessárias na barra de apps, também conhecida como barra de ações, quando restrita ao espaço horizontal, por exemplo, ao usar o modo retrato em um dispositivo. Em vez de um pequeno número de ações necessárias que aparecem na barra de apps na parte de cima da tela, a barra de apps é dividida entre a seção de navegação de cima e a barra de baixo para mostrar ações necessárias. Isso garante que uma quantidade razoável de espaço seja disponibilizada para as ações necessárias e para os elementos de navegação e título na parte de cima. Os itens de menu não são divididos entre as duas barras. Eles sempre aparecem juntos.

Para saber mais sobre a barra de apps, consulte Adicionar a barra de apps.

Esse atributo foi adicionado no nível 14 da API.

android:usesCleartextTraffic
Indica se o app pretende usar tráfego de rede de texto não criptografado, como HTTP de texto não criptografado. O valor padrão para apps direcionados ao nível 27 da API ou a versões anteriores é "true". Apps direcionados ao nível 28 da API ou mais recente têm "false" como valor padrão.

Quando o atributo é definido como "false", os componentes de plataforma, como pilhas HTTP e FTP, DownloadManager e MediaPlayer, recusam as solicitações do app para usar tráfego de texto não criptografado.

É altamente recomendado que bibliotecas de terceiros respeitem essa configuração também. A principal razão para evitar o tráfego de texto não criptografado é 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 não criptografado de aplicativos para Android, considerando o nível de acesso fornecido a eles. Por exemplo, não é esperado que a API Socket respeite essa flag, já que ela não pode determinar se o tráfego é de texto não criptografado.

No entanto, a maior parte do tráfego de rede dos aplicativos é processada por pilhas e componentes de nível mais alto, que podem respeitar essa flag lendo-a de ApplicationInfo.flags ou NetworkSecurityPolicy.isCleartextTrafficPermitted().

Observação: WebView respeita esse atributo para aplicativos direcionados ao nível 26 da API e mais recentes.

Durante o desenvolvimento do app, o StrictMode pode ser usado para identificar todo o tráfego de texto não criptografado. Para saber mais, consulte StrictMode.VmPolicy.Builder.detectCleartextNetwork().

Esse atributo foi adicionado no nível 23 da API.

Essa sinalização será ignorada no Android 7.0 (nível 24 da API) e versões mais recentes 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 no nível 8 da API, em que um valor "true" desativou o compilador JIT Dalvik.

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

introduzido no:
API de nível 1
confira também:
<activity>
<service>
<receiver>
<provider>