- 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:
<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 deve contêm um elemento<application>
. e especificar os atributosxmlns:android
epackage
. - atributos:
-
xmlns:android
- Define o namespace do Android. Esse atributo é sempre definido
para
"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 uma linguagem Java nome do pacote do 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 letrasTenha cuidado para não mudar o valor
package
, porque ele essencialmente cria um novo aplicativo. Os usuários da versão anterior do app não recebem uma atualização nem 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
package
diretamente no arquivo de manifesto de origem. Para mais informações, consulte Definir o ID do aplicativo. android:sharedUserId
-
Essa constante foi descontinuada no 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 adequados de comunicação, como serviços e provedores de conteúdo, para facilitar e a interoperabilidade entre componentes compartilhados. Os apps existentes não podem remover esse valor, porque Não é possível migrar um ID do usuário compartilhado. Nesses apps, adicioneandroid:sharedUserMaxSdkVersion="32"
para evitar o uso ID do usuário em novas instalações de usuário.O nome de um ID do 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 este atributo for definido com o mesmo valor para dois ou mais eles compartilham o mesmo ID, desde que os conjuntos de certificados são 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 Apps instantâneos Android destinados ao Android 8.0 (nível 26 da API) ou versões mais recentes, esse atributo é definido como
2
. Você pode definir o nível do sandbox na versão instalada do seu app para a configuração menos restritiva nível1
. No entanto, se você fizer isso, os dados do app instantâneo não serão mantidos no versão instalada do seu app. Defina o valor do sandbox do app instalado como2
para que os dados do app instantâneo sejam mantidos na 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 do sandbox de destino, desinstale o app. e o substitua por uma versão cujo manifesto contenha um valor menor para esse atributo.
- O valor padrão de
android:sharedUserLabel
-
Essa constante foi descontinuada no 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 adequados de comunicação, como serviços e provedores de conteúdo, para facilitar e a interoperabilidade entre componentes compartilhados. Os apps existentes não podem remover esse valor, porque 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. 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 adequados de comunicação, como serviços e provedores de conteúdo, para facilitar e a interoperabilidade entre componentes compartilhados.
A versão máxima do SDK em que o sistema ainda usa
android:sharedUserId
. Se as app for instalado recentemente em um dispositivo com uma versão do SDK mais recente que o valor especificado, se comporta como se você nunca tivesse definidoandroid:sharedUserId
.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, o que
é definido pelo atributo
versionName
.O valor é definido como um número inteiro positivo maior que zero. Você pode o definir como quiser, desde que cada versão sucessiva tenha um número maior. Por exemplo, pode ser um número de versão, ou é possível traduzir uma versão número em "x.y" para um número inteiro codificando o "x" e "y" separadamente os 16 bits mais baixos e mais altos. Ou você pode aumentar o número em um sempre que uma nova versão é lançada.
android:versionName
- O número da versão exibido aos usuários. Esse atributo é definido como um valor bruto
ou como uma referência a um recurso de string. A string não tem outra finalidade
do que exibir 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 seguintes strings de palavras-chave são aceitas:
Valor Descrição "internalOnly"
O app é instalado somente no armazenamento interno do dispositivo. Se esse valor estiver definido, O app nunca é instalado em um armazenamento externo, como um cartão SD. Se o sistema o armazenamento 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 no armazenamento interno por padrão. Se o armazenamento interno estiver cheio, o sistema o instala 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 em um armazenamento externo. Não há garantir que o sistema atenda a essa solicitação. O app pode ser instalado em dispositivos o armazenamento 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 em armazenamento interno e não pode ser instalado em armazenamento externo, a menos que você defina este atributo como
"auto"
ou"preferExternal"
.Quando um app é instalado no armazenamento externo:
- O arquivo APK foi salvo ao armazenamento externo, mas todos os dados do app, como bancos de dados, ainda são salvos a memória interna do dispositivo.
- O contêiner em que o arquivo APK é salvo é criptografado com uma chave que permite o app só funciona no dispositivo em que ele foi 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 pedir para mover um app do armazenamento interno para o externo armazenamento. No entanto, o sistema não vai permitir que o usuário mova o app para um armazenamento externo se esse atributo é 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 de instalação do app.
Introduzido no: API de nível 8.
- 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>