SAISON 2 : DÉVELOPPEMENT ANDROID

Posted By: amenedem On lundi 14 mars 2011

Saison 2 : Episode 1 : Création d'applications

Dans la Saison 1 on a répondu à la question c'est quoi ANDROID et comment installer son environnement de développement  . Dans cette saison nous allons introduire les concepts de développement sous android et essayer de vous conduire à créer vous même votre premier projet Android !


Avant toute chose il faut connaitre le cycle de vie des applications et maîtriser les composantes d'une application et leurs interactions .


  1. Composants d'une Application

Une application Android est un assemblage de composants liés grâce à un fichier de
configuration. Nous allons découvrir chaque pièce de notre puzzle applicatif, comment
le fichier de configuration de l’application la décrit et comment toutes les
pièces interagissent entre elles.

On va décortiquer le schéma ci dessous :
Composition d'une application
Une application Android est composée de plusieurs éléments qu'ils faut assembler . Voici alors les différents éléments à savoir :


  •  Activités (Activity)
            C'est la partie présentation de votre projet ( Interface ou les écrans de votre Application ) 
  • Services (Service)
            Bah les services c'est des "Services " ;-) c'est des opérations de background des applications si je fais une analogie , c'est des CRON qui tournent en tache de fond ; ça permet tout simplement de mettre à jour des sources de données et de déclencher des notifications .....
  • Fournisseurs de contenu (ContentProvider)
         Ils permettent les partages des informations entre applications 
  • Objets Intent 
         C'est une taches ou une action spécifique  
  • Rrécepteurs d’Intents (BroadcastReceiver )
         " Listners " Ils ecoutent les autres applications enfin de repondre aux "intent" 
          
  • Notification
          C'est des Notifications (Exemple arrivée d'un SMS, Changement de position GPS , Niveau de baterie bas etc .....)

Si on remonte plus haut sur le premier schema on retrouve  une application composée d'un ensemble de  fenêtrés utilisant des éléments ressources ( fichiers , texte , images , video et autres )  tous reliés entre eux par un fichier de configuration le manifeste.xml .

    2. Le Cycle de vie d’une application



Les applications Android ont un fonctionnement particulier : elles réagissent à des
changements d’états imposés par le système (démarrage, pause, reprise, arrêt...).
Voici un schéma suivi d'un code permettant d'expliquer les différentes étapes dans le cycle de vie d'une application .
Cycle de vie d'une application

  • onCreate() :
    • Exécuté lorsqu'on lance l'application pour une première fois
    • Utilisé pour l’initialisation :
      • vue XML;
      • des fichiers/données temporaires;
  • onRestart() :
    • Exécuté au  Réveil de l'application après un stop() ,  redémarre (repasse en premier plan);
  • onStart() :
    • Exécuté après chaque onCreate() ou onRestart();
    • Chargement des données sauvegardées durant le dernier arrêt;
  • onResume() :
    • Exécuté après chaque onStart();
    • Exécuté a chaque passage en premier plan de l’activité;
    • Initialisation :
      • Connexion DB;
      • Mise à jour des données qui auraient pû être modifées entre temps (avant le onResume);
  • onPause() :
    • Exécuté avant chaque onStop();
    • Exécuté chaque fois que l’utilisateur passe à une autre activité, ou bien lorsqu’il demande un « finish() » sur cette activité, ou bien encore si le système à besoin de libérer de la mémoire;
    • Libération des resources :
      • sauvegarde des données qui seront perdues après l’arrêt si elles ne sont pas sauvegardées;
      • connection DB;
    • Attention : l’exécution de cette fonction doit être rapide car la prochaine activité ne démarrera pas tant que l’exécution de cette fonction n’est pas terminée;
  • onStop() :
    • Exécuté avant chaque mise en sommeil;
    • Exécuté avant chaque onDestroy:
    • Libération des ressources;
  • onDestroy() :
    • Exécuté lors du kill / de l’arrêt de l’activité;
    • onCreate() devra à nouveau être exécuté pour obtenir à nouveau l’activité.
    • libération des resources
      • fichiers temporaires

3 . Notion de priorité d'une application :

L’ordre d’arrêt des processus pour libérer des ressources est déterminé par la priorité du
processus donnée par le système. La priorité de l’application est elle-même déterminée
par son composant le plus prioritaire (une application possédant un fournisseur de contenu
a par exemple plus de priorité qu’une application qui en est dépourvue).
Tableau de priorité : 
Tableau des priorités établies par le système

En résumé on a fait le tour de ce qu'il faut encore savoir en terme de cycle de vie et des priorités des Processus pour aller plus loin je vous invites  ici pour compléter les informations .... 
Suite de nos prochains épisodes dans quelques jours ...... 

SAISON 1 : A la découverte d'ANDROID "Episode 4 : L'ARCHITECTURE DE BASE D'ANDROID "

Posted By: amenedem On dimanche 13 février 2011

Episode 4 : ANDROID ANATOMY
Hello ,
Précédemment nous avons développé notre FIRST "Hello GTUG " c'est cool . dans cet épisode nous allons parler de l'Architecture d'Android .

Ecran 1 Anatomy ( Architecture d'ANDROID )


Google a rendu public l'architecture de son système androïd composé de 4 couches principales  :
  1.   LE NOUYAU 
    Ecran 2 noyau
Android se repose sur sur le noyau linux 2.6.x  pour  :
  • La gestion de la mémoire 
  • Des processus  
  • Informations réseaux
  • Les pilotes matériels . 
  • Permettre aux applications et "Process" de tourner d'une manière indépendante mais avec des échanges de données 
 En résume le noyaux c'est la couche d'abstraction entre le matériel et les applications  
je pose 1 problématique que le notre Noyau Kernel gère bien :
  1. le téléphone mobile tourne sur batterie ==> limites en termes d'autonomie et autres 
 Solution : Gestion automatisé de l'énergie et le support des différents types de "wake locks " hum en français je dirais plutôt les modes d’économies automatique de batteries
Request de Wake lock 




2. LIBRAIRIES 
Couche librairie
 l'ensemble des Librairies native on peut citer : 
  • LIBC : librairies optimisées pour une utilisation embarquée
  • Open Gl (Open Graphics Library) est une spécification qui définit une API multiplate-forme pour la conception d'applications générant des images 3D
  • WebKits  une bibliothèque logicielle permettant aux développeurs d'intégrer facilement un moteur de rendu de pages Web
  • SQLite  une bibliothèque écrite en C qui propose un moteur de base de données relationnelles accessible par le langage SQL
  • Media framework  les pack video , audio , et les autres formats 
  • etc ...
il faut noter aussi dans cette couche existe une couche intermédiaire
(  Hardware Abstraction librairie )
Hardware Abstraction layer





ANDROID RUNTIME 
Dalvik -Virtual machine


Cette couche intègre :
  • les bibliothèques de bases du noyau de langage JAVA ( Core Libraries ) 
  • Une marchine virtulle : DALVIK 

3 . APPLICATION FRAMEWORK  

Application framework

Les managers de base 

  • Activity manager 
  • Package manager 
  • Window manager 
  • Ressource manager 
  • Content Providers 

Les Services de base : 
  • Telephony services GSM /CDMA 
  • Location Service 
  • Bluetooth Service 
  • Wifi service
  • USB service 
  • Sensor Service

4. COUCHE APPLICATIONS

Couche Application



L'ensemble des apps sur votre telephone .
;-)

Et  voila décortiqué ANDROID , on peut commencer à voir des choses intéressantes comme hum hum la suite dans nos prochains épisodes .....

snipt

Fourni par Blogger.