- Sintaxe:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="string" android:sharedUserId="string" android:sharedUserLabel="string resource" android:sharedUserMaxSdkVersion="integer" android:versionCode="integer" android:versionName="string" android:installLocation=["auto" | "internalOnly" | "preferExternal"] > ... </manifest>
- contido em:
- nenhum
- precisa conter:
<application>
- pode conter:
<attribution>
<compatible-screens>
<instrumentation>
<permission>
<permission-group>
<permission-tree>
<queries>
<supports-gl-texture>
<supports-screens>
<uses-configuration>
<uses-feature>
<uses-permission>
<uses-permission-sdk-23>
<uses-sdk>
- descrição:
- O elemento raiz do arquivo
AndroidManifest.xml
. Ele precisa conter um elemento<application>
e especificar os atributosxmlns:android
epackage
. - atributos:
-
xmlns:android
- Define o namespace do Android. Esse atributo é sempre definido
como
"http://schemas.android.com/apk/res/android"
. package
- O valor do atributo
package
no arquivo de manifesto do APK representa o ID exclusivo universal do app. Ele é formatado como um nome de pacote completo no estilo Java para o app Android. O nome pode conter letras maiúsculas e minúsculas, números e sublinhados ("_"). No entanto, as partes do nome do pacote só podem começar com letras.Tenha cuidado para não mudar o valor de
package
. Isso cria um novo app. Os usuários da versão anterior do app não recebem uma atualização e não podem transferir os dados entre a versão antiga e a nova.No sistema de build baseado em Gradle, a partir do AGP 7.3, não defina o valor de
package
diretamente no arquivo de manifesto de origem. Para mais informações, consulte Definir o ID do aplicativo. android:sharedUserId
-
Esta constante foi descontinuada a partir do nível 29 da API.
Os IDs de usuário compartilhados causam um comportamento não determinista no gerenciador de pacotes. Sendo assim, o uso deles não é recomendado e pode ser removido em uma versão futura do Android. Em vez disso, use mecanismos de comunicação adequados, como serviços e provedores de conteúdo, para facilitar a interoperabilidade entre os componentes compartilhados. Os apps atuais não podem remover esse valor, já que não é possível migrar um ID do usuário compartilhado. Nesses apps, adicioneandroid:sharedUserMaxSdkVersion="32"
para evitar o uso do ID de usuário compartilhado em novas instalações.O nome de um ID de usuário do Linux que é compartilhado com outros apps. Por padrão, o Android atribui a cada app o próprio ID de usuário único. No entanto, se esse atributo for definido com o mesmo valor para dois ou mais apps, todos eles vão compartilhar o mesmo ID, desde que os conjuntos de certificados deles sejam idênticos. Apps com o mesmo ID de usuário podem acessar os dados uns dos outros e, se desejado, ser executados no mesmo processo.
android:targetSandboxVersion
-
O sandbox de destino que vai ser usado por este app. Quanto maior o número da versão do sandbox,
maior o nível de segurança.
O valor padrão é
1
. Você também pode o definir como2
. A definição desse atributo como2
alterna o app para outro sandbox SELinux.As restrições a seguir se aplicam a um sandbox de nível 2:
- O valor padrão de
usesCleartextTraffic
na configuração de segurança da rede é falso. - O compartilhamento de Uid não é permitido.
Para Instant Apps Android destinados ao Android 8.0 (nível 26 da API) ou mais recentes, esse atributo é definido como
2
. É possível definir o nível de sandbox na versão instalada do app para o nível1
, menos restritivo. No entanto, se você fizer isso, os dados do app instantâneo não serão mantidos na versão instalada. É necessário definir o valor do sandbox do app instalado como2
para que os dados sejam mantidos do app instantâneo para a versão instalada.Depois que um app for instalado, você só pode atualizar o sandbox de destino para um valor mais alto. Para fazer downgrade do valor da sandbox de destino, desinstale o app e o substitua por uma versão com um valor menor para esse atributo no manifesto.
- O valor padrão de
android:sharedUserLabel
-
Esta constante foi descontinuada a partir do nível 29 da API.
Os IDs de usuário compartilhados causam um comportamento não determinista no gerenciador de pacotes. Sendo assim, o uso deles não é recomendado e pode ser removido em uma versão futura do Android. Em vez disso, use mecanismos de comunicação adequados, como serviços e provedores de conteúdo, para facilitar a interoperabilidade entre os componentes compartilhados. Os apps atuais não podem remover esse valor, já que não é possível migrar um ID do usuário compartilhado.Um rótulo legível pelo usuário para o ID de usuário compartilhado. O rótulo é definido como uma referência a um recurso de string. Ele não pode ser uma string bruta.
Esse atributo foi introduzido no nível 3 da API. Ele só vai ser significativo se o atributo
sharedUserId
também estiver definido. android:sharedUserMaxSdkVersion
-
Os IDs de usuário compartilhados causam um comportamento não determinista no gerenciador de pacotes. Sendo assim, o uso deles não é recomendado e pode ser removido em uma versão futura do Android. Em vez disso, use mecanismos de comunicação adequados, como serviços e provedores de conteúdo, para facilitar a interoperabilidade entre os componentes compartilhados.
A versão máxima do SDK em que o sistema ainda usa
android:sharedUserId
. Se o app for instalado pela primeira vez em um dispositivo com uma versão do SDK maior que o valor especificado, ele vai se comportar como seandroid:sharedUserId
nunca tivesse sido definido.Esse atributo foi introduzido no nível 33 da API. Ele só vai ser significativo se o atributo
sharedUserId
também estiver definido. android:versionCode
- Um número de versão interno. Esse número é usado apenas para determinar se
uma versão é mais recente que outra. Números maiores indicam versões
mais recentes. Esse não é o número da versão mostrado aos usuários, que
é definido pelo atributo
versionName
.O valor é definido como um número inteiro positivo maior que 0. Você pode o definir como quiser, desde que cada versão sucessiva tenha um número maior. Por exemplo, ele pode ser um número de build, ou você pode converter um número de versão no formato "x.y" em um número inteiro codificando o "x" e o "y" separadamente nos 16 bits mais baixos e mais altos. Ou você pode aumentar o número em uma unidade sempre que uma nova versão for lançada.
android:versionName
- O número da versão exibido aos usuários. Esse atributo é definido como uma string
bruta ou como uma referência a um recurso de string. A string não tem outra finalidade
a não ser ser mostrada aos usuários. O atributo
versionCode
é o número de versão significativo usado internamente. android:installLocation
- O local de instalação padrão do app.
As strings de palavras-chave a seguir são aceitas:
Valor Descrição "internalOnly"
O app é instalado apenas no armazenamento interno do dispositivo. Se esse valor for definido, o app nunca será instalado no armazenamento externo, como um cartão SD. Se o armazenamento interno estiver cheio, o sistema não vai instalar o app. Esse é o comportamento padrão se você não definir android:installLocation
."auto"
O app pode ser instalado no armazenamento externo, mas o sistema instala o app no armazenamento interno por padrão. Se o armazenamento interno estiver cheio, o sistema vai instalar o app no armazenamento externo. Depois de instalado, o usuário pode mover o app para o armazenamento interno ou externo usando as configurações do sistema. "preferExternal"
É preferível instalar o app no armazenamento externo. Não há garantia de que o sistema vai aceitar esta solicitação. O app pode ser instalado no armazenamento interno se a mídia externa estiver indisponível ou cheia. Depois de instalado, o usuário pode mover o app para o armazenamento interno ou externo nas configurações do sistema. Observação:por padrão, o app é instalado no armazenamento interno e não pode ser instalado no armazenamento externo, a menos que esse atributo seja definido como
"auto"
ou"preferExternal"
.Quando um app é instalado no armazenamento externo:
- O arquivo APK é salvo no armazenamento externo, mas todos os dados do app, como bancos de dados, ainda são salvos na memória interna do dispositivo.
- O contêiner em que o arquivo APK é salvo é criptografado com uma chave que permite que o app opere apenas no dispositivo em que está instalado. O usuário não pode transferir o cartão SD para outro dispositivo e usar os apps instalados no cartão. Vários cartões SD podem ser usados no mesmo dispositivo.
- A pedido do usuário, o app pode ser movido para o armazenamento interno.
O usuário também pode solicitar a migração de um app do armazenamento interno para o externo. No entanto, o sistema não permite que o usuário mova o app para armazenamento externo se esse atributo estiver definido como
"internalOnly"
, que é a configuração padrão.Para mais informações sobre como usar esse atributo, incluindo como manter a compatibilidade com versões anteriores, consulte Local da instalação do app.
Introduzido no nível 8 da API.
- introduzido em:
- Nível 1 da API para todos os atributos, a menos que indicado de outra forma na descrição do atributo.
- veja também:
-
<application>
<manifest>
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-05-12 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-05-12 UTC."],[],[]]