<application>

Syntaxe :
<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>
Contenu dans :
<manifest>
Peut contenir :
<activity>
<activity-alias>
<meta-data>
<service>
<receiver>
<profileable>
<provider>
<uses-library>
<uses-native-library>
Description :
Déclaration de l'application. Cet élément contient des sous-éléments qui déclarent chacun des composants de l'application, et possède des attributs pouvant affecter tous les composants.

Un grand nombre de ces attributs comme icon, label, permission, process, taskAffinity et allowTaskReparenting définissent des valeurs par défaut pour les attributs correspondants des éléments de composant. D'autres, tels que debuggable, enabled, description et allowClearUserData, définissent des valeurs pour l'application dans son ensemble et ne sont pas remplacés par les composants.

Attributs
android:allowTaskReparenting
Indique si les activités définies par l'application peuvent passer de la tâche qui les a lancées à la tâche pour laquelle elles ont une affinité lorsqu'elle sera prête. "true" est défini si les activités peuvent être transférées, tandis que "false" est défini si elles doivent rester dans la tâche dans laquelle elles ont commencé. La valeur par défaut est "false".

L'élément <activity> possède son propre attribut allowTaskReparenting qui peut remplacer la valeur définie ici.

android:allowBackup

Permet d'autoriser ou non l'application à participer à l'infrastructure de sauvegarde et de restauration. Si cet attribut est défini sur "false", aucune sauvegarde ni restauration de l'application ne sera jamais effectuée, même par une sauvegarde complète du système qui enregistre normalement toutes les données de l'application via adb. La valeur par défaut de cet attribut est "true".

