Maison >Problème commun >Quels sont les quatre composants majeurs d'Android
Quatre composants principaux : 1. Composant Activité, il s'agit d'une fenêtre distincte et le déroulement du programme doit être exécuté dans [Activité], c'est donc le module le plus basique. 2. Le composant de service est utilisé pour effectuer les opérations spécifiées par l'utilisateur en arrière-plan. 3. Le composant fournisseur de contenu préparera une fenêtre de contenu pour toutes les applications et conservera les bases de données et les fichiers. 4. Le composant récepteur de diffusion est un mécanisme de transmission d'informations entre programmes. Sa fonction est de recevoir ou d'envoyer des notifications.
L'environnement d'exploitation de ce tutoriel : système Android 13, téléphone mobile Xiaomi 12.
Les quatre composants principaux d'Android sont l'activité, le service, le fournisseur de contenu et le récepteur de diffusion.
1. Explication détaillée des quatre composants principaux d'Android
1 Activité
L'activité peut être considérée comme la base du système Android. Ce n'est que sur cette base que d'autres travaux peuvent être effectués, car exécuté dans le système Android Tous les programmes et leurs processus doivent être exécutés dans [Activité], c'est donc le module le plus basique. Il fonctionne comme un cadre ou une page, et chaque programme sera composé de plusieurs [Activités].
(1) Une activité est généralement un écran (fenêtre) séparé.
(2) Les activités communiquent via l'intention.
(3) Chaque activité dans une application Android doit être déclarée dans le fichier de configuration AndroidManifest.xml, sinon le système ne reconnaîtra ni n'exécutera l'activité.
2. Service
Le service est un composant très important dans Android. Son statut et sa priorité sont similaires aux activités. Cependant, le service ne peut pas fonctionner seul. Sa fonction est d'interagir avec d'autres composants d'Android. Par exemple, lorsque nous ouvrons le lecteur de musique sur le téléphone et le mettons en arrière-plan, la musique jouée à ce moment-là est contrôlée par le Service.
1) Le service est utilisé pour effectuer les opérations spécifiées par l'utilisateur en arrière-plan. Il existe deux types de services :
started (started) : lorsqu'un composant d'application (tel qu'une activité) appelle la méthode startService() pour démarrer le service, le service est à l'état démarré.
bound (binding) : Lorsque le composant d'application appelle la méthode bindService() pour se lier au service, le service est dans l'état lié.
2) La différence entre startService() et bindService() :
le service démarré (service démarré) est démarré par d'autres composants appelant la méthode startService(), ce qui provoque l'appel de la méthode onStartCommand() du service . Lorsqu'un service est à l'état démarré, son cycle de vie est indépendant du composant qui l'a démarré et peut s'exécuter indéfiniment en arrière-plan, même si le composant qui a démarré le service a été détruit. Par conséquent, le service doit être arrêté en appelant la méthode stopSelf() après avoir terminé la tâche, ou par d'autres composants appelant la méthode stopService().
Utilisez la méthode bindService() pour activer le service. L'appelant et le service sont liés ensemble. Une fois l'appelant quitté, le service sera terminé. Il a la caractéristique de "ne veut pas vivre en même temps". , mais doit mourir en même temps".
3) Les développeurs doivent déclarer tous les services dans le fichier de configuration de l'application, en utilisant la balise
4) Le service s'exécute généralement en arrière-plan. Il n'a généralement pas besoin d'interagir avec les utilisateurs, le composant Service n'a donc pas d'interface utilisateur graphique. Les composants de service doivent hériter de la classe de base Service. Les composants de service sont généralement utilisés pour fournir des services d'arrière-plan pour d'autres composants ou pour surveiller l'état d'exécution d'autres composants.
3. Fournisseur de contenu (fournisseur de contenu)
Ce composant est spécialement conçu pour les applications tierces. Il est très flexible et très important. Il préparera une fenêtre de contenu pour toutes les applications. , afin que lorsque nous utilisons ces logiciels tiers, nous puissions accéder et protéger efficacement les données qu'ils contiennent.
1) La plate-forme Android fournit un fournisseur de contenu pour fournir l'ensemble de données spécifié d'une application à d'autres applications. D'autres applications peuvent obtenir ou stocker des données de ce fournisseur de contenu via la classe ContentResolver.
2) Les fournisseurs de contenu ne sont nécessaires que si les données doivent être partagées entre plusieurs applications. Par exemple, les données du carnet d'adresses sont utilisées par plusieurs applications et doivent être stockées dans un fournisseur de contenu. Son avantage est d’unifier la manière dont les données sont accessibles.
3) ContentProvider implémente le partage de données. ContentProvider est utilisé pour enregistrer et obtenir des données et les rendre visibles à toutes les applications. C’est le seul moyen de partager des données entre différentes applications car Android ne fournit pas de zone de stockage commune à laquelle toutes les applications peuvent accéder.
4) Les développeurs n'utiliseront pas directement les objets de la classe ContentProvider. La plupart d'entre eux implémentent des opérations sur ContentProvider via des objets ContentResolver.
5) ContentProvider utilise l'URI pour identifier de manière unique son ensemble de données. L'URI ici est préfixé par content://, indiquant que les données sont gérées par ContentProvider.
4. Récepteur de diffusion
Dans le système Android, le récepteur de diffusion n'est pas directement visible. Il s'agit d'un mécanisme de transmission d'informations entre programmes. Sa fonction est de recevoir ou d'envoyer des notifications. En termes simples, un récepteur de diffusion ressemble davantage à un composant de diffusion. Il peut recevoir des informations et même les filtrer, puis y répondre.
1) Votre application peut l'utiliser pour filtrer les événements externes et recevoir et répondre uniquement aux événements externes d'intérêt (comme lorsqu'un appel téléphonique arrive ou lorsque le réseau de données est disponible). Les récepteurs de diffusion n'ont pas d'interface utilisateur. Cependant, ils peuvent démarrer une activité ou un service en réponse aux informations qu'ils reçoivent, ou utiliser un NotificationManager pour avertir l'utilisateur. Les notifications peuvent être utilisées de plusieurs manières pour attirer l'attention de l'utilisateur, comme faire clignoter le rétroéclairage, vibrer, émettre des sons, etc. L'idée générale est de placer une icône persistante sur la barre d'état que l'utilisateur peut ouvrir et recevoir des messages.
2) Il existe deux méthodes pour enregistrer les récepteurs de diffusion, à savoir l'enregistrement dynamique dans le programme et l'enregistrement statique dans le fichier AndroidManifest.
3) La caractéristique des récepteurs de diffusion enregistrés dynamiquement est que lorsque l'activité utilisée pour l'enregistrement est désactivée, la diffusion deviendra invalide. L'enregistrement statique n'a pas besoin de se soucier de savoir si le récepteur de diffusion est éteint. Tant que l'appareil est allumé, le récepteur de diffusion est également allumé. C'est-à-dire que même si l'application elle-même n'est pas démarrée, la diffusion souscrite par l'application l'affectera lorsqu'elle sera déclenchée.
2. Résumé des quatre composants majeurs d'Android :
1. Enregistrement des 4 composants majeurs
Les quatre composants de base doivent être enregistrés avant de pouvoir être utilisés. Chaque activité, service, et le fournisseur de contenu doivent être dans le fichier AndroidManifest Configurer dans . Les activités, services et fournisseurs de contenu qui ne sont pas déclarés dans le fichier AndroidManifest ne seront pas visibles par le système et ne seront donc pas disponibles. L'enregistrement des récepteurs de diffusion est divisé en enregistrement statique (configuré dans le fichier AndroidManifest) et création dynamique via code et enregistrement sur le système en appelant Context.registerReceiver(). Il est à noter que le récepteur de diffusion configuré dans le fichier AndroidManifest restera actif au démarrage du système et sera déclenché tant qu'une diffusion intéressée sera reçue (même si le programme n'est pas en cours d'exécution).
2. Activation des 4 composants majeurs
Activation du fournisseur de contenu : Après réception d'une requête de ContentResolver, le fournisseur de contenu est activé. Les trois autres composants activités, services et récepteurs de diffusion sont activés par un message asynchrone appelé intention.
Fermez les 3 et 4 composants majeurs
Le fournisseur de contenu n'est activé qu'en réponse à une requête de ContentResolver. Un récepteur de diffusion n'est activé qu'en réponse à des messages diffusés. Il n’est donc pas nécessaire de fermer explicitement ces composants. Fermeture d'une activité : vous pouvez fermer une activité en appelant sa méthode finish(). Arrêt du service : pour les services démarrés via la méthode startService(), la méthode Context.stopService() doit être appelée pour arrêter le service. Pour les services démarrés à l'aide de la méthode bindService(), la méthode Contex.unbindService() doit être appelée pour. arrêter le service.
4. Tâche (pile d'activités) dans Android
a) La tâche est en fait une pile d'activités, qui consiste en une ou plusieurs activités, qui complètent ensemble une expérience utilisateur complète. Le bas de la pile est l'activité qui démarre la tâche entière, et le haut de la pile est l'activité en cours d'exécution avec laquelle l'utilisateur peut interagir. Lorsqu'une activité en démarre une autre, la nouvelle activité est poussée sur la pile et devient celle en cours. activité de course à pied. L'activité précédente reste sur la pile. Lorsque l'utilisateur appuie sur la touche RETOUR, l'activité en cours sort de la pile et la précédente revient à l'activité en cours d'exécution. Ce qui est enregistré dans la pile est en fait un objet. Les activités dans la pile ne seront jamais réorganisées, seulement poussées ou supprimées.
b) Toutes les activités de la tâche se déplacent dans leur ensemble. La tâche entière (c'est-à-dire la pile d'activités) peut être déplacée au premier plan ou reculée en arrière-plan.
c) Le système Android est un système d'exploitation multitâche qui peut exécuter plusieurs autres programmes tout en écoutant de la musique sur votre téléphone mobile. Chaque fois qu'une application supplémentaire est exécutée, davantage de mémoire système sera consommée. Lorsque trop de programmes sont exécutés en même temps ou que le programme fermé ne libère pas correctement la mémoire, le système se sentira de plus en plus lent, voire instable. Afin de résoudre ce problème, Android a introduit un nouveau mécanisme, à savoir le cycle de vie.
Pour plus de connaissances connexes, veuillez visiter la rubrique FAQ !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!