syntax:
contido em: nenhum deve conter:<application>
pode conter:<compatible-screens>
<instrumentation>
<permission>
<permission-group>
<permission-tree>
<supports-gl-texture>
<supports-screens>
<uses-configuration>
br><uses-feature>
<uses-permission>
<uses-permission-sdk-23>
br>>><uses-sdk>
descrição: O elemento raiz do ficheiro AndroidManifest.xml. Deve conter um<application>
elemento e especificarxmlns:android
epackage
atributos. atributos:xmlns:android
define o espaço de nomes do Android. Este atributo deve ser sempre definido para “package
Um nome de pacote completo em linguagem Java para a aplicação Android. O nome pode conter letras maiúsculas ou minúsculas (‘A’ a ‘Z’), números, e sublinhados (‘_’). Contudo, as partes individuais do nome do pacote só podem começar com letras.
Enquanto constrói a sua aplicação num pacote de aplicação (APK), o sistema de construção usa o package
atributo para duas coisas:
- aplica este nome como o espaço de nomes para a sua aplicação gerada
R.java
classe (usada para aceder aos recursos da sua aplicação).Por exemplo, se
package
estiver definido para"com.example.myapp"
, oR
classe é criado emcom.example.myapp.R
. - Utiliza este nome para resolver quaisquer nomes relativos de classe que sejam declarados no ficheiro manifesto.
Por exemplo, se
package
estiver definido em"com.example.myapp"
, uma actividade declarada como<activity android:name=".MainActivity">
está resolvida a sercom.example.myapp.MainActivity
.
Este nome é também o nome padrão para o seu processo de aplicação (ver o <application>
element’s process
attribute). E é a afinidade padrão da tarefa para as suas actividades (ver o<activity>
element’staskAffinity
attribute).
Este nome também representa o ID da aplicação, que deve ser universalmente único para poder publicar a sua aplicação no Google Play. Contudo, no final do processo de construção da APK, as ferramentas de construção substituem o ficheiro package
nome utilizando oapplicationId
propriedade do ficheiro build.gradle
(utilizado por Android Studioprojects). Desde que mantenha o package
nome o mesmo que o ficheiro de construçãoapplicationId
do manifesto, isto não será uma preocupação. Mas se estes dois valores diferirem, deverá compreender as diferenças entre o “nome do pacote” e o “ID da aplicação” lendo como definir o ID da aplicação.
Para evitar conflitos com outros programadores, deverá utilizar a propriedade do domínio da Internet como base para os nomes dos seus pacotes (no verso). Por exemplo, as aplicações publicadas pelo Google começam comcom.google
.
Nota: Tanto o com.example
como o com.android
namespaces são proibidos pelo Google Play.
se quiser alterar o nome do seu pacote depois de o publicar, pode, mas deve manter o applicationId
o mesmo. O applicationId
define a identidade única para a sua aplicação no Google Play. Assim, se mudar, a APK é considerada como uma aplicação diferente e os utilizadores da versão anterior não receberão uma actualização. Para mais informações, ver como é que a aplicação ID.
android:sharedUserId
Esta constante foi depreciada no nível da API 29.
IDs de utilizador partilhados causam comportamento não determinístico dentro do gestor de pacotes. Como tal, a sua utilização é fortemente desencorajada e pode ser removida numa futura versão do Android. Em vez disso, as aplicações devem utilizar mecanismos de comunicação mais avançados, tais como serviços e fornecedores de conteúdos, para facilitar a interoperabilidade entre componentes partilhados. Note-se que as aplicações existentes não podem remover este valor, asmigrating off a shared user ID is not supported.
The name of a Linux user ID that will be shared with other apps.By default, Android assigned each app its own unique user ID.However, if this attribute is set to the same value for two or moreapps, they will all share the same ID – provided that theircertificate sets are identical. As aplicações com o mesmo ID de utilizador podem aceder aos dados dos outros e, se desejado, correr no mesmo processo.
android:targetSandboxVersion
A caixa de areia alvo para esta aplicação utilizar. Quanto maior o número da versão sandbox, maior o nível de segurança. O seu valor por defeito é1
; pode também defini-lo para2
.Definindo este atributo para2
muda oapp para uma caixa de areia SELinux diferente.
As seguintes restrições aplicam-se a uma caixa de areia de nível 2:
- O valor por defeito de
usesCleartextTraffic
no Network Security Config é falso. - A partilha de URL não é permitida.
Para aplicações instantâneas Android com o Android 8.0 (API nível 26) ou superior, este atributo deve ser definido para 2. Pode definir o nível sandbox na versão instalada da sua aplicação para o nível 1 menos restritivo, mas se o fizer, a sua aplicação não persiste nos dados da aplicação instantânea para a versão instalada da sua aplicação. Deve definir o valor sandbox da aplicação instalada para 2 em ordem para que os dados persistam desde a aplicação instantânea até à versão instalada.
A partir do momento em que uma aplicação é instalada, só pode actualizar o seu valor sandbox alvo para um valor superior.Para diminuir o valor sandbox alvo, é necessário desinstalar a app e substituí-la por uma versão cujo manifesto contenha um valor inferior para este atributo.
android:sharedUserLabel
Esta constante foi depreciada em nível de API 29.
IDs de utilizador partilhados causam um comportamento não determinístico dentro do gestor de pacotes. Como tal, a sua utilização é fortemente desencorajada e pode ser removida numa futura versão do Android. Em vez disso, as aplicações devem utilizar mecanismos de comunicação mais avançados, tais como serviços e fornecedores de conteúdos, para facilitar a interoperabilidade entre componentes partilhados. Note-se que as aplicações existentes não podem remover este valor, asmigrating off a shared user ID não é suportada.
A user-readable label for the shared user ID. A etiqueta deve ser definida como referência a um recurso string; não pode ser uma string em bruto.
Este atributo foi introduzido na API Nível 3. É significativo apenas se o atributo sharedUserId
também estiver definido.
android:versionCode
Um número de versão interno. Este número é utilizado apenas para determinar se uma versão é mais recente do que outra, com números mais elevados indicando versões morerecentes. Este não é o número de versão mostrado aos utilizadores; esse número é definido pelo atributoversionName
.
O valor deve ser definido como um número inteiro, tal como “100”. Pode defini-lo como quiser, desde que cada versão sucessiva tenha um número superior. Por exemplo, pode ser um número de construção. Ou pode traduzir um número de versão em formato “x.y” para um número inteiro, codificando o “x” e o “y” separadamente nos 16 bits inferiores e superiores. Ou poderia simplesmente aumentar o número em um de cada vez que uma nova versão fosse lançada.
android:versionName
O número de versão mostrado aos utilizadores. Este atributo pode ser definido como um rawstring ou como uma referência a um recurso de string. A string não tem outro propósito que o de ser mostrada aos utilizadores. O atributoversionCode
contém o número de versão significativo utilizado internamente.android:installLocation
O local de instalação padrão para a aplicação.
As seguintes cadeias de palavras-chave são aceites:
>Value | |
---|---|
“internalOnly “ |
A aplicação deve ser instalada apenas no armazenamento interno do dispositivo. Se isto for definido, a aplicação nunca será instalada no armazenamento externo. Se o armazenamento interno estiver cheio, então o sistema não instalará a aplicação. Este é também o comportamento padrão se não definir android:installLocation . |
“preferExternal “ |
O app prefere ser instalado no armazenamento externo (cartão SD). Não há qualquer garantia de que o sistema honrará este pedido. O aplicativo poderá ser instalado no armazenamento interno se o suporte externo não estiver disponível ou estiver cheio. Uma vez instalado, o utilizador pode mover o app para o armazenamento interno ou externo através das configurações do sistema. |
Nota: Por defeito, a sua aplicação será instalada no armazenamento interno e não pode ser instalada no armazenamento externo, a menos que defina este atributo como “auto
” ou “preferExternal
“.
Quando uma aplicação é instalada no armazenamento externo:
- O ficheiro
.apk
é guardado no armazenamento externo, mas quaisquer dados da aplicação (tais como bases de dados) ainda são guardados na memória interna do dispositivo. - O recipiente em que o ficheiro
.apk
é guardado é codificado com uma chave que permite à aplicação funcionar apenas no dispositivo que a instalou. (Um utilizador não pode transferir o cartão SD para outro dispositivo e utilizar aplicações instaladas no cartão). Embora, vários cartões SD possam ser utilizados com o mesmo dispositivo. - A pedido do utilizador, a aplicação pode ser movida para o armazenamento interno.
O utilizador pode também pedir para mover uma aplicação do armazenamento interno para o armazenamento externo. Contudo, o sistema não permitirá ao utilizador mover a aplicação para armazenamento externo se este atributo for definido para internalOnly
, que é a configuração padrão.
Ler App Install Location formore information about using this attribute (including how to maintain backward compatibility).
Introduced in: API Nível 8.
Introduzido em: API Nível 1 para todos os atributos, salvo indicação em contrário na descrição do atributo. ver também:<application>