Le Fichier manifeste de l'application Android
Aujourd'hui, je voudrais vous aider du mieux que je le peux à comprendre le fichier manifeste de l'application Android en tant que développeur android. Chaque application android que vous construisez comprendra un fichier appelé AndroidManifest.xml qui est placé à la racine de la hiérarchie du projet. Pourquoi est-il important ? Parce qu'il vous permet de définir la structure et les métadonnées de votre application android et de ses composants.
//Image du manifeste
Le fichier Manifest de l'application Android comprend des nœuds pour chacun des composants suivants :
- Activités
- Services
- Fournisseurs de contenu
- Récepteurs de diffusion
qui composent votre application et utilise les filtres d'intention et les autorisations pour déterminer comment ils interagissent entre eux et avec les autres applications. Il vous offre également des attributs que vous pouvez utiliser pour spécifier les métadonnées de l'application, comme l'icône et le thème, entre autres.
Le fichier Android Application Manifest est composé d'une balise manifest racine dont l'attribut package est défini sur le package du projet. Il comprend normalement un attribut xmlns:android qui fournit plusieurs attributs système utilisés dans le fichier manifeste de l'application Android.
Un exemple de Fichier manifeste de l'application Android
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.codinglite.androiddevelopment">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:replace="android:icon">
<activity android:name=".TutorialsPanel"
android:parentActivityName=".Tutorials"></activity>
<activité
android:name=".Tutorials"
android:parentActivityName=".Tableau de bord" />
<activité
android:name=".QuizPanel"
android:parentActivityName=".QuizActivity" />
<activité
android:name=".QuizActivity"
android:parentActivityName=".Dashboard" />
<activité
android:name=".Questionnaires d'entretien" et
android:parentActivityName=".Dashboard" />
<activité
android:name=".Tableau de bord" (Dashboard)
android:label="@string/title_activity_dashboard"
android:theme="@style/AppTheme.NoActionBar" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Comme indiqué précédemment, la balise manifest comprend des nœuds qui définissent les composants de l'application, les paramètres de sécurité et même les classes de test qui composent votre application cool. Faisons maintenant connaissance avec ces balises de nœud de manifeste avec des exemples xml.
Balises de nœud de manifeste d'application Android
1)application - Un manifeste ne peut contenir qu'un seul nœud d'application. Il utilise des attributs pour spécifier les métadonnées de votre application Android (titre, icône et thème). En outre, il agit comme un conteneur qui inclut les balises Activity, Service, Content Provider et Broadcast Receiver pour spécifier les composants de l'application :
- activity - Pour chaque activité affichée par votre application android, une balise activity est nécessaire. Vous la définissez en utilisant l'attribut android:name pour spécifier le nom de la classe. Elle doit inclure l'activité principale de lancement et tout autre écran ou boîte de dialogue qui peut être affiché. Si vous essayez de lancer une activité qui n'est pas définie, vous obtiendrez une exception d'exécution. Chaque nœud d'activité prend en charge les balises enfant intent-filter qui spécifient les intents qui lancent l'activité.
- service - Comme pour l'étiquette Activity, vous devez créer un nouveau service pour chaque classe Service utilisée dans votre application. Les balises de service prennent également en charge les balises enfant intent-filter pour permettre une liaison tardive au moment de l'exécution.
- provider - Les balises provider sont utilisées pour chacun des fournisseurs de contenu de votre application. Les fournisseurs de contenu sont utilisés pour gérer l'accès aux bases de données et leur partage au sein des applications et entre elles.
- receiver - Vous pouvez enregistrer un récepteur de diffusion en ajoutant une balise receiver sans avoir à lancer votre application au préalable. Les récepteurs de diffusion ressemblent davantage à des écouteurs d'événements globaux : une fois enregistrés, ils s'exécutent dès qu'une application diffuse une intention correspondante.
2)uses-permission - fait partie du modèle de sécurité. Il déclare les permissions dont vous avez déterminé que votre application a besoin pour fonctionner correctement. Les permissions que vous incluez seront toujours présentées à l'utilisateur pour qu'il les accorde ou les refuse pendant l'installation. De nombreux services android natifs nécessitent des permissions, par exemple ceux qui ont des implications en termes de coût ou de sécurité. Exemples : services de localisation, SMS, etc.
3)permission - Vous devez définir une permission dans le fichier manifeste de l'application android avant de restreindre l'accès à un composant de l'application. Utilisez la balise permission pour créer les définitions de permission. Les composants de l'application peuvent ensuite les exiger en ajoutant l'attribut android:permission. Les autres applications devront alors inclure une balise uses-permission dans leur fichier manifeste et obtenir une autorisation avant de pouvoir utiliser ces composants protégés.
Dans la balise permission, vous pouvez spécifier le niveau d'accès autorisé (normal, dangereux, signature, signatureOrSystem), un label et une ressource externe contenant la description des risques liés à l'octroi de cette permission.
4)instrumentation - Les classes d'instrumentation fournissent un cadre pour l'exécution de tests sur vos activités et services au moment de l'exécution. Elles fournissent simplement des crochets pour surveiller votre application et son interaction avec les ressources du système. Vous devez créer un nouveau nœud pour chacune des classes de test que vous avez créées dans votre application.