Android Principes de base de l'application


Exemple

Les applications Android sont écrites en Java. Les outils du SDK Android compilent les fichiers de code, de données et de ressources dans un fichier APK (package Android). Généralement, un fichier APK contient tout le contenu de l'application.

Chaque application s'exécute sur sa propre machine virtuelle (VM) afin que l'application puisse s'exécuter isolée des autres applications. Le système Android fonctionne avec le principe du moindre privilège. Chaque application n'a accès qu'aux composants dont elle a besoin pour faire son travail, pas plus. Cependant, une application peut partager des données avec d'autres applications, par exemple en partageant l'ID utilisateur Linux entre les applications, ou les applications peuvent demander l'autorisation d'accéder aux données du périphérique telles que la carte SD, les contacts, etc.

Composants de l'application

Les composants de l'application sont les éléments constitutifs d'une application Android. Chaque composant joue un rôle spécifique dans une application Android qui sert un objectif distinct et a des cycles de vie distincts (le flux de comment et quand le composant est créé et détruit). Voici les quatre types de composants d'application:

  1. Activités: Une activité représente un seul écran avec une interface utilisateur. Une application Android peut avoir plusieurs activités. (Par exemple, une application de messagerie peut avoir une activité pour répertorier tous les emails, une autre pour afficher le contenu de chaque email et une autre pour composer un nouvel email). Toutes les activités d'une application fonctionnent ensemble pour créer une expérience utilisateur.
  2. Services: un service s'exécute en arrière-plan pour effectuer des opérations de longue durée ou pour exécuter des tâches pour des processus distants. Un service ne fournit aucune interface utilisateur, il s'exécute uniquement en arrière-plan avec l'entrée de l'utilisateur. (Par exemple, un service peut lire de la musique en arrière-plan lorsque l'utilisateur se trouve dans une autre application ou il peut télécharger des données sur Internet sans bloquer l'interaction de l'utilisateur avec l'appareil Android.)
  3. Fournisseurs de contenu: un fournisseur de contenu gère les données d'application partagée. Il existe quatre manières de stocker des données dans une application: elles peuvent être écrites dans un fichier et stockées dans le système de fichiers, insérées ou mises à jour dans une base de données SQLite, publiées sur le Web ou enregistrées dans tout autre emplacement de stockage persistant. . Grâce à des fournisseurs de contenu, d'autres applications peuvent interroger ou même modifier les données. (Par exemple, le système Android fournit un fournisseur de contenu qui gère les informations de contact de l'utilisateur afin que toute application autorisée puisse interroger les contacts.) Les fournisseurs de contenu peuvent également enregistrer les données privées de l'application pour une meilleure intégrité des données.
  4. Récepteurs de diffusion: un récepteur de diffusion répond aux diffusions d’annonces diffusées à l’échelle du système (par exemple, une émission annonçant que l’écran est éteint, que la batterie est faible, etc.) ou d’applications (par exemple, téléchargé sur l'appareil et est disponible pour qu'ils puissent l'utiliser). Les récepteurs de diffusion n'ont pas d'interface utilisateur, mais ils peuvent afficher une notification dans la barre d'état pour alerter l'utilisateur. Les récepteurs de diffusion sont généralement utilisés comme passerelles vers d'autres composants de l'application, principalement des activités et des services.

Un aspect unique du système Android est que toute application peut démarrer le composant d'une autre application (par exemple, si vous souhaitez faire un appel, envoyer des SMS, ouvrir une page Web ou afficher une photo, il existe déjà une application l'utiliser, au lieu de développer une nouvelle activité pour la même tâche).

Lorsque le système démarre un composant, il lance le processus pour cette application (s'il n'est pas déjà lancé, c'est-à-dire qu'un seul processus par application peut s'exécuter à tout moment sur un système Android) et instancie les classes nécessaires pour ce composant. Ainsi, le composant s'exécute sur le processus de cette application à laquelle il appartient. Par conséquent, contrairement aux applications sur d'autres systèmes, les applications Android n'ont pas de point d'entrée unique (il n'y a pas de méthode main() ).

Comme le système exécute chaque application dans un processus distinct, une application ne peut pas activer directement les composants d'une autre application, quel que soit le système Android. Ainsi, pour démarrer le composant d'une autre application, une application doit envoyer un message au système spécifiant l'intention de démarrer ce composant, puis le système démarrera ce composant.

Le contexte

Les instances de la classe android.content.Context fournissent la connexion au système Android qui exécute l'application. L'instance de contexte est nécessaire pour accéder aux ressources du projet et aux informations globales sur l'environnement de l'application.

Prenons un exemple facile à comprendre: Considérez que vous êtes dans un hôtel et que vous voulez manger quelque chose. Vous appelez le room-service et demandez-leur de vous apporter des choses ou de nettoyer des choses pour vous. Maintenant, pensez à cet hôtel comme une application Android, vous-même en tant qu’activité et le room-service est alors votre contexte, ce qui vous permet d’accéder aux ressources de l’hôtel comme le room-service, les produits alimentaires, etc.

Encore un autre exemple, vous êtes dans un restaurant assis sur une table, chaque table a un accompagnateur, chaque fois que vous voulez commander des produits alimentaires, vous demandez au préposé de le faire. Le préposé place ensuite votre commande et vos produits alimentaires sont servis sur votre table. Encore une fois dans cet exemple, le restaurant est une application Android, les tables ou les clients sont des composants App, les produits alimentaires sont les ressources de votre application et le standardiste est votre contexte, ce qui vous permet d'accéder aux ressources comme des produits alimentaires.

L'activation de l'un des composants ci-dessus nécessite l'instance du contexte. Non seulement ce qui précède, mais presque toutes les ressources système: la création de l'interface utilisateur à l'aide de vues (abordées plus loin), la création d'une instance de services système, le démarrage de nouvelles activités ou services nécessitent tous un contexte.

Une description plus détaillée est écrite ici .