Aujourd’hui, les jeux en ligne sont très populaire aussi et tout le monde aime jouer à des jeux sur leur téléphone, mais pour construire un système de jeu en ligne est trop cỏteux et dif
Trang 1UNIVERSITE DE CANTHO FACULTE DES TECHNOLOGIES DE L’INFORMATION
RECHERHCHE DU MECANISME DE LA PROGRAMMATION SUR ANDROID
Trang 3RESUME
Aujourd’hui, le téléphone portale devenir de plus en plus développement Particulier les Smartphone, ils devenir moins cher que d’avant et personne peut l’acheter facilement Mais il y a beaucoup de système d’exploitation pour Smartphone tel que : Symbian (Nokia), iOS (Apple), Windows Mobile (Microsoft), etc Les applications écrites pour ce plate-forme ne peut pas fonctionner sur les autres alors nous avons besoin
un système d’exploitation base pour toute les Smartphone
En 2005 Google a proposé le système d'exploitation Android et il a obtenu un grand succès, il y a beaucoup de producteur choisir Android pour leur produit
Aujourd’hui, les jeux en ligne sont très populaire aussi et tout le monde aime jouer
à des jeux sur leur téléphone, mais pour construire un système de jeu en ligne est trop cỏteux et difficile, nous devons acheter les serveurs, écrit application pour le serveur et client, maintenance le système, etc Un ide a proposé : pour quoi nous ne utilisons pas un système qui est déjà existe comme IRC et nous devons écrit seulement application pour le client
Grâce à deux raison ci-dessus j’ai choisi ce thèses pour le premièrement exploiter
la plate-forme Android gagner des connaissances du mécanisme de la programmation réseau sur android ensuite appliquer ces connaissance avec mes connaissance du protocole IRC (depuis mon quatrième mémoire) pour créer le jeu en ligne Gomoku qui fonctionne sur Android et utilise le serveurs d’IRC comme le serveur de jeu
Trang 4LIST DES MOTS CLES
ADT: Android Developpement Tool
Un Android plug-in pour développer l’application
API : Application Programming Interface
Une API est une interface fournie par un programme informatique Elle permet
l'interaction des programmes les uns avec les autres, de manière analogue à une interface homme-machine, qui rend possible l'interaction entre un homme et une machine
IDE: Integrated Development Environment
Un IDE est un programme regroupant un ensemble d'outils pour le développement
de logiciels
OHA: Open Handset Alliance
Une alliance commerciale dont le but est de développer des standards ouverts pour les appareils mobiles
SDK: Software Development Kit
Un SDK est un ensemble d'outils permettant aux développeurs de créer des
applications de type défini (par exemple pour iPhone ou Android)
UI : User Interface
XML: Extensible Markup Language
XML est un format de texte très simple et flexible dérivé de SGML
Trang 5CONTENU
RESUME 1
LIST DES MOTS CLES 2
LIST DES FIGURES 4
LIST DES TABLEAUX 6
REMERCIEN 7
CHAPTITRE I: HOISTOIRE D’ANDROID 8
1 Histoire de développement 8
2 Le SDK (Software Developpement Kit) 9
3 Le contenu du SDK 10
3.1 Documentations 10
3.2 Les exemples 10
3.3 Les outils de développement du SDK 10
3.4 Android Development Tools Plugin ou ADT 11
4 Configurer votre environnement de développement 11
4.1 Installation du SDK 11
4.2 Installer et configurer Eclipse 14
4.3 Installer le module ADT pour Eclipse 14
5 L’architecte d’Android plate-forme 15
5.1 Linux noyau 15
5.2 Les bibliothèques 16
5.3 Android Runtime 16
5.4 Framework applicatif 17
5.5 Application and Widgets 17
CHAPTIRE 2 : EXPLORATION D’UNE ANDORID APPLICATION 18
1 Les fondamentaux d’une application Android 18
2 Les composants applicatifs 18
2.1 Activité 18
2.2 Services 19
2.3 Fournisseurs de contenu 19
2.4 Récepteur d’Intents (Broadcast Receiver) 19
3 Cycle de vie d’une application 20
4 Permissions 22
Trang 65 Le ficher de configuration 24
6 Application ressources 25
6.1 Utilisation des ressources 26
6.2 Créer des ressources 26
CHAPITRE 3 :L’INTERFACE D’UTILISATEUR 30
1 Structure de l’interface 30
2 Définir une l’interface 30
2.1 Définir notre interface en XML 30
2.2 Créer une interface sans définition XML 31
3 Gabarits (Layout) 32
4 Les vues communs 32
4.1 Textview 32
4.2 EditText 33
4.3 Button 33
4.1 ImageButton 34
4.2 CheckBox 35
4.3 RadioButton 36
4.4 ListView 37
4.5 Menu 37
CHAPITRE 4 :INTENT ET SERVICE 39
1 Intent 39
1.1 Principe de fonctionnement 39
1.2 Démarrer une activité 40
1.3 Déléguer au système le choix de l’application 40
1.4 Embarquer des données supplémentaires 42
2 Service 43
2.1 Started service 43
2.2 Bound Service 44
2.3 Créer un service 44
2.4 Registration un service 45
2.5 Démarrer et arrêter un service 45
2.6 Cycle de vie d’un service 46
Trang 71 Thread sur android 47
2 Exécution et communication entre threads avec la classe Handler 47
3 Utiliser les messages 48
4 Exemple 48
CHPAPITRE 6 : APPLICATION 51
1 Problème et solution 51
2 Analyser la solution 51
3 Les objectifs de l’application 51
4 Présentation de l’application 52
4.1 Le base de donne 52
4.2 Les classes dans programmation (sur téléphone) 53
4.3 Schéma Usecase 53
4.4 Schéma Class 54
4.5 Les fonctions de l’application 54
4.6 Les images de l’application 58
COLUSION 61
1 Les buts et leurs résultats 61
2 L’imitation 61
3 Le développement dans la future 61
4 Pour moi 61
REFERENCES 62
Trang 8LIST DES FIGURES
Figure 1 Le contenu d’Android SDK
Figure 2 L’interface du SDK Manager
Figure 3 Liste de paquetages disponibles pour installer
Figure 4 Les modules sont téléchargé et installé
Figure 5 L’installation termine
Figure 6 L’installation de l’ADT plug-in
Figure 7 Les composants majeurs de la plate-forme Android
Figure 8 Les composants d’une appliation
Figure 9 Cycle de vie d’une activité
Figure 10 Le mis en page(Layout) ressource
Figure 11 Structure de l’interface
Figure 12 Definir l’interface en XML
Figure 19 OptionMenu(gauche) et ContextMenu(droite)
Figure 20 Cycle de vie d’un service
Figure 21 Chaque barre de progression d’avancer de 10 %
Figure 22 Le base de doné
Figure 23 Le schéma Usecase
Figure 24 Le schéma class
Figure 25 Processus de registration
Figure 26 Processus d’autorisation
Figure 27 Processus d’invitation
Figure 28 Registrer un nouvel compte
Figure 29 Se connexion
Trang 9Figure 30 L’interface de chatter
Figure 31 Les informations de jeu
Trang 10
LIST DES TABLEAUX
Tableau 1 Les versions d’Android plate-forme
Tableau 2 Les element du session <permmission>
Tableau 3 Les ressources
Tableau 4 Les actions natives du système
Tableau 5 Les méthodes manipulent le message
Trang 11REMERCIEN
D'abord remercier sincèrement à mon mentor,Dr Ngo Ba Hung, qui m'a donné des conseils et des documents précieux Ensuite, je tiens à remercier deux membres de mon groupe, Truong Thien Thanh et Le An, vous m’aide beaucoup pendant le travail et je tiens à remercier chacun d'entre vous dans la salle de 2.3 m'a aidé pendant le travail
Trang 12CHAPTITRE I: HOISTOIRE D’ANDROID
1 Histoire de développement
Android (prononcé andrọde) est un système d'exploitation open source pour
Smartphones Avant, Android est un produit d’Android Inc qui a été rachetée par Google après A 2005 Google démarre le développement d’Android plate-forme L’équipe de développement se compose de 5 principaux personnes de Android Inc: Andy Rubin, Rich Miner, Nick Sears et Chris White
En fin 2007, un groupe de leaders de l'industrie se sont réunis autour de la forme Android en forme de l'Open Handset Alliance(OHA) Certains des membres éminents de l'Alliance sont les suivants :
de téléphones et aux développeurs d'applications
La première fois Android SDK a été publié en tant que «première vois» en Novembre 2007 Dans Septembre 2008, T-Mobile a annoncé la disponibilité de T-Mobile G1, le première smartphone basé sur la plate-forme Android Quelques jours après que Google a annoncé la disponibilité d'Android SDK Release Candidate 1.0 En Octobre
2008, Google a fait la source code de la plate-forme Android disponible sous licence open source Apache Après la première version de SDK a été publicité, les nouvelles versions de SDK sans cesse publicité
Le tableau suivant présente l’historique des versions d’Android :
Trang 13Tableau 1 Les versions d’Android plate-forme Selon certaines études optimistes, le nombre de téléphones devrait doubler sur l’année 2010 avec une estimation de 50 % du nombre de modèles de téléphones mobiles disponibles tournant sous Android
2 Le SDK (Software Developpement Kit)
Androird SDK est un ensemble d’outils qui permet aux développeurs et aux entreprises de créer des applications Le SDK Android est composé de plusieurs éléments pour aider les développeurs à créer et à maintenir des applications :
• Les API (Application Programming Inteface)
• Les exemples
Trang 14La documentation du SDK Android est scindée en deux parties bien distinctes :
• Le guide du développeur, disponible en HTML dans le répertoire du SDK que vous venez d’installer
• La documentation des API au format javadoc, qui est également située dans
le répertoire docs et accessible grâce au chemin toujours depuis le répertoire d’installation
On va se trouve ces documents à
• C:\android-sdk-windows\docs\index.html
• C:\android-sdk-windows\docs\reference\package.html
De façon générale, la page HTML docs/index.html contient les liens vers tous les documents du kit de développement et vers le site Internet de développement Android proposé par Google
3.2 Les exemples
Le kit de développement est accompagné d’un certain nombre d’exemples illustrant les possibilités du chaque SDK Android Les exemples se trouvent dans le répertoire C:\android-sdk-windows\docs\samples Voila des exemples que nous allons trouver
• ApiDemos
• BluetoothChat
• Une application pour sauvegarder des notes
• NotePad
3.3 Les outils de développement du SDK
Le SDK est livré avec un certain nombre d’outils couvrant différents aspects du cycle de développement d’une application Android Le kit de développement propose une boîte à outils complète pour les tâches de compilation, débogage, génération de code AIDL, signature de votre application, etc
Le répertoire tools du kit de développement contient ainsi un ensemble de programmes dont voici quelques exemples :
• DDMS : est un outil de débogage puissant
Trang 15• Emulartor
• mksdcard : sert à créer des cartes mémoire logicielles utilisables avec l’émulateur
• sqlite3 : permet d’accéder aux fichiers de données au format SQLite
3.4 Android Development Tools Plugin ou ADT
Cet outil s’intègre directement à Eclipse et propose des interfaces et des assistants pour la création et le débogage des applications
4 Configurer votre environnement de développement
4.1 Installation du SDK
Avant d’installer un environnement de développement, vous devez posséder un environnement d’exécution Java ou JRE (Java Runtime Environment) installé et correctement configuré sur votre machine, ainsi que le JDK (Java Développement Kit) Ensuite téléchanger gratuiment SDK à http://developer.android.com/sdk/index.html ensuite le décompressez dans le répertoire que vous voulez le installer
L’archive est présentée sous forme d’un répertoire dont le contenu est présenté dans la capture d’écran suivante
Figure 1 Le contenu d’Android SDK Demarer le fiche SDK Manager.exe et une suite d’interfaces permettant de télécharger le kit de développement de façon modulaire On va voir une capture d’écran suivante apparaît
Trang 16Figure 2 L’interface du SDK Manager Après fini, une nouvelle fenêtre apparaît avec une liste de paquetages, ce sont les modules disponibles pour installer
Figure 3 Liste de paquetages disponibles pour installer
Trang 17Choisissez Accept All puis Install Accepted Une fenêtre de progression de l’installation apparaît
Figure 4 Les modules sont téléchargé et installé Après tout les progressions d’installation termine, appuyez Close pour fermer la fenêtre, nous avons fini l’installation du kit de développement
Figure 5 L’installation termine
Trang 184.2 Installer et configurer Eclipse
Eclipse est une application Java et nécessite l’installation d’une JRE Télécharger gratuit à http://www.eclipse.org/downloads Eclipse possède un certain nombre de versions différentes, incluant ou non certains plug-ins Au minimum, nous choisissons la version Eclipse IDE pour Java Développer Eclipse est fourni sous la forme d’une archive
au format Zip Une fois l’archive décompressée, Eclipse est prêt à être démarré en exécutant eclipse.exe à la racine de son répertoire d’installation
4.3 Installer le module ADT pour Eclipse
Pour faciliter le développement d’applications Android, Google propose un module nommé ADT (Android Development Tools) pour développer l’application sur Eclipse Pour installer ADT plug-in nous allons suivi les étapes suivant :
Démarrer Eclipse ensuite choisi Help->Install New Software une nouvel fenêtre va ouvre Saisissez https://dl-ssl.google.com/android/eclipse/ pour la chambre Work with
Cassez sur Developer Tools et suivez les instructions en acceptant les différentes licences
et redémarrez Eclipse (en cliquant sur Oui) lorsqu’il nous le demande
Figure 6 L’installation de l’ADT plug-in
Trang 19Nous pouvons installer ADT par le archive ZIP fiche, nous choisis Achire et tire le ZIP fiche que nous avons déjà téléchargé Cliquez Open et suivez les instructions d’installions
5 L’architecte d’Android plate-forme
Android est une pile logicielle pour les appareils mobiles composé d’un système d’exploitation, de middleware et d’applications clés Le SDK Android fournit les outils et les API nécessaires pour commencer à développer des applications sur la plate-forme Android en utilisant le langage de programmation Java
Les composants majeurs de la plate-forme Android sont résumés sur le schéma suivant (traduit de la documentation Google) :
Figure 7 Les composants majeurs de la plate-forme Android
5.1 Linux noyau
Trang 20Android est basé sur le noyau Linux 2.6 qui gérer les services système base tels que la sécurité, gestion de mémoire, gestion de processus, etc Le noyau agit également
comme une couche d’abstraction entre le matériel et le reste de la plate-forme
5.2 Les bibliothèques
Android se compose d’un ensemble de bibliothèque C / C++ utilisées par les différents composants d’Android système Elles sont offertes aux développeurs à travers
le framework Android En voici quelques unes :
• Système de bibliothèque C – une mise en œuvre dérivés de BSD de la bibliothèque
C standard du système (libc), à l’écoute pour les systèmes embarqués basés sur
Linux
• Médiathèques – basée sur PacketVideo de OpenCore; les librairies permettant la lecture et l’enregistrement audio et vidéo, ainsi que la gestion des fichiers image,
y compris MPEG4, H.264, MP3, AAC, AMR, JPG et PNG
• Surface Manager – gère l’accès au sous-système d’affichage et de façon transparente
• LibWebCore – un moteur de navigateur web moderne qui fait tourner, à la fois le navigateur Android et une vue web intégrable
• SGL – le moteur graphique 2D
• Bibliothèques 3D – une implémentation basée sur OpenGL ES 1.0 API; les bibliothèques utilisent l’accélération 3D matérielle (si disponible)
• FreeType – bitmap et vectoriel de rendu de police
• SQLite – un moteur de base de données relationnelle puissant et léger, disponible pour toutes les applications
Ils ne sont pas applications, ils sont appelé pas les programme de niveau supérieur
À partir d’Android 1.5 vous pouvons écrire et déployer vos propres bibliothèques par utiliser le Native Developpement Tookit (NDK)
Le Machine Virtuelle de Dalvik exécuté les dex (Davik Excutable) fiche au lieu class fiche, dex fiches sont compilé de class fiche et jar fiche Le dex fiche est plus
compact et effet que class fiche, une importance considérations pour les limité mémoire
et battery-powered dispositifs Et alors une application en Java vas été compilé deux fois,
Trang 21première elle va compiler a class fiche par JVM ensuite elle va compiler à dex fiche par DVM
Les principaux Java bibliothèques de Android sont différent les deux Java Standard Edition (Java SE) bibliothèque et Java Mobile Edition (Java ME) bibliothèque
Il y a un montant substantiel de chevauchement, cependant
5.4 Framework applicatif
Cette couche fournit les éléments en haut niveau que nous allons utiliser pour créer nos applications Le Framework est préinstallé avec Android, mais nous pouvez aussi le compléter par vos propres composants au besoin
Les plus importants parties sont les suivantes :
• Un riche et extensible série de Vue qui peut être utilisé pour construire une
application, y compris des listes, des grilles, boîtes de texte, les boutons, et même
un bases navigateur de web
• Fournisseur de contenu - qui permettent aux applications à accéder aux données
d'autres applications (telles que des contacts), ou de partager leurs propres données
• Gestion de matériel - l’accès à des non-codes ressources telles que les chaînes
localisés, de graphiques, et l'aménagement fichiers
• Gestion de notification - qui permet à tous les demandes d'affichage custom alertes
dans la barre de statut
• Gestion de activité - qui permet de gestion de cycle de vie d’application et fournir
un commun de navigation de comme un Android développeur on savoir plus :
5.5 Application and Widgets
Le plus haut couche dans Android architecture diagramme est Application and Widgets couche Les utilisateurs vue seulement le programme les compliqué choses se passe en dessous sont marqué Comme développeur Android, on le sait mieux
Les applications sont des programmes qui peuvent prendre tout l'écran et interagir avec l'utilisateur D'autre part, Widgets (parfois appelés gadgets), ne fonctionnent que dans un petit rectangle de la application écran d'accueil
Quand vous achetez un Android mobile, votre mobile est préinstallé un nombreux
de base applications, y compris souvent :
• Phone dialer
• EmailContacts
• xWeb browser
• Android Market
Trang 22CHAPTIRE 2 : EXPLORATION D’UNE ANDORID APPLICATION
1. Les fondamentaux d’une application Android
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 Les fondamentaux composants :
• Les activités
• Les vues et control
• Les ressources
• Le fichier de configuration
Figure 8 Les composants d’une appliation
2. Les composants applicatifs
Il y a quatre différents types de composants applicatifs Chaque type a un objectif distinct et qu'il présente un cycle de vie distincts qui définit comment le composant est créé et détruit Voici les quatre types de composants de l'application
2.1 Activité
Une activité représente un seul écran avec une interface d’utilisateur Par exemple, une application de messagerie a une activité qui affiche une liste de nouveaux e-mails, une autre activité pour composer un e-mail, et une autre activité pour la lecture des emails Bien que les activités de travailler ensemble pour former une expérience
Trang 23autres En tant que tel, une application différente peut commencer un quelconque de ces activités (si l'application de messagerie le permet) Par exemple, une application de caméra peut démarrer l'activité dans l'application de messagerie qui compose le nouveau courrier, pour que l'utilisateur de partager une image
2.2 Services
Un service est un composant qui fonctionne dans le fond pour réaliser opérations
de longue durée ou pour effectuer des travaux pour des processus à distance Un service
ne fournit pas une interface utilisateur Par exemple, un service pourrait jouer la musique
de fond pendant que l'utilisateur dans une application différente, ou il pourrait récupérer les données sur le réseau sans interaction avec l'utilisateur de blocage avec une activité
Un autre élément, comme une activité, peut démarrer le service et le laisser courir ou de
se lier à elle afin d'interagir avec elle
2.3 Fournisseurs de contenu
Un fournisseur de contenu gère un ensemble commun de données d'application Nous pouvons stocker les données dans le système de fichiers, une base de données SQLite, sur le web, ou tout autre emplacement de stockage persistant votre application peut accéder Grâce au fournisseur de contenu, d'autres applications peuvent interroger ou même de modifier les données (si le fournisseur de contenu le permet) Par exemple, le système Android fournit un fournisseur de contenu qui gère les informations de contact
de l'utilisateur En tant que tel, n'importe quelle application avec les autorisations adéquates peuvent interroger part du fournisseur de contenu (tels que ContactsContract.Data) pour lire et écrire des informations sur une personne en particulier
2.4 Récepteur d’Intents (Broadcast Receiver)
Un récepteur d’Intents est un élément qui répond à des annonces diffusées à l'échelle du système De nombreuses émissions proviennent du système, par exemple, une émission annonçant que l'écran est éteint, la batterie est faible, ou une image a été capturée Les demandes peuvent également initier des émissions, par exemple, de laisser d'autres applications savons que certaines données ont été téléchargées sur l'appareil et est disponible pour eux à utiliser Bien que les récepteurs de radiodiffusion ne pas afficher une interface utilisateur, ils peuvent créer une notification barre d'état pour alerter l'utilisateur quand un événement de diffusion se produit Plus communément, cependant, un récepteur de radiodiffusion est juste une «passerelle» vers d'autres composantes et est destiné à faire une quantité très minime de travail Par exemple, il pourrait lancer un service pour effectuer certains travaux basés sur l'événement
Intent : il permet de diffuser des messages en demandant la réalisation d’une action L’accès aux autres applications et au système étant restreinte par le modèle de sécurité Android, ces objets permettent aux applications de fournir ou demander des services ou
Trang 24des données La transmission se fait à travers tout le système et peut cibler précisément une activité ou un service
3. 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 ) Néanmoins elles n’ont aucun contrôle direct sur leur propre cycle de vie En cas de besoin, le système peut mettre en pause ou alors complètement arrêter une activité s’il juge nécessaire de le faire, par exemple si l’application consomme trop de ressource processeur ou mémoire Ce comportement est dit non déterministe
Chaque application fonctionne dans son propre processus Le système Android est responsable de la création et de la destruction des processus et gère ses ressources avec comme objectif la sécurité mais aussi la disponibilité et la réactivité de l’appareil Ainsi
un processus consommant beaucoup de ressources processeur, ne pourra entraver d’autres fonctionnalités, comme la réponse à un appel entrant Ceci implique qu’un processus peut être tué à n’importe quel moment sans son consentement pour libérer des ressources nécessaires à d’autres applications 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) Deux applications de même priorité seront départagées par le temps qu’elles auront passé à une priorité plus faible
Cycle de vie d’une activité
Les états principaux d’une activité sont les suivants* :
• Active (active) : activité visible qui détient le focus utilisateur et attend les entrées utilisateur C’est l’appel à la méthode onResume(), à la création ou à la reprise après pause qui permet à l’activité d’être dans cet état Elle est ensuite mise en pause quand une autre activité devient active grâce à la méthode onPause
• Suspendue (paused) : activité au moins en partie visible à l’écran mais qui ne détient pas le focus La méthode onPause est invoquée pour entrer dans cet état et les méthodes onResume ou onStop permettent d’en sortir
• Arrêtée (stopped) : activité non visible C’est la méthode onStop() qui conduit à cet état
Trang 25Figure 9 Cycle de vie d’une activité
Le cycle de vie d’une activité est parsemé d’appels aux méthodes relatives à chaque étape de sa vie Il informe ainsi le développeur sur la suite des événements et le travail qu’il doit accomplir Voyons de quoi il retourne en observant chacune de ces méthodes :
onCreate(Bubndle) : c’est appelé à la première fois activité est démarré Nous pouvons l’utilise pour exécuter one-fois initialisation tel que création de interface d’utilisateur onCreate() il y a une paramètre ou sans ou certaines informations d'état précédemment enregistrés par le onSaveIn-stanceState( ) méthode
onStart() : Cela indique l'activité est à propos d'être affichée à l'utilisateur
onResume() : c’est appelé quand votre activité peut démarrer interagir avec l’utilisateur C'est un bon endroit pour jouer animations et de la musique
onPause() : Ceci s'exécute lorsque l'activité est à propos d'aller à back-ground, parce que traditionnellement une autre activité a été lancé en devant elle il faut enregistrer l’état persistance du programme tel que un record de donné a été modifié
onStop() : C’est appelé quand votre programme n’est pas plus visible a utilisateur et nécessaire pour ce moment là Si ma mémoire est serré, onStop( ) ne peut jamais être appelé (le système peut simplement terminer votre processus)
onRestart() : Si cette méthode est appelée, il indique votre activité est réaffiché à l'utilisateur d'un arrêté état
Trang 26onDestroy() : Ceci est appelé avant votre activité est détruit Si le mémoire est serré, onDestroy( ) ne peut jamais être appelé (le système peut simplement terminer votre processus)
onSaveInstanceState(Bundle) : Androide va appeler cette méthode pour permettre l'activité d'économiser per-instance état, comme la position du curseur dans un texte Habituellement, vous n’auriez pas besoin pas parce que le override l’implémentation défaut sauver l’état de tout votre contrôles d’interface automatiquement
onRestoreInstanceState(Bundle) : Ceci est appelée quand l'activité est réinitialisé d'un état précédemment enregistrés par le onSaveInstanceState( ) méthode L’implémentation défaut restaure l'état de votre interface utilisateur
• Accès au matériel du téléphone (prise de clichés, écriture sur la carte mémoire )
Si vous utilisez les fonctionnalités liées à de telles permissions, vous devrez déclarer leur utilisation dans le fichier de configuration qui décrit l’application À l’installation de votre application, l’utilisateur disposera d’un récapitulatif de toutes les permissions demandées pour que l’application fonctionne Il pourra alors choisir de continuer ou d’interrompre l’installation en connaissance de cause Ce les plus commun permissions que vous avez besoins :
• INTERNET : Accéder l’internet
• READ_CONTACTS : Lire (pas d’écrire) contacts donné d’utilisateur
• WRITE_CONTACT : Ecrire (pas de lire) contacts donné d’utilisateur
• RECEVIE_SMS : Gestion les messages de recevoir (text)
• ACCESS_COARSE_LOCATION : Utiliser un secondaire fournisseur de localisation tel que cellulaire ou wifi
• ACCESS_FINE_LOCATION : Utiliser un plu précis fournisseur de localisation tel que GPS
Par exemple, pour gestion les messages de recevoir, vous indiquez une permission comme ca :
Trang 27package ="com.google.android.app.myapp"
<uses-permission android:name ="android.permission.RECEIVE_SMS" />
</manifest>
Nous pouvons customiser une permission par utiliser <permission></permission>
la customisé permission doit être définis dans AndroidManifest.xml Par exemple, une application qui veut contrôler qui peut commencer à l'une de ses activités pourraient déclarer une autorisation pour cette opération comme suivant :
<manifest xmlns:android ="http://schemas.android.com/apk/res/android"
Les attributs : name, icon, label, description, permission group et protection level
android :name oui Nom de la permission Il faut que suivre cette syntaxe de Android schémas *.permission.*
android :protectionLevel
oui Définir le niveau de risque possible de la permission Il y
a 4 valeurs pour assigner :
o normal
o dangerous
o signature
o signatureOrSystem
-normal : la permission est à faible risque et
n’endommage pas système, utilisateur ou autre application
-dangerous : la permission est à haut risque et système
demandera utilisateur confirme avant d’autorisation
-signature : la permission n’autorisée qu’aux applications
qui ont été signés avec la même signature numérique que l'application qui a déclaré la permission
-signatureOrSystem : Android autorise la permission à
applications qui ont même signature ou le Android paquet class
android :permisionGroup
non Nous pouvons placer les permissions dans un groupe,
mais pour la coutume autorisations vous devez éviter de définir cette propriété Si vous vraiment envie de définir cette propriété, utilisez plutôt :
android.permission-group.SYSTEM_TOOLS android :label non Bien qu’il ne nécessite pas on l’utilise pour fournir course description de la permission android :description non Bien qu’il ne nécessite pas, on l’utilise pour fournir plus
Trang 28information de la permission tel que pour lequel que il protêt
android :icon non Icône de la permission
Tableau 2 Les element du session <permmission>
5. Le ficher de configuration
À côté de ces éléments, se trouve un fichier XML, qui s’appelle Android Manifest.xml : le fichier de configuration de l’application C’est un fichier indispensable
à chaque application qui décrit entre autres
• Le point d’entrée de votre application (quel code doit être exécuté au démarrage
de l’application)
• Quels composants constituent ce programme
• Les permissions nécessaires à l’exécution du programme (accès à Internet, accès à l’appareil photo )
Voila structure d’une AndroidManifest.xml fichier :
<?xml version ="1.0" encoding ="utf-8"?>
<manifest xmlns:android ="http://schemas.android.com/apk/res/android"
service android:name =".BackgroundService"/>
<intent-filter>
Trang 29L’externalisation des ressources en permet une meilleure gestion ainsi qu’une maintenance plus aisée Android étend ce concept à l’externalisation de la mise en page des interfaces graphiques (layouts) en passant par celle des chaînes de caractères, des images et bien d’autres Physiquement, les ressources de l’application sont créées ou déposées dans le répertoire res de votre projet Ce répertoire sert de racine et contient lui même une arborescence de dossiers correspondant à différents types de ressources
Tableau 3
Les ressources
Trang 30Toutes ces ressources sont placées dans un fichier de type APK qui constituera le programme distribuable de votre application De plus, Android crée une classe nommée
R qui sera utilisée pour se référer aux ressources dans le code La structure des projets a évolué avec les versions des kits de développement Voici une capture d’écran d’un projet typique Android en version 1.5 avec quelques-unes des ressources évoquées
6.1 Utilisation des ressources
Les ressources que vous créez ou qu’Android propose peuvent être utilisées directement dans votre application ou être référencées dans d’autres ressources
6.2.1 Directement
Les ressources sont accessibles et utilisées depuis le code grâce à la classe statique
R Cette classe est automatiquement générée en fonction des ressources présentes dans votre projet au moment de la compilation et de la construction de l’application
La classe R contient donc des classes en membres statiques pour chaque type de ressources défini dans le projet Nous pouvons accéder à des ressources via les sous classes R.string pour une chaîne de caractères, mais aussi R.color pour les couleurs… Chaque sous-classe expose donc au moins une variable dont le nom correspond à l’identifiant de la ressource Pour utiliser une ressource, il suffit donc de connaître son type et son identifiant La syntaxe est alors la suivante :
6.2 Créer des ressources
Il est possible de déclarer des chaînes de caractères, des dimensions, des couleurs, des tableaux (de chaînes de caractères ou d’entiers) comme valeurs simples
Elles sont déclarées dans des fichiers XML Ces fichiers XML peuvent contenir touses types à la fois, mais par convention on sépare les ressources en regroupant les mêmes types dans un fichier au nom explicite comme res/values/strings.xml pour regrouper toutes les chaînes de caractères
6.2.1 Couleurs
Une couleur définit une valeur RVB (rouge, vert et bleu) et une transparence Cette couleur peut être utilisée à de multiples endroits comme pour définir la couleur
Trang 31d’un text la syntaxe globale est la suivante :
<colorname=nom_couleur>valeur_de_la_couleur</color>
Les différents formats d’une couleur sont les suivants :
• #RGB (Rouge-Vert-Bleu/valeur hexadécimale sur 1 caractère [0,16])
• #ARGB (Alpha (transparence)-Rouge-Vert-Bleu)
• #RRGGBB (Rouge-Vert-Bleu/valeur hexadécimale sur 2 caractères [0,255])
</resources>
6.2.3 La mise en page(Layout)
Les mises en pages définies dans les fichiers de ressources XML permettent de découper la couche présentation en évitant de construire la mise en page d’une interface graphique dans le code
Cette une ficher de ressource XML :
<?xml version ="1.0" encoding ="utf-8"?>
<LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"
android:layout_height ="wrap_content"
android:text ="@string/main_title"
Trang 336.2.4 Images
Android prend les images sous différents formats avec une préférence bien affirmée dans la documentation pour le format PNG Il est cependant possible d’utiliser le format JPEG ou le format GIF
Syntaxes d’utilisation les images dans votre projet :