syntaxe :
contenu dans : aucun doit contenir :<application>
peut contenir :<compatible-screens>
<instrumentation>
<permission>
<permission-group>
<permission-tree>
<supports-gl-texture>
<supports-screens>
<uses-configuration>
<uses-feature>
<uses-permission>
<uses-permission-sdk-23>
<uses-sdk>
description : L’élément racine du fichier AndroidManifest.xml. Il doitcontenir un élément<application>
et spécifierxmlns:android
etpackage
attributs :xmlns:android
Définit l’espace de noms Android. Cet attribut doit toujours être défini sur « package
Un nom de paquet complet de style langage Java pour l’application Android. Ce nom peut contenir des lettres majuscules ou minuscules (‘A’ à ‘Z’), des chiffres et des traits de soulignement (‘_’). Cependant, les parties individuelles du nom du paquet ne peuvent commencer que par des lettres.
Lorsque vous construisez votre application dans le paquet d’une application (APK), le système de construction utilise l’attribut package
pour deux choses :
- Il applique ce nom comme espace de nom pour la classe
R.java
générée de votre application (utilisée pour accéder aux ressources de votre application). For example, ifpackage
is set to"com.example.myapp"
, theR
class is created atcom.example.myapp.R
. - Il utilise ce nom pour résoudre tous les noms de classe relatifs qui sont déclarés dans le fichier manifeste.
Par exemple, si
package
est défini comme"com.example.myapp"
, une activité déclarée comme<activity android:name=".MainActivity">
est résolue commecom.example.myapp.MainActivity
.
Ce nom est également le nom par défaut du processus de votre application (voir l’attribut <application>
element process
). Et c’est l’affinité de tâche par défaut pour vos activités (voir l’attribut<activity>
de l’élémenttaskAffinity
).
Ce nom représente également l’ID de l’application, qui doit être universellement unique pour pouvoir publier votre application dans Google Play. Cependant, vers la fin du processus de construction de l’APK, les outils de construction remplacent le nom package
en utilisant la propriétéapplicationId
du fichier build.gradle
(utilisé par les Studioprojets Android). Tant que vous gardez le nom du manifeste package
identique à celui du fichier de constructionapplicationId
, cela ne posera pas de problème. Mais si ces deux valeurs diffèrent, vous devez comprendre les différences entre le « nom du paquet » et l' »ID de l’application » en lisant comment définir l’ID de l’application.
Pour éviter les conflits avec d’autres développeurs, vous devez utiliser la propriété du domaine Internet comme base pour vos noms de paquet (en sens inverse). Par exemple, les applications publiées par Google commencent parcom.google
.
Note : les deux espaces de noms com.example
et com.android
sont interdits par Google Play.
Si vous voulez changer le nom de votre package après avoir publié votreapp, vous le pouvez, mais vous devez garder le applicationId
identique. La applicationId
définit l’identité unique de votre application sur Google Play. Ainsi, si vous la modifiez, l’APK est considéré comme une application différente et les utilisateurs de la version précédente ne recevront pas de mise à jour. Pour plus d’informations, voir comment définir l’ID de l’application.
android:sharedUserId
Cette constante a été dépréciée dans le niveau 29 de l’API.
Les ID utilisateur partagés provoquent un comportement non déterministe au sein du gestionnaire de paquets. En tant que tel, son utilisation est fortement déconseillée et pourrait être supprimée dans une future version d’Android. Au lieu de cela, les apps devraient utiliser des mécanismes de communication appropriés, tels que les services et les fournisseurs de contenu, pour faciliter l’interopérabilité entre les composants partagés. Notez que les apps existantes ne peuvent pas supprimer cette valeur, car la migration hors d’un ID utilisateur partagé n’est pas prise en charge.
Le nom d’un ID utilisateur Linux qui sera partagé avec d’autres apps.Par défaut, Android attribue à chaque app son propre ID utilisateur unique.Cependant, si cet attribut est défini sur la même valeur pour deux apps ou plus, elles partageront toutes le même ID – à condition que leurs ensembles de certificats soient identiques. Les apps ayant le même ID utilisateur peuvent accéder aux données des autres et, si elles le souhaitent, s’exécuter dans le même processus.
android:targetSandboxVersion
Le bac à sable cible que cette app doit utiliser. Plus le numéro de version du bac à sable est élevé,plus le niveau de sécurité est élevé.Sa valeur par défaut est1
; vous pouvez également le définir à2
.La définition de cet attribut à2
fait basculer l’application dans un bac à sable SELinux différent.
Les restrictions suivantes s’appliquent à un bac à sable de niveau 2 :
- La valeur par défaut de
usesCleartextTraffic
dans la configuration de sécurité réseau est false. - Le partage d’identifiant n’est pas autorisé.
Pour les applis instantanées Android ciblant Android 8.0 (niveau 26 de l’API) ou supérieur,cet attribut doit être défini sur 2. Vous pouvez définir le niveau de sandbox dans la version installée de votre appau niveau 1, moins restrictif, mais si vous le faites, votre app ne persiste pas les données de l’app instantanée vers la version installée de votre app. Vous devez définir la valeur de sandbox de l’app installée à 2pour que les données persistent de l’app instantanée à la version installée.
Une fois qu’une app est installée, vous pouvez uniquement mettre à jour sa valeur de sandbox cible à une valeur supérieure.Pour rétrograder la valeur de sandbox cible, vous devez désinstaller l’appet la remplacer par une version dont le manifeste contient une valeur inférieure pour cet attribut.
android:sharedUserLabel
Cette constante a été dépréciée au niveau 29 de l’API.
Les identifiants d’utilisateur partagés provoquent un comportement non déterministe au sein du gestionnaire de paquets. En tant que tel, son utilisation est fortement déconseillée et pourrait être supprimée dans une future version d’Android. Au lieu de cela, les apps devraient utiliser des mécanismes de communication appropriés, tels que les services et les fournisseurs de contenu, pour faciliter l’interopérabilité entre les composants partagés. Notez que les apps existantes ne peuvent pas supprimer cette valeur, car la migration hors d’un ID utilisateur partagé n’est pas prise en charge.
Une étiquette lisible par l’utilisateur pour l’ID utilisateur partagé. Le libellé doit être défini comme une référence à une ressource de type chaîne ; il ne peut pas s’agir d’une chaîne brute.
Cet attribut a été introduit dans le niveau 3 de l’API. Il n’est significatif que si l’attribut sharedUserId
est également défini.
android:versionCode
Un numéro de version interne. Ce numéro est utilisé uniquement pour déterminer si une version est plus récente qu’une autre, les numéros les plus élevés indiquant les versions les plus récentes. Il ne s’agit pas du numéro de version affiché aux utilisateurs ; ce numéro est défini par l’attributversionName
.
La valeur doit être définie comme un nombre entier, tel que « 100 ». Vous pouvez la définir comme vous le souhaitez, tant que chaque version successive a un nombre plus élevé. Par exemple, il pourrait s’agir d’un numéro de build. Ou vous pouvez traduire un numéro de version au format « x.y » en un nombre entier en codant le « x » et le « y » séparément dans les 16 bits inférieurs et supérieurs. Ou encore, vous pourriez simplement augmenter le numéro d’une unité à chaque fois qu’une nouvelle version est publiée.
android:versionName
Le numéro de version affiché aux utilisateurs. Cet attribut peut être défini comme une chaîne brute ou comme une référence à une ressource de type chaîne. La chaîne n’a pas d’autre but que d’être affichée aux utilisateurs. L’attributversionCode
contient le numéro de version significatif utilisé en interne.android:installLocation
L’emplacement d’installation par défaut de l’application.
Les chaînes de mots clés suivantes sont acceptées:
Valeur | Description | « internalOnly « |
L’app doit être installée sur le stockage interne du périphérique uniquement. Si cette option est définie, l’appareil ne sera jamais installé sur le stockage externe. Si le stockage interne est plein, alors le système n’installera pas l’app. C’est également le comportement par défaut si vous ne définissez pas android:installLocation . |
---|---|
« auto « |
L’app peut être installée sur le stockage externe, mais le système installera l’app sur le stockage interne par défaut. Si le stockage interne est plein, alors le système l’installera sur le stockage externe. Une fois installée, l’utilisateur peut déplacer l’appvers le stockage interne ou externe via les paramètres du système. |
« preferExternal « |
L’app préfère être installée sur le stockage externe (carte SD). Il nogarantie que le système honorera cette demande. L’installation peut se faire sur le stockage interne si le support externe est indisponible ou plein. Une fois installé, l’utilisateur peut déplacer le stockage interne ou externe à travers les paramètres du système. |
Note : Par défaut, votre app sera installée sur le stockage interne et ne pourra pas être installée sur le stockage externe, à moins que vous ne définissiez cet attribut comme étant « auto
» ou « preferExternal
« .
Lorsqu’une app est installée sur le stockage externe :
- Le fichier
.apk
est enregistré sur le stockage externe, mais toutes les données de l’app (comme les bases de données) sont toujours enregistrées sur la mémoire interne de l’appareil. - Le conteneur dans lequel le fichier
.apk
est enregistré est crypté avec une clé qui permet à l’app de fonctionner uniquement sur l’appareil qui l’a installée. (Un utilisateur ne peut pas transférer la carte SD sur un autre appareil et utiliser les applications installées sur la carte). Bien que,plusieurs cartes SD puissent être utilisées avec le même appareil. - À la demande de l’utilisateur, l’app peut être déplacée vers le stockage interne.
L’utilisateur peut également demander de déplacer une app du stockage interne vers le stockage externe. Cependant, le système ne permettra pas à l’utilisateur de déplacer l’app vers le stockage externe si cet attribut est défini sur internalOnly
, ce qui est le paramètre par défaut.
Lisez Emplacement d’installation de l’app pour plus d’informations sur l’utilisation de cet attribut (y compris la façon de maintenir la rétrocompatibilité).
Introduit dans : API Niveau 8.
Introduit dans : API Level 1 pour tous les attributs, sauf indication contraire dans la description de l’attribut. voir aussi : <application>