Comprendre le fichier AndroidManifest.xml | Original, traduit par l'IA

Home PDF

Si vous vous lancez dans le développement Android, l’un des premiers fichiers que vous rencontrerez est le AndroidManifest.xml. C’est comme le plan de votre application — il indique au système Android tout ce qu’il doit savoir sur votre application avant même qu’elle ne s’exécute. Aujourd’hui, nous allons disséquer un fichier manifeste d’exemple d’une application appelée “Flower” (nom du package : com.lzw.flower) et explorer ses composants clés, concepts et motifs.


Qu’est-ce que le AndroidManifest.xml ?

Le fichier AndroidManifest.xml est un fichier de configuration requis pour chaque application Android. Il se trouve dans le répertoire racine de votre projet et déclare des informations essentielles comme le nom du package de l’application, les permissions, les composants (par exemple, les activités), et les fonctionnalités matérielles/logicielles dont elle a besoin. Pensez-y comme à la carte d’identité de l’application que le système d’exploitation Android lit.

Passons en revue l’exemple étape par étape.


La Structure du Manifest

Voici le manifeste que nous allons utiliser (légèrement simplifié pour la lisibilité) :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.lzw.flower"
    android:versionCode="8"
    android:versionName="1.5.2">

    <uses-sdk android:minSdkVersion="14" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    <application
        android:label="@string/app_name"
        android:icon="@drawable/icon128"
        android:name=".base.App"
        android:theme="@style/AppTheme">

        <activity android:name=".deprecated.CameraActivity" android:screenOrientation="landscape" />
        <activity android:name=".base.SplashActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".draw.DrawActivity" android:screenOrientation="landscape" />
        <activity android:name=".result.ResultActivity" android:screenOrientation="landscape" />
        <activity android:name=".material.MaterialActivity" android:screenOrientation="landscape" />
        <activity android:name=".activity.PhotoActivity" android:screenOrientation="landscape" />
        <activity android:name=".activity.LoginActivity" android:screenOrientation="portrait" />
    </application>
</manifest>

Maintenant, décomposons-le en ses sections principales et expliquons les concepts qui se cachent derrière.


1. L’élément racine <manifest>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.lzw.flower"
    android:versionCode="8"
    android:versionName="1.5.2">

Concept : La balise <manifest> définit l’identité et la version de l’application, assurant que le système sait quelle application il traite et comment gérer les mises à jour.


2. La version SDK avec <uses-sdk>

<uses-sdk android:minSdkVersion="14" />

Concept : Cela assure la compatibilité. Les appareils exécutant des versions d’Android inférieures à 4.0 ne peuvent pas installer cette application. Il n’y a pas de targetSdkVersion ou maxSdkVersion ici, mais ils pourraient être ajoutés pour affiner davantage la compatibilité.


3. Les permissions avec <uses-permission>

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

Cette application demande plusieurs permissions :

Concept : Android utilise un système de permissions pour protéger la vie privée et la sécurité des utilisateurs. Ces déclarations indiquent au système (et à l’utilisateur) quelles fonctionnalités sensibles l’application nécessite. Après Android 6.0 (API 23), les permissions dangereuses (comme CAMERA) nécessitent également des demandes en temps réel dans le code de l’application.


4. Les fonctionnalités avec <uses-feature>

<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

Concept : Contrairement aux permissions, les balises <uses-feature> filtrent l’application sur le Google Play Store. Si un dispositif manque d’un appareil photo ou d’autofocus, l’application ne sera même pas affichée comme installable, sauf si elles sont marquées comme optionnelles avec android:required="false".


5. L’élément <application>

<application
    android:label="@string/app_name"
    android:icon="@drawable/icon128"
    android:name=".base.App"
    android:theme="@style/AppTheme">

Concept : La balise <application> définit les paramètres globaux de l’application. Les ressources comme @string et @drawable sont stockées dans les dossiers res/, favorisant la réutilisabilité et la localisation.


6. Les activités avec <activity>

Le manifeste liste plusieurs activités, qui sont les écrans d’interface utilisateur de l’application :

Exemple 1 : Écran de démarrage (Activité de lancement)

<activity
    android:name=".base.SplashActivity"
    android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

Motif : L’activité de lancement est un point de départ courant, souvent un écran de démarrage ou un écran d’accueil.

Exemple 2 : Activité de l’appareil photo

<activity
    android:name=".deprecated.CameraActivity"
    android:screenOrientation="landscape">

Motif : Les activités imposent souvent une orientation pour des cas d’utilisation spécifiques (par exemple, les applications d’appareil photo fonctionnent mieux en mode paysage).

Autres activités

Le manifeste liste plus d’activités comme DrawActivity, ResultActivity, PhotoActivity, etc., avec des motifs similaires :

Concept : Les activités sont les blocs de construction de l’interface utilisateur d’une application Android. Chaque balise <activity> enregistre un écran avec le système.


Motifs clés dans ce manifeste

  1. Conception axée sur les médias : Les permissions et fonctionnalités pour l’appareil photo, le stockage et l’autofocus suggèrent une application photo ou de dessin (peut-être pour identifier des fleurs, étant donné le nom du package com.lzw.flower).
  2. Contrôle de l’orientation : Une utilisation intensive de android:screenOrientation="landscape" suggère une concentration sur des tâches visuelles.
  3. Activités modulaires : Plusieurs activités (CameraActivity, DrawActivity, ResultActivity) indiquent un flux de travail en plusieurs étapes.
  4. Utilisation des ressources : Les références à @string, @drawable et @style montrent une structure propre et maintenable.

Conclusion

Le AndroidManifest.xml est plus qu’un simple fichier de configuration — c’est une fenêtre sur le but et le comportement d’une application. Dans ce cas, “Flower” semble être une application multimédia avec des fonctionnalités d’appareil photo, des fonctionnalités de dessin et des capacités réseau, probablement pour télécharger ou traiter des images. En comprenant ses composants — permissions, fonctionnalités et activités — vous pouvez voir comment les applications Android sont structurées et comment concevoir les vôtres.

Vous voulez construire quelque chose de similaire ? Commencez avec un but clair (comme l’identification des fleurs), définissez vos permissions et fonctionnalités, et planifiez vos activités. Le manifeste les réunira toutes !


Back 2025.04.02 Donate