Remarque : Pour les applications ciblant Android 12 (niveau d'API 31) ou version ultérieure, ce comportement varie. Sur les appareils de certains fabricants, vous ne pouvez pas désactiver la migration des fichiers de votre application d'un appareil à un autre.

Toutefois, vous pouvez désactiver la sauvegarde et la restauration dans le cloud des fichiers de votre application. Pour ce faire, définissez cet attribut sur "false", même si votre application cible Android 12 (niveau d'API 31) ou une version ultérieure.

Pour en savoir plus, consultez la section Sauvegarde et restauration sur la page qui décrit les changements de comportement pour les applications ciblant Android 12 (niveau d'API 31) ou version ultérieure.

android:allowClearUserData

Permet d'autoriser ou non l'application à réinitialiser les données utilisateur. Ces données incluent des indicateurs (signalant, par exemple, si l'utilisateur a vu des info-bulles d'introduction), ainsi que des paramètres et des préférences personnalisables. La valeur par défaut de cet attribut est "true".

Remarque : Seules les applications qui font partie de l'image système peuvent déclarer cet attribut explicitement. Les applications tierces ne peuvent pas l'inclure dans leur fichier manifeste.

Pour en savoir plus, consultez la section Présentation de la sauvegarde de données.

android:allowNativeHeapPointerTagging

Indique si la fonctionnalité de balisage du pointeur de tas mémoire est activée dans l'application. La valeur par défaut de cet attribut est "true".

Remarque : La désactivation de cette fonctionnalité ne résout pas le problème sous-jacent lié à l'état du code. Les futurs appareils ne seront peut-être pas compatibles avec ce balisage.

Pour en savoir plus, consultez la section Balisage des pointeurs.

android:appCategory

Déclare la catégorie de cette application. Les catégories permettent de rassembler plusieurs applications dans des groupes logiques ciblant, par exemple, l'utilisation de la batterie, du réseau ou du disque. Ne définissez cette valeur que pour les applications qui appartiennent à l'une des catégories spécifiques.

Doit correspondre à l'une des valeurs constantes suivantes.

ValeurDescription
accessibilityApplications axées sur l'accessibilité comme les lecteurs d'écran
audioApplications fonctionnant principalement avec de l'audio ou de la musique, comme les lecteurs de musique
gameApplications qui sont principalement des jeux
imageApplications fonctionnant principalement avec des images ou des photos (applications d'appareil photo ou de galerie, par exemple)
mapsApplications qui sont principalement des applications de cartographie, telles que les applications de navigation
newsApplications qui se concentrent sur l'actualité, telles que les journaux, les magazines ou les revues sportives
productivityApplications qui se concentrent sur la productivité, comme les applications de stockage dans le cloud ou d'espace de travail
socialApplications axées sur les réseaux sociaux, telles que les applications de chat, de communication, de messagerie ou de réseau social
videoApplications fonctionnant principalement avec des vidéos ou des films, telles que les applications de streaming

android:backupAgent
Nom de la classe qui implémente l'agent de sauvegarde de l'application, qui est une sous-classe de BackupAgent. La valeur de l'attribut est un nom de classe complet, tel que "com.example.project.MyBackupAgent". Cependant, pour faire court, si le premier caractère du nom est un point (".MyBackupAgent", par exemple), il est ajouté au nom du package spécifié dans l'élément <manifest>.

Il n'y a pas de valeur par défaut. Le nom doit être spécifique.

android:backupInForeground
Indique que des opérations de sauvegarde automatique peuvent être effectuées sur cette application, même si elle est dans un état équivalent à une application au premier plan. Soyez prudent lorsque vous utilisez cet attribut, car le système arrête une application pendant la sauvegarde automatique. Si cette option est définie sur "true", le comportement de l'application risque d'être affecté lorsqu'elle sera utilisée.

La valeur par défaut est "false", ce qui signifie que le système d'exploitation évite de sauvegarder l'application lorsqu'elle s'exécute au premier plan (par exemple, une application musicale qui lit activement des titres via un service dont l'état indique startForeground()).

android:banner
Ressource drawable fournissant une bannière graphique étendue pour l'élément associé. Utilisez ce paramètre avec la balise <application> afin de fournir une bannière par défaut pour toutes les activités de l'application, ou avec la balise <activity> afin de fournir une bannière pour une activité spécifique.

Le système utilisera cette bannière pour représenter une application sur l'écran d'accueil d'Android TV. Par conséquent, ne le spécifiez que pour les applications ayant une activité qui gère l'intent CATEGORY_LEANBACK_LAUNCHER.

Cet attribut est défini comme référence à une ressource drawable contenant l'image, par exemple "@drawable/banner". Il n'existe pas de bannière par défaut.

Pour en savoir plus, consultez la section Fournir une bannière sur l'écran d'accueil.

android:dataExtractionRules

Les applications peuvent définir cet attribut sur une ressource XML dans laquelle sont spécifiées les règles déterminant quels fichiers et répertoires peuvent être copiés à partir de l'appareil lors des opérations de sauvegarde ou de transfert.

Pour en savoir plus sur le format du fichier XML, consultez la section Sauvegarde et restauration.

android:debuggable
Indique si l'application peut être déboguée, même lorsqu'elle s'exécute sur un appareil en mode utilisateur. "true" si tel est le cas, et "false" dans le cas contraire. La valeur par défaut est "false".
android:description
Texte plus long et plus descriptif que le libellé de l'application. Cette valeur est définie comme référence à une ressource de chaîne. Contrairement au libellé, il ne peut pas s'agir d'une chaîne brute. Il n'existe pas de valeur par défaut.
android:enabled
Indique si le système Android peut instancier les composants de l'application. "true" si tel est le cas, et "false" dans le cas contraire. Si la valeur est "true", l'attribut enabled de chaque composant détermine si ce composant est activé. Si la valeur est "false", elle remplace les valeurs spécifiques au composant. Tous les composants sont désactivés.

La valeur par défaut est "true".

android:extractNativeLibs

À partir de la version 4.2.0 d'AGP, l'option DSL useLegacyPackaging remplace l'attribut manifeste extractNativeLibs. Utilisez useLegacyPackaging dans le fichier build.gradle de votre application au lieu d'extractNativeLibs dans le fichier manifeste pour configurer le comportement de compression de la bibliothèque native. Pour en savoir plus, consultez la note de version sur l'utilisation du langage DSL pour empaqueter des bibliothèques natives compressées.

Cet attribut indique si le programme d'installation du package extrait les bibliothèques natives de l'APK vers le système de fichiers. Si ce paramètre est défini sur "false", les bibliothèques natives sont stockées dans l'APK sans être compressées. Bien que l'APK puisse être volumineux, votre application se charge plus rapidement, car les bibliothèques se chargent directement à partir de l'APK au moment de l'exécution.

La valeur par défaut d'extractNativeLibs dépend de minSdkVersion et de la version d'AGP que vous utilisez. Dans la plupart des cas, le comportement par défaut est le comportement souhaité, et vous n'avez donc pas besoin de définir cet attribut explicitement.

android:fullBackupContent
Cet attribut renvoie vers un fichier XML contenant des règles de sauvegarde complètes pour la sauvegarde automatique. Celles-ci déterminent les fichiers à sauvegarder. Pour en savoir plus, consultez la section Syntaxe de la configuration XML pour la sauvegarde automatique.

Cet attribut est facultatif. S'il n'est pas spécifié, la sauvegarde automatique inclut par défaut la plupart des fichiers de votre application. Pour en savoir plus, consultez la section Fichiers sauvegardés.

android:fullBackupOnly
Cet attribut indique si la sauvegarde automatique doit être utilisée sur les appareils sur lesquels elle est disponible. Si ce paramètre est défini sur "true", votre application effectue une sauvegarde automatique lorsqu'elle est installée sur un appareil équipé d'Android 6.0 (niveau d'API 23) ou version ultérieure. Sur les appareils plus anciens, l'application ignore cet attribut et effectue des sauvegardes clé-valeur.

La valeur par défaut est "false".

android:gwpAsanMode
Cet attribut indique si GWP-ASan doit être utilisé. Il s'agit d'une fonctionnalité d'allocation de mémoire native qui permet de détecter les bugs de type "use-after-free" et "heap-buffer-overflow".

La valeur par défaut est "never".

android:hasCode
Indique si l'application contient du code. "true" si tel est le cas, et "false" dans le cas contraire. Lorsque cette valeur est "false", le système n'essaie pas de charger le code de l'application lors du lancement des composants. La valeur par défaut est "true".

Par exemple, votre application peut prendre en charge Play Feature Delivery et inclure des modules de fonctionnalités qui ne génèrent aucun fichier DEX, ce qui correspond à une optimisation du bytecode pour la plate-forme Android. Si tel est le cas, vous devez définir cette propriété sur "false" dans le fichier manifeste du module pour éviter les erreurs d'exécution.

android:hasFragileUserData
Indique si l'utilisateur est invité à conserver les données de l'application lorsqu'il la désinstalle. La valeur par défaut est "false".
android:hardwareAccelerated
Indique si le rendu avec accélération matérielle est activé pour toutes les activités et les vues de cette application. "true" si tel est le cas, et "false" dans le cas contraire. La valeur par défaut est "true" si vous définissez minSdkVersion ou targetSdkVersion sur "14" ou plus. Sinon, la valeur est "false".

À partir d'Android 3.0 (niveau d'API 11), un moteur de rendu OpenGL avec accélération matérielle est disponible pour les applications. Il permet d'améliorer les performances de nombreuses opérations graphiques 2D courantes. Lorsque le moteur de rendu avec accélération matérielle est activé, la plupart des opérations dans Canvas, Paint, Xfermode, ColorFilter, Shader et Camera sont accélérées.

Cela se traduit par des animations et un défilement plus fluides, ainsi que par une meilleure réactivité globale, même pour les applications qui n'utilisent pas explicitement les bibliothèques OpenGL du framework.

Les opérations OpenGL en 2D ne sont pas toutes accélérées. Si vous activez le moteur de rendu avec accélération matérielle, testez votre application pour vous assurer qu'elle peut l'utiliser sans générer d'erreurs.

Pour en savoir plus, consultez le guide sur l'accélération matérielle.

android:icon
Icône représentant l'application dans son ensemble. Il s'agit également de l'icône par défaut pour chacun des composants de l'application. Consultez les attributs icon individuels pour <activity>, <activity-alias>, <service>, <receiver> et <provider>.

Cet attribut est défini comme référence à une ressource drawable contenant l'image, par exemple "@drawable/icon". Il n'existe pas d'icône par défaut.

android:isGame
Indique si l'application est un jeu. Le système peut regrouper les applications classées comme jeux ou les afficher séparément des autres applications. La valeur par défaut est "false".
android:isMonitoringTool

Indique que cette application est conçue pour surveiller d'autres personnes.

Remarque : Si une application déclare cet attribut dans son fichier manifeste, le développeur doit suivre le Règlement relatif aux logiciels de traque pour publier l'application sur Google Play.

Il n'existe pas de valeur par défaut. Le développeur doit spécifier l'une des valeurs suivantes :

ValeurDescription
"parental_control"L'application est conçue pour le contrôle parental et s'adresse spécifiquement aux parents qui souhaitent protéger leurs enfants.
"enterprise_management"L'application s'adresse aux entreprises qui souhaitent gérer et suivre les appareils fournis à leurs employés.
"other"L'application est conçue pour un cas d'utilisation non spécifié dans ce tableau.
android:killAfterRestore
Indique si l'application s'arrête après la restauration de ses paramètres lors d'une opération de restauration complète du système. Les opérations de restauration d'un seul package n'entraînent jamais l'arrêt de l'application. Les opérations de restauration complète du système ne se produisent généralement qu'une seule fois, lors de la configuration initiale du téléphone. Les applications tierces n'ont normalement pas besoin d'utiliser cet attribut.

La valeur par défaut est "true", ce qui signifie que l'application est arrêtée une fois que le traitement des données est terminé lors d'une restauration complète du système.

android:largeHeap
Indique si les processus de l'application sont créés avec un tas de mémoire Dalvik volumineux. Tous les processus créés pour l'application entrent en compte. Il ne s'applique qu'à la première application chargée dans un processus. Si vous optez pour un ID utilisateur partagé pour permettre à plusieurs applications d'utiliser un processus, elles doivent toutes avoir recours à cette option de manière cohérente afin d'éviter des résultats imprévisibles.

La plupart des applications n'en ont pas besoin et se concentrent plutôt sur la réduction de l'utilisation globale de la mémoire pour améliorer les performances. L'activation de cette option ne garantit pas non plus une augmentation fixe de la mémoire disponible, car certains appareils sont limités par leur mémoire totale disponible.

Pour déterminer la taille de mémoire disponible au moment de l'exécution, utilisez les méthodes getMemoryClass() ou getLargeMemoryClass().

android:label
Libellé compréhensible représentant l'application dans son ensemble. Il s'agit également du libellé par défaut pour chacun des composants de l'application. Consultez les attributs label individuels pour <activity>, <activity-alias>, <service>, <receiver> et <provider>.

Le libellé est défini comme une référence à une ressource de chaîne, de sorte qu'il puisse être localisé comme les autres chaînes de l'interface utilisateur. Toutefois, lorsque vous développez l'application, vous pouvez également le définir comme une chaîne brute.

android:logo
Logo représentant l'application dans son ensemble. Il s'agit également du logo par défaut pour chacun des composants de l'application. Cet attribut est défini comme référence à une ressource drawable contenant l'image, par exemple "@drawable/logo". Il n'existe pas de logo par défaut.
android:manageSpaceActivity
Nom complet d'une sous-classe Activity lancée par le système pour permettre aux utilisateurs de gérer la mémoire occupée par l'application sur l'appareil. L'activité est également déclarée avec un élément <activity>.
android:name
Nom complet d'une sous-classe Application implémentée pour l'application. Lorsque le processus de l'application est lancé, cette classe est instanciée avant les composants de l'application elle-même.

La sous-classe est facultative. La plupart des applications n'en ont pas besoin. En l'absence d'une sous-classe, Android utilise une instance de la classe Application de base.

android:networkSecurityConfig

Spécifie le nom du fichier XML contenant la configuration de sécurité réseau de l'application. Cette valeur est une référence au fichier de ressources XML contenant la configuration.

Cet attribut a été ajouté au niveau d'API 24.

android:permission
Nom d'une autorisation dont les clients ont besoin pour interagir avec l'application. Cet attribut est un moyen utile de définir une autorisation qui s'applique à tous les composants de l'application. Pour l'écraser, définissez les attributs permission des composants individuels.

Pour en savoir plus sur les autorisations, consultez la section Autorisations dans la présentation du fichier manifeste d'application et les conseils de sécurité.

android:persistent
Indique si l'application reste active en permanence. "true" si tel est le cas, et "false" dans le cas contraire. La valeur par défaut est "false". Les applications ne définissent normalement pas cet indicateur. Le mode de persistance n'est destiné qu'à certaines applications système.
android:process
Nom d'un processus dans lequel tous les composants de l'application doivent s'exécuter. Chaque composant peut remplacer cette valeur par défaut en définissant son propre attribut process.

Par défaut, Android crée un processus pour une application lorsque le premier de ses composants doit s'exécuter. Tous les composants s'exécutent ensuite dans ce processus. Le nom du processus par défaut correspond au nom du package défini par l'élément <manifest>.

En définissant cet attribut sur un nom de processus partagé avec une autre application, vous pouvez faire en sorte que les composants des deux applications s'exécutent dans le même processus, mais uniquement si elles partagent également un ID utilisateur et sont signées avec le même certificat.

Si le nom attribué à cet attribut commence par le signe deux-points (:), un processus réservé à l'application est créé lorsque cela est nécessaire. Si le nom du processus commence par une minuscule, un processus global portant ce nom est créé. Ce type de processus peut être partagé avec d'autres applications, ce qui réduit l'utilisation des ressources.

android:restoreAnyVersion
Indique que l'application est prête à tenter de restaurer un ensemble de données sauvegardé, même si la sauvegarde a été stockée par une version plus récente de l'application que celle actuellement installée sur l'appareil. Définir cet attribut sur "true" permet au gestionnaire de sauvegarde d'effectuer une restauration même lorsqu'une non-concordance de version suggère que les données sont incompatibles. Utilisez-le avec précaution.

La valeur par défaut de cet attribut est "false".

android:requestLegacyExternalStorage

Indique si l'application souhaite désactiver l'espace de stockage cloisonné.

Remarque : En fonction des changements de règles ou de compatibilité de l'application, le système peut ne pas répondre à cette demande de désactivation.

android:requiredAccountType
Spécifie le type de compte requis par l'application pour fonctionner. Si votre application nécessite un élément Account, la valeur de cet attribut doit correspondre au type d'authentificateur de compte qu'elle utilise, tel que défini par AuthenticatorDescription (par exemple, "com.google").

La valeur par défaut est "null", ce qui indique que l'application peut fonctionner sans comptes.

Étant donné que les profils dont l'accès est limité ne peuvent pas ajouter de comptes pour le moment, la spécification de cet attribut empêche ces profil d'accéder à votre application, sauf si vous déclarez également android:restrictedAccountType avec la même valeur.

Attention : Si les données du compte sont susceptibles de révéler des informations personnelles, vous devez déclarer cet attribut et conserver la valeur "null" pour android:restrictedAccountType. De cette manière, les profils dont l'accès est limité ne pourront pas utiliser votre application pour accéder aux informations personnelles de leur propriétaire.

Cet attribut a été ajouté au niveau d'API 18.

android:resizeableActivity

Indique si l'application est compatible avec le mode multifenêtre. Vous pouvez définir cet attribut dans l'élément <activity> ou <application>.

Si vous définissez cet attribut sur "true", l'utilisateur peut lancer l'activité en mode Écran partagé et en mode Format libre. Si vous le définissez sur ”false”, l'application ne peut pas être testée ni optimisée pour un environnement multifenêtre. Pour activer l'activité en mode multifenêtre, le système peut toujours appliquer le mode de compatibilité.

Définir cet attribut sur "true" ne garantit pas qu'aucune autre application en mode multifenêtre (telle que Picture-in-picture) n'est visible à l'écran ni sur d'autres écrans. Par conséquent, cela ne signifie pas que votre application dispose d'un accès exclusif aux ressources.

Pour les applications ciblant le niveau d'API 24 ou supérieur, la valeur par défaut est "true".

Si votre application cible le niveau d'API 31 ou supérieur, cet attribut fonctionne différemment sur les petits et les grands écrans :

  • Grands écrans (SW = > 600 dp) : toutes les applications sont compatibles avec le mode multifenêtre. L'attribut indique si une application peut être redimensionnée (et non si elle est compatible avec le mode multifenêtre). Si la valeur est resizeableActivity="false", l'application passe en mode de compatibilité si nécessaire, conformément aux dimensions d'affichage.
  • Petits écrans (SW < 600 dp) : si resizeableActivity="true" et si la largeur et la hauteur minimales de l'activité sont conformes aux exigences du mode multifenêtre, celle-ci est compatible avec le mode multifenêtre. Si cette valeur indique resizeableActivity="false", l'application n'est pas compatible avec le mode multifenêtre, quelles que soient la largeur et la hauteur minimales de l'activité.

Remarque : Les fabricants d'appareils peuvent ignorer le comportement du niveau d'API 31.

Cet attribut a été ajouté au niveau d'API 24.

Remarque : La valeur de l'activité racine d'une tâche est appliquée à toutes les autres activités qui y sont lancées. Autrement dit, si l'activité racine d'une tâche peut être redimensionnée, le système considère toutes les autres activités de cette tâche comme redimensionnables. Si l'activité racine n'est pas redimensionnable, les autres activités de la tâche ne le sont pas.

android:restrictedAccountType
Spécifie le type de compte requis par cette application et indique que les profils dont l'accès est limité peuvent accéder aux comptes appartenant au propriétaire. Si votre application nécessite un objet Account et que les profils dont l'accès est limité peuvent accéder aux comptes de l'utilisateur principal, la valeur de cet attribut doit correspondre au type d'authentificateur de compte utilisé par votre application, comme défini par AuthenticatorDescription (par exemple, "com.google").

La valeur par défaut est "null", ce qui indique que l'application peut fonctionner sans comptes.

Attention : Si vous spécifiez cet attribut, les profils dont l'accès est limité peuvent utiliser votre application avec les comptes appartenant au propriétaire, ce qui peut entraîner l'affichage d'informations personnelles. Si le compte est susceptible de révéler des informations personnelles, n'utilisez pas cet attribut. Déclarez plutôt l'attribut android:requiredAccountType pour que les profils dont l'accès est limité ne puissent pas accéder à votre application.

Cet attribut a été ajouté au niveau d'API 18.

android:supportsRtl
Détermine si votre application est prête à accepter les mises en page qui se lisent de droite à gauche.

Si la valeur est "true" et que targetSdkVersion correspond à la version 17 ou plus, plusieurs API de lecture de droite à gauche seront activées et utilisées par le système afin que votre application puisse afficher les mises en page correspondantes. Si la valeur est "false" ou si targetSdkVersion correspond à la version 16 ou à une version inférieure, les API de lecture de droite à gauche seront ignorées ou n'auront aucun effet. Votre application se comportera donc de la même manière indépendamment de la direction de la mise en page associée aux paramètres régionaux spécifiques à l'utilisateur. Autrement dit, les mises en page se feront toujours de gauche à droite.

La valeur par défaut de cet attribut est "false".

Cet attribut a été ajouté au niveau d'API 17.

android:taskAffinity
Nom d'affinité qui s'applique à toutes les activités dans l'application, sauf celles qui définissent une autre affinité avec leurs propres attributs taskAffinity. Consultez cet attribut pour en savoir plus.

Par défaut, toutes les activités d'une application partagent la même affinité. Le nom de cette affinité est identique au nom du package défini par l'élément <manifest>.

android:testOnly
Indique si cette application est utilisée uniquement à des fins de test. L'application peut, par exemple, exposer des fonctionnalités ou des données qui peuvent entraîner une faille de sécurité, mais cela est particulièrement utile pour les tests. Ce type d'APK ne peut être installé que via adb. Vous ne pouvez pas le publier sur Google Play.

Android Studio ajoute automatiquement cet attribut lorsque vous cliquez sur Run (Exécuter) .

android:theme
Renvoie à une ressource de style définissant un thème par défaut pour toutes les activités de l'application. Pour remplacer les activités individuelles par les valeurs par défaut, définissez leurs propres attributs theme. Pour en savoir plus, consultez la section Styles et thèmes.
android:uiOptions
Options supplémentaires pour l'interface utilisateur d'une activité. Doit correspondre à l'une des valeurs suivantes :
ValeurDescription
"none"Aucune option d'interface utilisateur supplémentaire. Il s'agit de l'option par défaut.
"splitActionBarWhenNarrow"Ajoute une barre en bas de l'écran pour afficher les tâches dans la barre d'application (également appelée barre d'action) lorsque l'espace horizontal de l'écran est limité (par exemple, en mode portrait sur un téléphone). Au lieu d'afficher quelques-unes des tâches qui apparaissent dans la barre d'application en haut de l'écran, celle-ci est divisée en deux sections : la partie de navigation supérieure et la barre de tâches inférieure. Vous disposerez ainsi d'un espace raisonnable non seulement pour les tâches, mais aussi pour la navigation et les éléments de titre dans la partie supérieure. Les éléments de menu ne sont pas répartis entre les deux barres. Ils apparaissent toujours ensemble.

Pour en savoir plus, consultez Ajouter la barre d'application.

Cet attribut a été ajouté au niveau d'API 14.

android:usesCleartextTraffic
Indique si l'application prévoit d'utiliser un trafic réseau en texte clair (par exemple, HTTP en texte clair). La valeur par défaut pour les applications qui ciblent le niveau d'API 27 ou inférieur est "true". Les applications qui ciblent le niveau d'API 28 ou supérieur sont définies par défaut sur "false".

Lorsque l'attribut est défini sur "false", les composants de la plate-forme (par exemple, les piles HTTP et FTP, DownloadManager et MediaPlayer) refusent les requêtes d'utilisation du trafic en texte clair soumises par l'application.

Idéalement, les bibliothèques tierces devraient également respecter ce paramètre. La raison principale pour laquelle il est recommandé d'éviter le trafic en texte clair est le manque de confidentialité, d'authenticité et de protection contre la falsification. Un pirate informatique pourrait espionner les données transmises et les modifier sans être détecté.

Cet indicateur est implémenté dans la mesure du possible, car il n'est pas réaliste d'empêcher tout trafic en texte clair provenant d'applications Android étant donné le niveau d'accès qui leur est fourni. Par exemple, l'API Socket n'est pas censée respecter cette option, car elle n'est pas en mesure de déterminer si le trafic est en texte clair.

Cependant, la plupart du trafic réseau provenant des applications est géré par des piles et des composants réseau de niveau supérieur, qui peuvent appliquer cette option en lisant ApplicationInfo.flags ou NetworkSecurityPolicy.isCleartextTrafficPermitted().

Remarque : WebView respecte cet attribut pour les applications qui ciblent le niveau d'API 26 ou supérieur.

Lors du développement de l'application, le mode strict peut être utilisé pour identifier tout trafic en texte clair qui en découle. Pour en savoir plus, consultez StrictMode.VmPolicy.Builder.detectCleartextNetwork().

Cet attribut a été ajouté au niveau d'API 23.

Cette option est ignorée sur Android 7.0 (niveau d'API 24) ou version ultérieure si une configuration de sécurité réseau Android est présente.

android:vmSafeMode
Indique si l'application souhaite que la machine virtuelle (VM) fonctionne en mode sans échec. La valeur par défaut est "false".

Cet attribut a été ajouté au niveau d'API 8, où la valeur "true" désactive le compilateur JIT Dalvik.

Cet attribut a été adapté au niveau d'API 22, où la valeur "true" désactive le compilateur AART.

Première apparition :
Niveau d'API 1
Voir aussi :
<activity>
<service>
<receiver>
<provider>