AndroidManifest.xml est un composant central de toute application Android : c’est un fichier déclaratif dans lequel les développeurs définissent des aspects importants de la structure et du comportement de l’app. Ce fichier XML est indispensable pour préciser les propriétés de base de l’app, comme ses composants (activities, services, broadcast receivers et content providers) et les autorisations dont elle a besoin pour fonctionner correctement. AndroidManifest.xml fait le lien entre l’app et le système d’exploitation Android, afin que le système comprenne comment l’app doit être intégrée et interagir avec les ressources de l’appareil et les autres applications.
En définissant des éléments comme l’orientation de l’écran, l’icône et le thème de l’app, ainsi que les fonctions matérielles qu’elle utilise, AndroidManifest.xml permet aux développeurs d’adapter l’expérience utilisateur et de contrôler les appareils auxquels l’app est proposée. Ce fichier n’est donc pas seulement une nécessité technique, mais un composant stratégique qui joue un rôle essentiel pour que l’app réponde à la fois aux exigences techniques et aux attentes des utilisateurs dans un univers mobile en constante évolution.
AndroidManifest.xml est un fichier central de toute application Android, qui sert de feuille de route pour la structure et les fonctionnalités de l’app. Il définit des informations essentielles comme les composants de l’app (activities, services, broadcast receivers et content providers) et les autorisations dont elle a besoin pour fonctionner correctement. Avec la configuration de build, le manifeste détermine aussi la compatibilité de l’app avec les différentes versions d’Android et configurations d’appareils, ce qui contribue à ce qu’elle fonctionne sans accroc sur différents appareils. En incluant des métadonnées et des détails de configuration dans AndroidManifest.xml, les développeurs peuvent contrôler le comportement de l’app et son interaction avec le système, ce qui en fait un élément essentiel du processus de développement Android.
More about AndroidManifest.xml
AndroidManifest.xml est un fichier de configuration essentiel de toute application Android, qui constitue la déclaration centrale des propriétés et des composants de base de l’app. Il est indispensable pour que le système Android comprenne comment l’application doit se comporter, quels composants elle contient et quelles autorisations elle requiert pour fonctionner correctement.
Techniquement, AndroidManifest.xml est un fichier XML situé dans le dossier src/main du module de l’app. Il définit des aspects importants comme les composants qui constituent l’app : activities, services, broadcast receivers et content providers. Dans les projets modernes, l’identifiant du package (applicationId) et la version sont définis dans le fichier de build Gradle, et les outils de build fusionnent ces valeurs et les manifestes de toutes les bibliothèques dans le manifeste final. Le manifeste précise aussi les autorisations dont l’app a besoin, par exemple l’accès à internet ou à l’appareil photo ; pour les autorisations sensibles, l’app doit en outre interroger l’utilisateur à l’exécution, ce qui garantit qu’il est informé des ressources que l’app va utiliser.
AndroidManifest.xml peut contenir plusieurs sections, chacune correspondant à des fonctionnalités différentes :
La section application : on y définit les propriétés générales de l’application, comme le thème, les icônes et les noms. C’est aussi là que sont déclarés les composants qui constituent l’app, ainsi que la manière de les démarrer. Cette section est essentielle pour que l’app soit correctement présentée et fonctionne comme prévu.
La section des autorisations : cette partie du manifeste précise les autorisations dont l’app a besoin pour accéder à des parties protégées du système ou aux données de l’utilisateur. Il peut s’agir d’autorisations pour utiliser les connexions réseau, lire les contacts ou accéder au stockage de l’appareil. Une gestion correcte des autorisations est essentielle à la fois pour la sécurité et pour l’expérience utilisateur.
Les intent filters : les intent filters servent à définir comment les composants de l’app peuvent interagir avec d’autres apps et avec le système. Ils permettent à l’app de réagir à des actions ou à des données précises, comme l’ouverture d’une page web ou le partage d’un fichier. L’app peut ainsi s’intégrer de façon fluide aux autres services et fonctions de l’appareil.
L’un des grands atouts d’AndroidManifest.xml est sa capacité à centraliser et à organiser les informations nécessaires à l’exécution d’une application Android. En regroupant ces informations en un seul endroit, les développeurs peuvent facilement gérer et mettre à jour la configuration de l’app, ce qui réduit le risque d’erreurs et d’incohérences.
AndroidManifest.xml joue aussi un rôle important dans la sécurité de l’app. En exigeant des autorisations explicites et en fixant des limites claires à ce que les composants de l’app exposent aux autres apps, par exemple avec l’attribut android:exported, le manifeste contribue à protéger les données de l’utilisateur et l’intégrité de l’appareil. C’est particulièrement important à une époque où la sécurité et la vie privée sont au premier plan.
En pratique, AndroidManifest.xml est un élément essentiel de tout processus de développement Android. Il garantit que l’app est correctement configurée et prête à interagir avec l’utilisateur et le système de manière sûre et efficace. Que l’app soit simple ou qu’il s’agisse d’une solution complexe comportant de nombreux composants, un AndroidManifest.xml bien structuré est une clé de la réussite.
En résumé, AndroidManifest.xml est un composant critique du développement Android, qui réunit structure, sécurité et fonctionnalités dans un seul fichier. Sa capacité à définir et à contrôler le comportement de l’app en fait un outil indispensable pour les développeurs qui veulent créer des applications robustes et sûres pour la plateforme Android.
Frequently asked questions about AndroidManifest.xml
À quoi sert le fichier AndroidManifest.xml dans une app Android ?
Le fichier AndroidManifest.xml est un composant essentiel de toute application Android, car c’est le fichier de configuration central qui définit les propriétés et les composants de base de l’app. Il précise notamment le nom de l’app, ses icônes et les autorisations dont elle a besoin pour fonctionner correctement, tandis que la version est normalement définie dans le build Gradle et ajoutée au manifeste final. Lors de l’installation de l’app, le système Android lit ce fichier pour comprendre comment l’intégrer au système et de quelles ressources elle a besoin.
Le fichier AndroidManifest.xml contient en outre les déclarations des composants de l’app, comme les activities, les services, les broadcast receivers et les content providers. Ces déclarations sont nécessaires pour que le système Android enregistre et gère correctement les différentes parties de l’app. Par exemple, une activity déclarée dans le manifeste peut être démarrée par l’app elle-même et, si elle est marquée comme exportée, aussi par d’autres apps et par le système, ce qui permet à l’app d’interagir avec d’autres apps et des fonctions système.
Par rapport aux autres fichiers de configuration d’une app Android, AndroidManifest.xml est unique, car il ne définit pas seulement la structure et les autorisations de l’app, mais contrôle aussi son comportement dans différents contextes et environnements. Le fichier manifeste est donc un élément critique du développement et de la distribution de l’app, car il contribue à ce qu’elle fonctionne correctement et en toute sécurité sur les différents appareils et versions d’Android.
Comment les autorisations sont-elles définies dans AndroidManifest.xml ?
Les autorisations sont déclarées dans AndroidManifest.xml avec l’élément uses-permission, placé directement dans l’élément manifest et en dehors de l’élément application. Chaque élément nomme une autorisation, par exemple android.permission.INTERNET pour l’accès au réseau ou android.permission.CAMERA pour l’appareil photo. Sans cette déclaration, l’app ne peut pas utiliser la fonctionnalité protégée, quoi que le code tente de faire. C’est comparable à iOS, où les raisons pour lesquelles l’app utilise des ressources protégées sont décrites dans le fichier Info.plist.
Android classe les autorisations par niveaux de protection. Les autorisations normales, comme l’accès à internet, sont accordées automatiquement à l’installation de l’app. Les autorisations dangereuses, comme l’appareil photo, la localisation, les contacts et le micro, doivent en outre être demandées à l’utilisateur à l’exécution depuis Android 6.0, et l’app doit gérer le cas où l’utilisateur refuse. Depuis Android 13, l’autorisation d’afficher des notifications doit également être demandée de cette façon. Certaines autorisations peuvent être limitées à certaines versions d’Android avec l’attribut android:maxSdkVersion.
Il est de bonne pratique de ne demander que les autorisations dont l’app a réellement besoin, car les autorisations superflues réduisent la confiance des utilisateurs et peuvent susciter des questions lors de l’examen par Google Play. Les bibliothèques peuvent aussi ajouter des autorisations par fusion des manifestes : il faut donc vérifier le manifeste fusionné avant publication, par exemple avec la vue Merged Manifest d’Android Studio. Dans la mesure du possible, il faut privilégier les alternatives qui ne nécessitent aucune autorisation, comme le sélecteur de photos du système.
Comment l’activity de lancement de l’app est-elle définie dans AndroidManifest.xml ?
L’activity de lancement de l’app est définie dans AndroidManifest.xml en attribuant à une activity un intent filter avec l’action android.intent.action.MAIN et la catégorie android.intent.category.LAUNCHER. Cela indique au système que cette activity doit être démarrée lorsque l’utilisateur touche l’icône de l’app.
Depuis Android 12, les activities dotées d’un intent filter doivent aussi préciser l’attribut android:exported, qui doit valoir true pour l’activity de lancement. Si plusieurs activities ont cette combinaison, plusieurs icônes peuvent apparaître dans le lanceur : normalement, une seule activity la possède. Les écrans de démarrage affichant par exemple un logo sont aujourd’hui souvent gérés avec l’API SplashScreen.
Quel rôle AndroidManifest.xml joue-t-il dans le cycle de vie de l’app ?
AndroidManifest.xml ne contrôle pas lui-même le cycle de vie, mais il indique au système de quels composants l’app est constituée et comment ils peuvent être démarrés. Les activities, services, broadcast receivers et content providers doivent être déclarés dans le fichier ; sinon, le système ne peut pas les créer.
Le manifeste peut aussi influer sur le déroulement du cycle de vie. Avec l’attribut configChanges, par exemple, on peut indiquer qu’une activity gère elle-même la rotation de l’écran au lieu d’être recréée, et launchMode détermine si de nouvelles instances sont créées. On peut en outre indiquer une classe Application personnalisée, créée avant tous les autres composants au démarrage du processus de l’app.
Comment définir les versions minimale et cible du SDK d’une app Android ?
Les versions minimale et cible du SDK indiquent quelles versions d’Android l’app prend en charge et pour quelle version elle a été compilée et testée. Auparavant, elles étaient indiquées dans AndroidManifest.xml avec l’élément uses-sdk, mais dans les projets modernes, elles sont définies dans le fichier build.gradle du module avec minSdk et targetSdk. Gradle insère ensuite les valeurs dans le manifeste final.
minSdk est la version d’Android la plus ancienne sur laquelle l’app peut être installée. targetSdk indique au système à quel comportement et à quelles règles de version l’app a été adaptée. Google Play exige que targetSdk soit régulièrement mis à jour vers une version récente pour que les apps puissent être publiées et mises à jour.
Comment les autorisations personnalisées sont-elles gérées dans AndroidManifest.xml ?
Une app peut définir ses propres autorisations dans AndroidManifest.xml avec l’élément permission. On y précise un nom unique, généralement basé sur le nom du package de l’app, ainsi qu’une description et un niveau de protection. Le niveau signature signifie que seules les apps signées avec la même clé peuvent obtenir l’autorisation, tandis que normal et dangerous donnent accès aux autres apps à des conditions différentes.
L’autorisation sert à protéger les composants de l’app, par exemple en définissant l’attribut android:permission sur une activity, un service ou un content provider. Les autres apps qui veulent utiliser le composant doivent demander l’autorisation avec uses-permission. Le niveau signature est souvent utilisé lorsque plusieurs apps d’un même développeur doivent partager des données en toute sécurité.
AndroidManifest.xml for dummies
AndroidManifest.xml, c’est comme la table des matières d’une app Android. Vois-le comme une liste qui dit au téléphone ce que l’app sait faire et comment elle doit se comporter. Quand une app est installée, le téléphone regarde d’abord ce fichier pour savoir de quelles fonctions l’app a besoin, comme l’accès à internet ou à l’appareil photo. C’est aussi là que l’app indique comment elle doit démarrer et quelles parties elle contient. AndroidManifest.xml est donc un fichier important qui aide le téléphone à comprendre et à gérer l’app correctement.