Tpe nguyen tien-thinh

1 203 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 203
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
12
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Tpe nguyen tien-thinh

  1. 1. Institut de la Francophonie pour linformatique Rapport final Travail Personnel EncadréSujet : Système dexploitation pour les mobiles Encadrement : Nguyen Hong Quang (IFI) Étudiant : Nguyen Tien Thinh Promotion : 14 Hanoi, Juillet 2009 1
  2. 2. Remerciements Je tiens à remercier mon encadreur, M.NGUYEN Hong Quang, professeur à lInstitut dela francophonie pour linformatique pour son disponibilité et ses conseils, son orientation etsurtout son aide. Il ma toujours aide dans les moments difficiles et ma guide dans la bonnedirection dans mon travail. Je remercie aussi le corps enseignant de lIFI pour les cours qu’ils nous ont dispensés. 2
  3. 3. TABLE DE MATIERETABLE DE MATIERE ....................................................................................................................................... 3CHAPITRE 1. INTRODUCTION ....................................................................................................................... 5 1.1. CONTEXTE ......................................................................................................................................... 5 1.2. PROBLEME A RESOUDRE ................................................................................................................... 5 1.2.1. Travail théorique ........................................................................................................................ 5 1.2.2. Travail pratique........................................................................................................................... 6 1.3. LES MOTS-CLEFS ................................................................................................................................ 6 1.4. RESULTAT ATTENDUS ......................................................................................................................... 7 1.5. CONTENU DU RAPPORT .................................................................................................................... 8CHAPITRE 2. ETAT DE L’ART - LES SE POUR LES MOBILES ............................................................................. 9 2.1. BlackBerry ......................................................................................................................................... 9 2.2. PalmOS ............................................................................................................................................ 10 2.3. Symbian........................................................................................................................................... 10 2.4. Ubuntu MID Edition ........................................................................................................................ 11 2.5. Windows Mobile ............................................................................................................................. 12 2.6. Android............................................................................................................................................ 13 Tableau de comparaison entre les plateformes ..................................................................................... 14CHAPITRE 3. DEVELOPPEMENT D’UNE APPLICATION SUR ANDROID ........................................................ 17 3.1. POURQUOI NOUS AVONS CHOISI ANDROID ? ................................................................................ 17 3.2. QU’EST-CE QU’ON VEUT FAIRE PRECISEMENT ? ............................................................................. 18 3.2.1. Pourquoi nous avons décidé de développer ce logiciel? ........................................................ 18 3.2.2. Résultats espérés à la fin .......................................................................................................... 18 3.3. LES OUTILS ET LES DONNES AUXILIAIRES ........................................................................................ 18 3.3.1. Sources et types des outils qui seront nécessaires .................................................................. 18 3.3.2. Sources et types des données qui seront utilisés .................................................................... 19 3.4. ANDROID – UNE NOUVELLE PLATEFORME PUISSANTE, MODERNE ET OUVERTE .......................... 19 3.4.1. Architecture d’Android ............................................................................................................. 19 3.4.2. Les composants principaux dune application ......................................................................... 21 3.4.3. Cycle de vie d’une activité (Activity Lifecycle) .......................................................................... 22 3.4.4. Développement d’une application sur Android ....................................................................... 25CHAPITRE 4. CONCEPTION ET IMPLEMENTATION ..................................................................................... 27 4.1. LA SPECIFICATION D’ANDROID QUIZZES (dans le point de vue de génie logiciel) ........................... 27 4.1.1. Introduction au notre programme ........................................................................................... 27 4.1.2. Liste des activités ..................................................................................................................... 28 4.1.3. Cas d’utilisation ........................................................................................................................ 28 4.1.4. Diagramme d’activité ............................................................................................................... 33 4.1.5. Diagramme de classe ............................................................................................................... 34 3
  4. 4. 4.2. IMPLEMENTATION ........................................................................................................................... 35 4.2.1. Architecture de « Android Quizzes »........................................................................................ 35 4.2.2. Les librairies de programmation utilisée .................................................................................. 38 4.2.3. La norme GIFT .......................................................................................................................... 38CHAPITRE 5. EXPERIMENTATION ET ANALYSE DES RESULTATS................................................................... 41 5.1. EXPRIMENTATION DES FONCTIONS DE «ANDROID QUIZZES» ........................................................ 41 5.2. ANALYSE DES RESULTATS ................................................................................................................. 47CHAPITRE 6. CONCLUSIONS ET PERSPECTIVES .......................................................................................... 49 6.1. CONCLUSIONS ................................................................................................................................. 49 6.2. PERSPECTIVES ................................................................................................................................. 49REFERENCES ............................................................................................................................................... 50 LA PARTIE THEORIQUE ........................................................................................................................... 50 LA PARTIE PRATIQUE .............................................................................................................................. 51 4
  5. 5. SYSTEME D’EXPLOITATION POUR LES MOBILES CHAPITRE 1. INTRODUCTION1.1. CONTEXTE Depuis quelques années, les équipements mobiles sont de plus en plus complexes etrobustes. Les appareils mobiles deviennent une combinaison de la technologie informatique etde la technologie du téléphone mobile. Dans l’avenir, les mobiles peuvent remplacergénéralement le rôle de l’ordinateur portable. C’est pour quoi, les systèmes dexploitation pourles mobiles (SE) de plus en plus deviennent importants, particulièrement pour les fournisseurs,les développeurs et les éditeurs d’application pour les mobiles. Grâce à la capacité mobile et le développement des équipements mobiles, on peutdéployer les services pour les sociétés base sur la technologie du téléphone mobile.Actuellement, il existe plusieurs SEs pour les mobiles comme Windows Mobile, Palm OS,Symbian, BlackBerry qui sont les systèmes propriétaires. De plus, il y a les plateformes libres oucode source ouvert comme Moblin.org, Ubuntu MID Edition, Android, etc. Chaque type de SEest souvent approprie à quelques modèles concrets des mobiles. Cependant, chaque type de SEa des avantages et des limitations. Il est donc très difficile de choisir la plateforme répondantbien à l’objectif d’une société ou à une personne. En 2007, Google et Open Handset Alliance (un consortium de plusieurs entreprises dontle but est de développer des normes ouvertes pour les appareils de téléphonie mobile) ontannoncé une nouvelle plateforme pour les mobiles qui s’appelle Android qui a fait un grandéclat. De plus, en 2008, Android est devenu une plateforme ouverte et open source.Le travail à effectuer dans ce TPE se situe dans le domaine de réseaux sans fil et mobiles, c’estprécisément le système d’exploitation pour les mobiles. Dans mon sujet, je vais faire une étudecomparative entre ces plateformes. Ensuite, je vais continuer étudier Android pour développerune petite application sur cette plateforme. Mon sujet est donc un sujet de recherche appliqué.1.2. PROBLEME A RESOUDRE1.2.1. Travail théorique Etudier généralement les systèmes d’exploitation pour les mobiles: Windows Mobile, Palm OS, BlackBerry, Symbian, Ubuntu MID Edition, Android. Proposer les critères pour comparer entre eux: o Caractéristiques o Les applications tierces 5
  6. 6. o Les applications principales o Multimédia o Synchronisation avec l’ordinateur o Langage de programmation o Compatibilité avec Office o IDE (environnement de développement intégré) o Courriel o Environnement de lordinateur o Etudier profondément le système d’exploitation Android1.2.2. Travail pratique Étudier le système d’exploitation Android, installer et configurer l’émulateur d’Android o Les caractéristiques, l’architecture d’Android o Cadre de l’application (en anglais Application Framework) o Android SDK o Emulateur Développer une petite application sur cette plateforme o Etudier l’outil pour développer l’application sur Android o Etudier les APIs (Application Program Interface) pour développer l’application sur Android1.3. LES MOTS-CLEFSSystème d’exploitation :« Le système d’exploitation (SE, en anglais Operating System ou OS) est un ensemble deprogrammes responsables de la liaison entre les ressources matérielles d’un ordinateur et lesapplications informatiques de l’utilisateur (traitement de texte, jeu vidéo, etc.). Il fournit auxprogrammes applicatifs des points d’entrée génériques pour les périphériques. » 1 Le SE contrôle les opérations d’un machine (l’ordinateur, appareil mobile, PDA, etc.) Les logiciels ne peuvent fonctionner sans un système dexploitation. Il offre les services pour communiquer entre machine et les utilisateurs. Rôles du système d’exploitation : o Gestion du processeur o Gestion de lexécution des applications o Gestion de la mémoire vive o Gestion des droits1 Wikipedia2 http://docs.moodle.org/en/GIFT 6
  7. 7. o Gestion des entrées/sorties o Gestion des fichiers o Gestion des informationsSystème d’exploitation pour les mobiles : Les systèmes d’exploitation pour les mobiles sont des systèmes dexploitation prévus pour fonctionner sur les mobiles. Les appareils mobiles sont les appareils à ressources limitées ou faibles. C’est pourquoi, on doit adapter SE à leurs limites. Le système dexploitation pour les mobiles détermine les caractéristiques, la performance et la sécurité, en fournissant des API pour déployer et gérer les applications (la fonction principale des mobiles, cest communication entre eux par les services comme : téléphone, SMS, MMS, etc.)Les applications tierces : Les applications qui ne sont pas développés par le producteurd’équipement et le producteur du SE.Android SDK (Android Software Develogamepment Kit) : Le Kit de développement logicielpour la plateforme Android. Le Kit vous fournit les outils et les API nécessaires pour commencerà développer des applications pour la plateforme en utilisant le langage de programmationJava.Emulateur : C’est un appareil mobile virtuel qui fonctionne sur l’ordinateur. L’émulateurpermet aux développeurs de développer, tester et évaluer des applications Android sans laidedun appareil physique.Smartphone, PDA : Les types de téléphone mobile. Les services principaux o Gestion du temps o Gestion de tâches o Gestion de contacts o Navigateur web o Courriel o Lecteur de MP3, dimages, de vidéo o Bureautique Ils ont la capacité extensible. C’est-à-dire, on peut installer des applications additionnelles sur l’appareil.1.4. RESULTAT ATTENDUS Les connaissances sur les plateformes : o Les bases de connaissances sur les équipements mobiles, un vue globale sur le 7
  8. 8. o système d’exploitation pour les mobiles. o Les connaissances globales sur les avantages et les limitations de chaque plateforme. o Proposer les critères pour comparer entre ces plateformes. Sur la plateforme Android : o Comprendre les caractéristiques et larchitecture dAndroid o Comprendre la méthode et le cycle pour développer les applications sur Android o Développer une petite application sur Android1.5. CONTENU DU RAPPORT Notre rapport se compose 6 chapitres. Chapitre 1 : Dans ce chapitre, nous allons présenter le contexte et l’objectif de mon travail et quelques notions utilisées. Chapitre 2 : Nous allons parler des caractéristiques, les avantages et les inconvénients de chaque plateforme. Nous allons aussi donner un tableau de comparaison entre des plateformes. Chapitre 3 : C’est le chapitre de l’état de l’art. Dans ce chapitre, nous allons expliquer le raison de choix de la plateforme Android, l’introduction à notre programme et les outils et les donnes auxiliaires. Nous allons aussi introduire plus détaille à la plateforme Android : l’architecture, les composants principaux d’une application. Nous allons aussi présenter le cycle de vie d’une activité. Chapitre 4 : C’est l’implémentation. Nous allons présenter la spécification, l’exigence, les diagrammes de classe et diagramme des activités de notre logiciel. Chapitre 5 : C’est le chapitre d’expérimentation et d’analyse des résultats. En fin, C’est le chapitre de la perspective et de la conclusion. Il existe encore le chapitre auxiliaire, c’est les références. 8
  9. 9. CHAPITRE 2. ETAT DE L’ART - LES SE POUR LES MOBILES Dans cette partie, nous présenterons les caractéristiques, les avantages, lesinconvénients de chaque plateforme. Ensuite, nous présenterons le tableau de comparaisonentre les plateformes.2.1. BlackBerry BlackBerry a été créé par Research In Motion (RIM), une société Canadienne. Il est uneplateforme très populaire particulièrement dans Amérique du Nord. Selon un rapport de lasociété Gartner, dans le marché des États-Unis, BlackBerry a maintenu le rang No1 avec 42pour cent de marche. Mais cette plateforme seulement marche sur les appareils du BlackBerry. Au commencement, BlackBerry est développé pour le businessman. Il y a donc desapplications pour le business comme : les messages électronique, les messages PIN, lesmessages texte (SMS), les messages MMS, le BlackBerry Messenger, le web navigateur, latâche, le mémo, etc. BlackBerry fournit le service de messagerie électronique pour les sociétés,les entreprises en utilisant BlackBerry Enterprise Server. De plus, le fournisseur offre auxabonnés des fonctions push de messagerie et daccès mobile pratique à du contenu Internetpour leurs terminaux. Il soutient aussi la technologie de la pièce jointe qui soutiens beaucoupde types de pièce jointe comme les fichiers avec les extensions .zip, .html, .doc, .dot, .ppt, .pdf,etc. C’est pourquoi son service de messagerie électronique est plus meilleur que les autresplateformes. D’autre part, le système de messagerie électronique est plus sûr que les autres.Maintenant, Blackberry est supporté dans beaucoup pays. Alors, l’utilisateur peut accéder ausystème de courriel de son société dans ses pays via la technologie du roaming. C’est pourquoiBlackBerry est “ Standard d’or ” pour la messagerie électronique. Maintenant, BlackBerry devient de plus en plus populaire dans le monde. Il nonseulement retient les bons caractéristiques mais encore offre les fonctionnalités pour lesconsommateurs comme le multimédia (lappareil photo, le camera, etc.), la carte Média, etc. En général, malgré qu’il y a plusieurs applications tierces pour Blackberry mais lenombre d’applications tierces est moins que les applications pour Palm OS, Microsoft etSymbian. En termes d’utilisation, la molette, le clavier QWERTY et l’interface d’utilisateur sont lesexcellents appareils pour faciliter d’utiliser le système de courriel. La technologie BlackBerry Connect permet les appareils qui marche sur les autresplateformes comme Symbian OS, Palm OS et Windows Mobile peuvent connectent avecBlackBerry Enterprise Server et BlackBerry Internet Server pour fournir les services comme lasynchronisation de la messagerie électronique, le visionnement de l’attachement, etc.. 9
  10. 10. En conclusion, généralement pour les sociétés, BlackBerry est optimal pour les grandsdéploiements, mais pour les moyens ou les petits déploiements on peut choisir les autresplateformes.2.2. PalmOS Palm OS est développé par la société Palm. En général, Palm OS est logique, intuitif etsimple. En détaille, Palm OS est facile d’utiliser et simple d’apprendre. Il optimise les étapespour naviguer entre les écrans et choisir les applications. Par exemple, pour lancer unprogramme, appuyez sur son icône. Quand on passe à une autre application, cette applicationse termine. Le système de messagerie électronique est ouvert, c’est-a-dire, il peut fonctionnerensemble avec le système du courriel de fournisseurs. Il peut aussi synchroniser avec MicrosoftExchange Server. Palm a le plus d’applications tierces. Il y a de plus 20.000 applications tierces pourélargir la fonctionnalité des appareils. Alors, dans quelques cas, on doit utilise les applicationstierces pour fonctionner quelques services comme regarder la vidéo, la TV, ou travailler avecOffice. Pour les versions précédentes (5.0 et plus tard), il y a un inconvénient ce qu’il est monotâche. C’est-a-dire, le système dexploitation ne peut gérer quune seule tâche en même tempstandis que les autres plateformes sont multitâches. Mais Palm OS version 6.0 est multitâche.De plus, la nouvelle version offre plusieurs améliorations comme la communication, lamultimédia, la synchronisation, etc. Tandis qu’il retient encoure les bons caractéristiques dansles versions précédentes. Alors, il n’y a pas plusieurs sociétés qui choisissent Palm OS pourdéployer les services de sociétés. Mais pour les consommateurs, il est un bon choix. En conclusion, Palm OS est facile d’utilisation. Il y a beaucoup de applications tierces.Palm OS est un bon choix pour les consommateurs mais non pas les sociétés.2.3. Symbian Symbian est développé par la société Symbian. Selon la société Gartner, Symbian acommandé 57 pour cent des ventes globales à des utilisateurs finaux au cours du deuxièmetrimestre, en 2008 dans le marché des systèmes dexploitation pour les Smartphones. Malgréque Symbian soit le leader mondial du système d’exploitation pour les Smartphones, il n’existepas presque en Etats-Unis. Parce que, il y a peu d’appareils sous Symbian qui soutient de CDMAqui est la technologie principale de la transmission de la voix en Etats-Unis. Grâce à l’indépendance entre les composants du Symbian, il y a trois types de couche del’interface de l’utilisateur principales (UI layer ou middleware ou intergiciel du SE Symbian), ce 10
  11. 11. sont : S60 qui est développé par Nokia, UIQ par Sonny Ericsson et MOAP par NTT DoCoMo.Alors, il y a plusieurs applications différentes qui sont développé sous 3 intergiciels ci-dessus. Pour le système de messagerie électronique, Symbian est soutenu par plusieurssystèmes de messagerie électronique comme BlackBerry (via BlackBerry Connect) et Microsoft(via Exchange ActiveSync), etc. Pour l’utilisation, Symbian est plus facile que Windows Mobile mais plus difficile quePalm OS. Mais ça dépend de chaque appareil. Il y a aussi plusieurs applications tierces (environ5.500 applications). En effet, Nokia qui est le plus grand manufacture de téléphone dans le monde est leprincipal actionnaire de Symbian. C’est pourquoi Nokia utilise la plateforme Symbian pour sesSmartphones. Cela garantit la position du Symbian dans marché des systèmes dexploitationpour les Smartphones. Mais au rapport de la société Gartner, depuis quelques années le partde marche de Symbian diminue à cause de concurrence avec d’autres plateformes. Symbian est extrêmement puissance, offrant OS de soutien au niveau de la plupart desfonctionnalités que vous trouverez dans Palm, Windows Mobile et BlackBerry. Il offre uneplateforme flexible, c’est-a-dire, les manufactures peuvent ajouter facilement ses technologies,ses infrastructures à la plateforme Symbian. De plus, il est soutenu par les grandesmanufactures de lindustrie mobile comme Nokia, Sony Ericsson, Motorola, NTT DoCoMo,Renesas, etc. Alors, Symbian est bon choix pour les sociétés. En janvier 2008, Nokia a annonce des plans pour transformer Symbian en uneplateforme en code source ouverte. Selon le calendrier de lancement du Symbian, le codesource sera lancé en juin 2010. Il sera publié sous la licence « la Licence publique Eclipse 1.0.»(EPL 1.0). Grâce au ses caractéristiques, nous croyons que Symbian deviendra un majeurcompétiteur de l’Android dans l’avenir. En conclusion, Symbian est puissance et très populaire particulièrement en Europe. Ilest un bon choix pour les consommateurs et les sociétés grâce au ses appareils - Nokia.2.4. Ubuntu MID Edition Ubuntu MID Edition est développé par la communauté Ubuntu. Il est parrainé par lessociétés Canonical et Intel. Les MIDs (Mobile Internet Device) sont les appareils qu’on peutmettre entre téléphone portable et l’ordinateur. D’autre part, les MIDs peuvent être lesterminaux mobiles multimédia dotés ou non de fonctions de téléphonie. MIDs est créée sousl’idée de «mini - l’ordinateur portable ». L’usage principal des MIDs est le navigateur Interneten mobilité. Comme Android, grâce au noyau Linux, Ubuntu MID Edition est sûr. Ubuntu MID Edition est un projet en code source ouvert. Il est très souple etersonnalisable, permettant la différenciation des produits. Selon l’introduction du produit de la 11
  12. 12. communauté Ubuntu, il est simple d’utilisation. Il peut intégrer avec les réseaux mobilessociaux et les sites web 2.0. Il soutient aussi des variétés d’application de Web 2.0 comme lenavigateur Web, la messagerie électrique, le camera, le VoIP, le Messagerie instantanée, leGPS, le blog, la TV, les jeux électriques, etc. Pour la technologie de communication, il soutientWi-Fi, 3G, Bluetooth, GPS et WiMAX. Particulièrement, il a la grande capacité de stockage (de 2Go à 8 Go de Flash, ou 256/512 Mo de stockage du disque). Maintenant, Ubuntu MID Edition est utilisé dans quelques modèles de appareilsutilisant une plate-forme Intel Atom, ou McCaslin comme Samsung Q1 Ultra, HTC Shift, NokiaN800 web tablette. En conclusion, Ubuntu MID Edition transfère l’expérience d’Internet sous l’ordinateuraux MIDs. En général, Ubuntu MID Edition est une plateforme pour les MIDs mais n’est paspour le téléphone portable.2.5. Windows Mobile Windows Mobile est développé par la corporation Microsoft. Alors, Windows Mobile ala capacité de fonctionnement des logiciels sur « Windows » (seulement Windows), compatibleavec tous les logiciels de « Windows ». Windows Mobile soutient beaucoup de types d’audio, vidéo. Il soutient aussi la capacitéde télécharger, de jouer les chansons et de regarder le TV en ligne. Grâce a les caractères, dansle domaine loisir, il est le plus bon. La messagerie électronique du Windows Mobile n’est pas bon que Blackberry mais il ale perspective du succès. Au lieu dun modèle push de la messagerie électronique commeBlackBerry, Windows Mobile fait appel à un genre de « fast-pull », qui récupère les donnéesrapidement au lieu de lavoir poussé à lappareil. De plus, il est moins sécurité que Blackberry. En ternes d’application, il a plus d’applications tierces que Symbian, BlackBerry maismoins d’applications tierces que Palm OS. Il utilise la même collection de l’APIs avec Windows,il est facile de développer application pour le développeur de Microsoft, d’exécuter pour les «applications de Microsoft » mais il n’est pas bon pour les autres applications, les développeurs. Dans la nouvelle version (comme version 6), Windows Mobile a amélioré la capacité deconnexion, de fonctionnement ensemble avec les autres appareils, et de compatibilité avecOffice. Il a intégré plusieurs applications pour communication comme Windows Live, hotMail,Messenger, etc. Maintenant, dans le monde il y a plusieurs appareils qui marchent sur Windows Mobilecomme quelques modèles du Palm Treo pro, Motorola, Samsung, AT&T, T-Mobile, etc. MaisNokia qui est le leader mondial du combiné téléphonique n’utilise pas Windows Mobile commele SE pour les appareils. 12
  13. 13. En conclusion, grâce au de la popularité de Microsoft, Windows Mobile est supporté parbeaucoup de sociétés. Alors, il y a variété d’applications pour Windows Mobile, et il marchebien pour les applications de Windows.2.6. Android Android est développé par l’Open Handset Aliance. Android a été annonce en 2007. Deplus, en 2008, il est devenu une plateforme en code source ouverte. Selon Google qui est unmajeur distributeur, Android est une plateforme puissant, moderne, sécurité et ouverte. Android est basé sur le noyau Linux et utilise plateforme java pour les applications.Android est gratuit et complète ouverte. Cest-à-dire, le code source et les APIs sont ouvertes.Alors, les développeurs obtiennent la permission d’intégrer, d’agrandir et de replacer lescomposants existants. De plus, il n’a pas des distinctions entre les applications natives et lesapplications qui sont développés par les développeurs parce qu’ils accèdent aux mêmes APIs.L’utilisateur peut donc personnaliser facilement son appareil. La plateforme est très flexible. Onpeut adapter les applications aux besoins du client ou le remplacer entièrement. En raison deflexibilité et de variété de l’application, il est difficile de choisir la meilleure application. En termes d’application, Android est intégré plusieurs services de Google pour accéderrapidement aux services d’internet comme Gmail, YouTube, Google Talk, Google Calendar etGoogle Maps. En novembre 2007, le SDK . Le SDK offre complètement les APIspour développer l’application sur Android. On a lancé aussi les documentations, les outils pourdéveloppement d’application. Tous cela avec le défi de développement d’Android ont promûles développeurs. Maintenant, dans le monde il y a peu de modèles d’appareils qui marchent sur Android(T-Mobile G1, Kogan Agora, I7500 Galaxy). C’est pourquoi presque tous les développeursdoivent développer les applications sur l’émulateur. Mais ces applications peut ne marche biensur l’appareil réel. C’est d’autre difficulté. En conclusion, malgré qu’il y ait plusieurs difficultés nous croyons que l’Android peutfaire concurrence aux autres plateformes.Après examiner les caractéristiques, les avantages et les inconvénients, nous trouvons que pournous Android est la plus intéressant. C’est pourquoi nous allons faire une étude plus approfondià Android. 13
  14. 14. Tableau de comparaison entre les plateformesMobile plate- Blackberry Palm OS Symbian Windows Mobile Ubuntu Mobile Internet Device (MID) Edition AndroidformeSociété RIM Palm Symbian Microsoft Ubuntu communauté (Canonical Ltd et Intel) Open Handset Aliance “Standard d’or” pour courriel logique, intuitif, simple Les manufactures peuvent ajouter Compatibilité avec tous les Ubuntu MID Edition est très souple et - code source ouvert facilement ses technologies, ses logiciels de « Windows » personnalisable, permettant la différenciation des - APIs ouvert infrastructures à la plateforme Puissance produits.Caractéristiques Multitâches utilisation simple et facile Multitâches - capacité de fonctionnement des Utilisation simple o La plate-forme basée sur Linux 2.6.25 pour ARM Bien intégration avec autres écran tactile non support CDMA, seulement GSM logiciels sur « Windows » Petite taille/ facteur de forme (Acorn RISC Machine) plateformes mono tâche Beaucoup de fonctions (seulement Windows), la QWERTY clavier - clavier numérique virtuel ou o Logiciels : Déploiement facile pour navigation facile caractéristique prédominant compatibilité avec tous les logiciels physique  Supporte le système du fichier FAT32 une société Beaucoup des applications tierces de « Windows » Un écran tactile de 4 à 7 pouces  Supporte TCP/IP (TCP, UDP, etc.) Gestion facile USB v2.0, Bluetooth v2.0, WLAN, - multi tâche : robuste Pouvoir intégrer avec les réseaux mobiles o Minimum de 128 Mo RAM et 256 Mo de La vie de la batterie plus IrDA & serial - « smartdial » sociaux et les sitewebs 2.0 mémoire flash longue TCP, IPv4, IPv6, MSCHAP v2, PPP Wi-Fi, 3G, Bluetooth, GPS, WiMAX o 802.11 b / g Wi-Fi Facteur de forme est petit Wi-Fi intégré Stockage: 2GB to 8GB Flash ou stockage du o USB 2.0 et clavier maniable disque, 256MB+ /512MB+ o Bluetooth 2.0 EDR (Enhanced Data Rate) Sécurité haute sans menace OpenGL 3D o Stockage amovible d’application coquine, virus, Gestion d’utilisation en utilisant le Java, le Flash, o Daffichage: etc. l’AJAX ; le HTML, Clutter, Python avec GTK, C/C++ - résolution HVGA avec GTK et Java - 16 bits de couleurs - écran tactile PDF o Clavier La vie de la batterie est longue - QWERTY - 5-directions de navigation - Appareil photo o Notifications - LEDs - Vibration o Radio et la fonctionnalité de téléphonie - GPRS, EDGE, UMTS, HSDPA - Roaming internationale, SMS, MMS - Des services pour la téléphonie : lappel en attente, conférence téléphonique - USSD - RIL (Reference Radio Interface Layer)Applications Utiliser facilement quelques Calendrier carnet d’adresses, gestion du temps, - calendrier les fonctions de téléphonie ordinaire: contrôle Les fonctions de téléphonie ordinaire: contrôleprincipales applications simples comme : De plus en plus variété SMS, téléphone, Calendrier, - gestion de la tâche dappel, etc. dappel, conférences téléphoniques … carnet d’adresses, gestion du Calculatrice ... - Internet Explorer Mobile Navigateur Web (supporte le HTML et XHTML) temps, SMS, téléphone, - ... Réveil, calendrier, Caméra, Contacts, messagerie 14
  15. 15. Calendrier, Bloc-notes, Tâches, instantanée, MMS, Voice Dialer, GoogleSearch Calculatrice, Gestion de mots de passecourriel Blackberry UI permet VersaMail: via POP3, IMAP POP3, IMAP Supporte les protocoles : POP3, IMAP4, SMTP. accéder courriel Bluetooth, Wi-Fi, POP3, Lotus Notes Lamélioration des rapidement et facilement. IMAP, VPN (virtual Microsoft Exchange fonctionnalités de connexion à Recevoir/envoyer courriel private network) Pouvoir supporter les solutions du Microsoft Exchange Server, Mieux supporter le Microsoft Exchange courriel de BlackBerry et technologie "fast-pull " courriel avec Microsoft. Il ne fournit pas une résolution l’attachement de sécurité de bout en bout Encryptage de courriel: (tandis qu’il existe dans DES, AES BackBerry) TLS encrypté automatique Encryptage: DES, AES “Push mail technology” Accès courriel a distanceMultimédia Capacité enregistrable - Haute résolution d’écran vidéo de lecture et « plus bon » que les autres, Un lecteur multimédia intégré pour la Lecteur de multimédia permet de gérer, vidéo de lecture encastré: - Bon qualité d’audio denregistrement, audio de lecture supporte beaucoup de types de conférence du Voix et vidéo dimporter la lecture de contenu qui a été support plusieurs de - Jouer avec l’application et denregistrement mais audio, vidéo. USB, un appareil photo numérique intégré, le encodé sous diverses formes. types tierce dépendre chaque MID Télécharger et jouer les chansons microphone, l’écouteur, haut-parleur Audio: La sortie audio (mono et stéréo), 64 kbps Caméras intégrés les interfaces codec d’audio et en ligne audio vidéo compatible avec OpenMax TV en ligne Soutenir les formats : MPEG-4, IL 1.0 H.264, MP3, AAC, AMR, JPEG, PNG, GIF.Synchronization Synchronisation des (sous Windows plateforme - Microsoft Outlook(entre un contacts, des mémos, des et Mac plateforme) : - Missing Sync(Mac OS)téléphone tâches, en utilisant : - Outlookportable et un Outlook - Palm desktopl’ordinateur) Lotus Notes Mac OS: IIAs PocketMac pour BlackberryCompatibilité Documents To Go DataViz Documents To Go : Supporter complètement mais Supporter complètementavec Office ne pas robuste mais peut dépendre de chaque MID supporter PDFApplications Il n’y a pas beaucoup de Il y a beaucoup Avoir plus 5,500 applications tierces - Symbian, BlackBerry <Windows Variétés des applications de Web 2.0 comme: Android été supporté par Android communauté ettierces bibliothèque de logiciels d’applications tierces (plus Mobile < Palm OS navigateur, courriel, média, camera, VoIP, GPS, blog, Open Handset Aliance tiers 29,000 applications) - Variété TV, Jeux électriques, contacts, etc. < Palm OS et Microsoft et Symbian Environ centaine des applications tiresLangage de Java C/C++ C++, Java, OPL C++, C#/VB Shell, C/C++, Python, Java JavaprogrammationIDE + SDK Blackberry JDE (Java CodeWarrior, GCC Nokia Carbide C++ (basé sur Visual Tools v4 (gratuit) Eclipse - Eclipse (Android SDK pour Windows, Mac OS X 15
  16. 16. Development The Palm OS Software Eclipse) Visual Studio 2005 Standard Netbeans (Intel) et Linux (i386)) Environment), “plugin” Development Kit (SDK) Express (gratuit), Dev Edition Visual Studio Pro … - IntelliJ sous Visual Studio et - NetBeans (android plugin) Eclipse BlackBerry MDS Studio avec BlackBerry MDS RuntimeEnvironnement Windows/Mac OS Windows/Mac/Linux Windows Windows/Mac OS/Linux Ubuntu Windows /LinuxLes appareils Blackberry Pearl, Blackberry Palm Centro, Palm Treo Nokia E62, Nokia 9210, Sony Ericsson Palm Treo pro, Samsung Saga, AT&T T-Mobile G1, Kogan Agora, SamSung I7500 Galaxy 8820, etc. 755p, etc. P800, P900, P910, Motorola A925, etc. BlackJack II, T-Mobile Shadow, HTC FUZE, LG Incite, etc. 16
  17. 17. CHAPITRE 3. DEVELOPPEMENT D’UNE APPLICATION SUR ANDROID Dans ce chapitre, nous allons présenter les raisons du choix d’Android, les connaissancessur Android et les outils, les données auxiliaires pour créer une application dans la partiepratique.3.1. POURQUOI NOUS AVONS CHOISI ANDROID ? Dans la partie théorique, nous avons étudié les connaissances générales sur plusieursplateformes. Nous avons donné les caractéristiques, les avantages et les limitations de chaqueplateforme. Nous avons présenté aussi le tableau de comparaison entre les plateformes. Dansla partie pratique, nous avons choisi la plateforme Andoird pour faire une étude approfondie etpour développer une application simple. Il y a quelques raisons de mon choix : - Android est une nouvelle plateforme en code source ouverte. De plus, selon Google qui est un majeur distributeur, Android est une plateforme puissante, moderne, sûre et ouverte. Grâce à l’ouverture du code source et des APIs, les développeurs obtiennent la permission d’intégrer, d’agrandir et de replacer les composants existants. Les utilisateurs peuvent adapter les applications à leur besoin. Figure 1. Ouverture de l’Android - Android est basé sur le noyau Linux. Alors, il y a plusieurs avantages comme une grande mémoire, la gestion de processus, le modèle de sécurité, le soutien de bibliothèque partagé, etc. - Le SDK de l’Android offre complètement les APIs pour développer l’application sur Android. - Grâce au « Android Developer Challenge » que Google fournira 10 millions de dollars en prix - aucune condition pour les applications sur la plateforme Android, les développeurs ont eu l’opportunité de gagner beaucoup d’argent. 17
  18. 18. 3.2. QU’EST-CE QU’ON VEUT FAIRE PRECISEMENT ? Précisément, dans la partie pratique, nous allons faire : - Étudier le système d’exploitation Android, installer et configurer le système de développement et l’émulateur d’Android sur Ubuntu. - Étudier les outils pour développer l’application sur Android. - Étudier les APIs (Application Program Interface) pour développer l’application sur Android. - Développer une application qui s’appelle “Android Quizzes” qui aide les utilisateurs à se vérifier leur niveau dans un domaine concret.Les fonctions de «Android Quizzes » : Sélectionner un quiz dans la banque de quiz local. Importer des quiz qui sont stocké dans un server à distance sous la norme GIFT. Exécuter, afficher le résultat et les rapports. Gérer des quiz.3.2.1. Pourquoi nous avons décidé de développer ce logiciel? Maintenant, il existe plusieurs applications sous la plateforme Android. Mais nous trouvonsqu’il non seulement manque les applications d’éducation sous la plateforme Android maisencore dans la plupart des plateformes. Aujourd’hui au Vietnam, les élèves doivent participerau baccalauréat. Dans cet examen on utilise les types de question comme choix multiple. Notrelogiciel les aide donc à vérifier leur niveau de connaissance à tout moment et nimporte où.C’est pour quoi notre logiciel peut être une solution dans l’apprentissage mobile au Vietnam.Nous croyons que dans le futur proche, l’apprentissage mobile sera populaire pour nonseulement les élèves mais encore les sociétés. On pourra donc utiliser notre logiciel dansl’apprentissage mobile. Mais en raison de la nouveauté de notre logiciel, il existe aussi lesrisques.3.2.2. Résultats espérés à la fin Dans la partie pratique, nous espérons que : - Nous pourrons comprendre globalement l’architecture de l’Android, les APIs, les outils pour développer l’application sous Android. - Nous finirons la première version de notre logiciel.3.3. LES OUTILS ET LES DONNES AUXILIAIRES3.3.1. Sources et types des outils qui seront nécessaires Pour développer une application sur Android, nous utiliserons la plateforme Eclipse et JDTplugin. En détails :- Eclipse 3.3 (Europa) ou 3.4 (Ganymede) sous Ubuntu 18
  19. 19. - Eclipse JDT plugin- Dalvik Debug Monitor Service (DDMS)- Android Development Tools (ADT)- Eclipse WST (facultatif, pour Android Editors)- JDK 5 ou JDK 6- Non compatible avec Gnu Compiler pour Java (gcj) Nous utiliserons aussi l’émulateur d’Android comme un appareil virtuel pour développerl’application. L’émulateur qui est un appareil mobile virtuel qui fonctionne sur l’ordinateurpermet aux développeurs de développer, tester et évaluer des applications Android sans laidedun appareil physique. L’émulateur de Android imite tous les types de matériel et de logicielprincipal d’un appareil mobile, sauf qu’il ne peut pas recevoir, appeler l’appel réel. A côté les outils, nous ne pouvons pas aborder le SDK du Android. Le SDK est une collectiond’APIs qui fournissent les procédures disponibles, les fonctions pour faciliter le processus dudéveloppement d’une application sur Android.3.3.2. Sources et types des données qui seront utilisés Nous avons utilisé l’internet pour chercher le code source de notre logiciel en Java maisnous n’avons pas trouvé. Nous devons donc développer notre application depuis lecommencement jusquà la fin. Pour tester des fonctions de notre logiciel, nous utiliserons quelques questions du ministèreVietnamien de l’éducation et de la formation pour le baccalauréat. Cela est possible parce quenous avons eu ces questions.3.4. ANDROID – UNE NOUVELLE PLATEFORME PUISSANTE, MODERNE ET OUVERTEAndroid est ensemble de pile de logiciel qui se compose 4 parties : SE (Système d’exploitation) Intergiciel (Middleware) Les applications principales Ensemble des APIs3.4.1. Architecture d’Android L’architecture de l’Android se compose 4 couches. Ce sont le noyau Linux, lesbibliothèques et le moteur dexécution Android, le Cadre de l’application et le couched’applications.Linux Kernel Android est basé sur le noyau Linux (2.6.24). Alors, il y a plusieurs avantages commegrand mémoire, gestion de processus, modèle de sécurité, soutien de bibliothèque partagé, 19
  20. 20. etc. il fournit les drivers pour communiquer entre les hardwares et leurs logiciels. De plus il y ales parties d’augmentation comme la gestion d‘énergie. Figure 2. Architecture de lAndroidBibliothèque C’est une collections de plusieurs bibliothèques qui basé sur C /C++ comme : - Bionic : C’est une bibliothèque qui implémente la bibliothèque Libc - Bibliothèque de la fonctionnalité : WebKit navigateur pour web navigateur ; Media Framework pour soutenir vidéo, audio normal ; SQLite pour stoker de données, etc. - HAL (Hardware Abstraction Libraries) pour séparer entre le hardware et la plateforme logique.Moteur dexécution d’Android (Android Runtime) Moteur d’exécution d’Android se compose les bibliothèques du cœur, la machinevirtuelle Dalvik. Les bibliothèques du cœur pour Java fournissent des puissances, des simplespour développer la plateforme. La machine virtuelle Dalvik fournit un environnement qui peutfonctionner sur un CPU limité et dans les situations de faible énergie. Il utilise le format dufichier .DEX pour optimiser les ressources comme CPU, RAM, et pour l’application portable.Pour les fichiers .jar, le système utilise un outil intégré pour convertir “byte code” .jar en .dex. Figure 3. Conversation d’un fichier .java à un fichier .dex 20
  21. 21. Carde de l’application (Application Framework)Carde de l’application (Application Framework) fournit les services principaux pour laplateforme Android et les services principaux pour accéder à API du hardware au bas niveau.Les Applications Ce sont les applications qui marchent sous la plateforme Android comme: le réveil, lacalculatrice, le calendrier, la caméra, les contacts, etc. Toutes les applications sont développéespar Java. Nous pouvons trouver que tous les composants de l’Android sont ouverts. Celagarantit l’ouverture de l’Android.3.4.2. Les composants principaux dune application Une application Android se compose une collection des composants. Il y a 4composants principaux : Figure 4. Les composants principaux dune application AndroidActivity La plupart des applications se compose plusieurs écrans. Chaque écran peut être réalisépar une activité. Si un nouvel écran ouvre, le système utilise une pile d’histoire pour stocker lesécrans précédents et pouvoir reprendre l’état précédent ou enlever cet état.Broadcast Intent Receiver On peut utilise Broadcast Intent Receiver pour exécuter les réactions sur lesévénements extérieurs. Par exemple, l’application exécutera automatiquement si uneBroadcast Receiver est éveillé (trigger).Service Une Service est utilisé pour réaliser l’application en arrière-plan. C’est-à-dire, cetapplication peut marcher quand d’autre application est en train d’exécuter comme les servicesde lecture de musique.Content Provider Content Provider fournit des méthodes pour stocker ou rendre de données. Il permetpartager des données entre les applications via les fichiers, ou une base de données de SQLite. 21
  22. 22. Dépend chaque application, elle peut avoir tous les composants en dessus ou non. Mais ellesera crée par ces composants.3.4.3. Cycle de vie d’une activité (Activity Lifecycle) Pour développer d’une application sur Android, on doit comprendre le cycle de vie d’uneactivité. Le cycle de vie d’une activité est exprimé par la figure suivant (Figure 5. Le cycle de vied’une activité). - L’état Active/courant (Running) : C’est un état que l’activité marche en avant-plan. Dans ce cas, cette activité est actif ou de la course. On peut dire que cette activité ait la concentration (focus). - L’état Paused (il est en pause) : Cette activité est visible mais il a perdu de se concentrer. - L’état Stopped : Cette activité n’est pas visible. Si une activité est complètement masquée par une autre activité, il est arrêté. Il conserve tous les états membres et de linformation, cependant il nest plus visible pour lutilisateur que sa fenêtre est cachée et il sera souvent tués par le système lorsque la mémoire est nécessaire ailleurs. - L’état Dead : Cette activité a terminé ou il na jamais été démarré. Si une activité est en pause ou arrêtée, le système peut chuter lactivité de la mémoire, soit par lui demandant de se terminer, ou tout simplement tuer le processus. Quand il est affiché de nouveau à lutilisateur, il doit être redémarré et restauré à son état antérieur.Il existe trois boucles principales: La durée de vie dune activité se passe entre le premier appel à OnCreate () par l’appel à onDestroy (). Une activité met en place tous les états globaux dans la méthode onCreate () et libère toutes les ressources restantes à onDestroy (). La durée de vie visible dune activité se passe entre un appel à onStart () jusquà ce quun appel correspondant à onStop (). Dans ce temps, lutilisateur peut voir lactivité sur lécran, même si elle n’est pas à lavant et à linteraction avec lutilisateur. Entre ces deux méthodes, les ressources qui sont nécessaires pour montrer lactivité de lutilisateur sont conservées. La durée de vie d’une activité en avant-plan se passe entre un appel à onResume () jusquà ce quun appel correspondant à onPause (). Dans ce temps, lactivité est en face de toutes les autres activités et dinteragir avec lutilisateur. Une activité peut souvent changer son état entre l’état de reprise et l’état en pause. 22
  23. 23. Voici le cycle de vie d’une activité Figure 6. Le cycle de vie d’une activitéExemple : Pour mieux comprendre le cycle de vie d’une activité, nous donnons un exemplesuivant.Dans cet exemple, on suppose qu’un utilisateur parle à son ami via son téléphone portable.Dans ce moment, il demande aussi au navigateur de chercher son figure dans son album dePicasa et de l’envoyer à son ami via le courriel et reprendre cette conversation. Dans ce cas, il ya 4 applications différents et 4 processus différents courants. Mais à partir du point de vue del’utilisateur, toutes les activités ne sont pas importantes. Android gère le CPU et lutilisation dela mémoire elle-même. Il signifie que lutilisateur peut traverser les applications avant et enarrière sans penser à la mémoire et à des processus exécutés. 23
  24. 24. Figure 7. Une pile dapplicationVoici les ordres d’exécution des applications et des processus correspondants. 24
  25. 25. Figure 8. Les étapes d’une pile d’application3.4.4. Développement d’une application sur AndroidVoici quelques étapes principales dans le processus de développement d’une application surAndroid : Faire la conception de la base de données. Créer des classes pour représenter les données physiques (couche Mapping) et pour définir des actions comme : supprimer, ajouter, modifier des données. Dessiner des interfaces en les fichiers XML ou en codage : o Les vues (View) : Text, Edit, List, Image, Web, Map, etc. o Les arrangements (layout) : Frame, Linear, Relative, Table, Absolute 25
  26. 26. Choisir des arrangements (layout) : Les layouts sont les ressources qui indiquent lesinterfaces des activités. On utilise les fichiers XML pour exprimer les interfaces. Mais ilexiste d’autre technique pour dessiner l’interface. Dans cette technique, on programmedirectement les composants graphiques en utilisant le codage.Organiser des ressources: les constantes globales (string.xml), les icônes, les images,etc.Créer et mettre à jour le fichier de configuration : AndroidManifest.xml.AndroidManifest.xml (configuration de l’application) est utilisé pour stocker lesdispositions (settings) globales comme les permissions de lapplication, les activités, lesfiltres de lintention. Figure 9. Une application sur androidCréer des activités (Créer les classes pour exécuter les fonctions avec la base dedonnées (ajouter, supprimer, modifier, mettre à jour, etc.) : o Chaque activité peut correspondre avec un écran ou une fonction de cette application. o Il existe quelques activités qui s’occupent des méthodes pour communiquer avec la base de données (Couche Mapping). o Les Intents sont utilisées pour orienter des activités (CALL, ACTION_MAIN, ACTION_VIEW, etc). 26
  27. 27. CHAPITRE 4. CONCEPTION ET IMPLEMENTATION Dans la partie pratique, nous devons programmer une application sur Android. Selon lepoint de vue de génie logiciel, nous devons donc faire quelques activités comme : l’étudepréalable, l’étude technique, liste des activités, le diagramme des activités, cas d’utilisation, etc.4.1. LA SPECIFICATION D’ANDROID QUIZZES (dans le point de vue de génie logiciel)4.1.1. Introduction au notre programme Le but du projet a pour développer une application qui marche sur la plateformeAndroid pour organiser des quiz et pour aider les utilisateurs à vérifier leur niveau.Caractéristiques des utilisateurs : Utilisateurs utilisent leur téléphone portable qui est installénotre logiciel pour sélectionner une liste des quiz et jouer avec eux.Contraintes de développement Fonctions : les fonctions qui sont définis dans la version 1 Temps : dans le temps du TPE Limitation des ressources : limitation du mémoire interne du téléphone portableMoyens logiciels L’environnement de développement Eclipse sous Ubuntu Le SDK de l’Android Emulateur ADTRisque Il manque des connaissances sur la programmation mobile Il y a plusieurs APIs que nous devons examiner On peut tester seulement sous un émulateurFonction du logicielNotre logiciel permet: Organiser un test : Sélectionner un quiz dans la banque de quiz qui est classifié en trois niveaux difficultés : facile, moyen, et difficile. Importer les fichiers de quiz sous norme standard comme : GIFT, IMS QTI, HotPotatoes, etc. Exécuter, afficher le résultat et les rapports. Gérer des quiz. 27
  28. 28. Supporter les questions qui comprennent les composants multimédias.Notre logiciel marche en mode hors ligne. Tous les quiz ont donc stockés dans la base dedonnées locale. Mais on peut connecter avec des serveurs à distance pour importer des quiz. En raison de limitation de temps dans la partie pratique, nous allons développer uneapplication très simple. Mais nous allons continuer compléter ce logiciel après finir le travail duTPE.En détails, dans cette étape, nous allons développer notre application avec les fonctionsessentielles (version 1) : Supporter seulement les questions de texte sans multimédia. Sélectionner un quiz dans la banque de quiz locale. Importer des quiz qui sont stocké dans des serveurs à distance. Exécuter, afficher le résultat et les rapports. Gérer des quiz.4.1.2. Liste des activités Figure 10. Liste d’activités de notre programme4.1.3. Cas d’utilisation 28
  29. 29. Figure 11. Cas dutilisation Les cas dutilisations suivants représentent l’ensemble des besoins et des exigences quenotre application doit respecter. Ces cas d’utilisations sont regroupés en modules.Quizzes Figure 12. Cas dutilisation -QuizzesOrganiser un quizUC1 : Organiser un quiz/ sélectionner un quiz Nom UC1. Organiser un quiz/ sélectionner un quiz Résumé Utilisateur sélectionne un quiz dans la liste des quiz local pour organiser un test. Acteur Utilisateur 29
  30. 30. Pré-conditions Il existe au moins un quiz dans la banque locale. Evènements de base Utilisateur clique sur le fileur pour sélectionner la catégorie et le quiz. Utilisateur affirme ses choix. Evènements Si utilisateur ne choisit pas la catégorie et le quiz, le système alternatifs affichera un message. Post conditions Le système organise et affiche les questions dans ce quiz pour commencer le test.Sélectionner les réponsesUC2 : Sélectionner les réponses Nom UC2 : sélectionner les réponses Résumé Utilisateur sélectionne les réponses de chaque question dans ce test. Acteur Utilisateur Pré-conditions Un test a été créé Evènements de base Utilisateur clique sur la réponse qu’il choisit. Utilisateur affirme ses choix. Evènements Si utilisateur ne choisit pas une réponse parmi les réponses, le alternatifs système considère que la réponse de cette question soit incorrect. Post conditions Le système organise des réponses pour calculer le résultat.Voir le résultat résumeUC3 : Voir le résultat résumé Nom UC3 : Voir le résultat résumé Résumé Le système affiche le résultat du test. Acteur Utilisateur Pré-conditions Utilisateur a fini ses choix. Evènements de base Utilisateur clique sur le lien de voir le résultat. Le système affichera les informations : le nombre de question, le nombre de réponse correct, incorrect. Evènements alternatifs Post conditions Le système affiche le résultat résuméVoir le résultat détailléUC4 : Voir le résultat détaillé Nom UC4 : Voir le résultat détaillé 30
  31. 31. Résumé Le système affiche le résultat détaillé du test. Acteur Utilisateur Pré-conditions Utilisateur a fini ses choix et voir le résultat résumé. Evènements de base Utilisateur clique sur le lien de voir le résultat. Pour chaque question, le système affichera sa question et ses réponses, la correcte réponse et la réponse de l’utilisateur. De plus, il affichera l’information de rétroaction. Evènements alternatifs Post conditions Le système affiche le résultat détailléImporter des Quiz Figure 13. Cas dutilisation -Importer des quizSélectionner l’adresse de serveur de base de donnéesUC5 : Sélectionner l’adresse de serveur de base de données Nom UC5 : Sélectionner l’adresse de serveur de base de données Résumé Utilisateur sélectionne un serveur de base de données pour importer des quiz. Acteur L’administrateur Pré-conditions Il existe les adresses des serveurs. Evènements de base Administrateur sélectionne un serveur dans la liste des serveurs S’il l’administrateur affirme cet action, le système connecte sur ce serveur. Evènements Administrateur peut annuler cette action. alternatifs Post conditions Retourner le résultat : le système va faire la connexion ver le serveur 31
  32. 32. Vérifier le statut de connexionUC6 : Vérifier le statut de connexion Nom UC10 : Vérifier le statut de connexion Résumé Le système vérifie le statut de connexion. Acteur L’administrateur Pré-conditions Une adresse de serveur est entrée. Evènements de base L’administrateur indique le système qu’exécute la fonction : Vérifier le statut de connexion. Le système répond à cette demande en affichant un dialogue progressive. Si cette connexion est succès, le système affichera un écran de choisir les fichiers importés. Si cette connexion n’est pas succès, le système affichera un dialogue : essayer d’autres adresses ou non ? Evènements Administrateur peut annuler cette action. alternatifs Post conditions Retourner le résultat : connexion est succès ou nonImporter un quizUC7 : Importer un quiz Nom UC11 : Importer un quiz Résumé Administrateur importe un quiz qui est stockés dans un fichier sous la norme standard : GIFT et est comprimé sous norme .Zip dans un serveur à distance. Acteur Administrateur Pré-conditions Il existe un quiz dans ce serveur. La connexion entre le serveur et le téléphone portable est établie. Evènements de base Importer un quiz : Le système affiche une liste de catégories et une liste de leurs quiz. Administrateur choisit un quiz. Administrateur affirme cette action. Le système importe de base de données ce quiz et affiche un message du résultat. Evènements Le système affichera un message d’erreur s’il y a une erreur pendant alternatifs l’importation ou le format de ce fichier est invalide. Administrateur peut annuler cette action. Post conditions Des nouvelles questions, de nouvelle quiz dans la base de données 32
  33. 33. Gérer des quizSupprimer un quiz : UC8 : Supprimer un quiz Nom UC8 : Supprimer un quiz Résumé Administrateur supprime un quiz. Acteur Administrateur Pré-conditions Il existe au moins un quiz dans la base de données. Evènements de base L’administrateur indique que le système exécute la fonction : Supprimer un Quiz : Administrateur choisit le menu : supprimer un quiz. Le système répond à cette action en affichant un dialogue pour donner une question que l’utilisateur veut vraiment exécuter cette action ou non. Administrateur affirme cette action. Le système supprime ce quiz Evènements Administrateur peut annuler cette action. alternatifs Post conditions Supprimer un quiz et met à jour la base de données.4.1.4. Diagramme d’activitéL’activité principale Figure 14. Diagramme d’activité principale 33
  34. 34. Importer un quiz Figure 15. Diagramme d’activité - Importer un Quiz4.1.5. Diagramme de classe Figure 16. Le diagramme de classe 34
  35. 35. 4.2. IMPLEMENTATION4.2.1. Architecture de « Android Quizzes »Notre application se compose 4 couches. Voici les fonctions principales de ces couches : - Couche Application : La couche Application représente linterface de l’utilisateur. Elle interagit directement avec les utilisateurs. - Couche Entreprise : La couche Entreprise regroupe les objets communs et structurants pour toutes les applications, et garantit l’intégrité des données. Elle correspond à la partie fonctionnelle de lapplication. Elle fournit des services pour répondre aux requêtes du client. - Couche Mapping : La couche Mapping transforme la représentation physique des données en une représentation Objet en tenant compte du langage de programmation.Figure 17. L’architecture de l’application- Couche Physique : La couche Physique correspond à la structure physique des données (la base de données).Voici les couches dans notre programme : Couche Physique : Pour stocker des données, Android fournit 4 techniques : « Shared Preferences », « Files », « SQLite Databases », « Content Providers ». Dans notre programme, on utilise le mécanisme « Content Providers » pour stocker et retirer de données. - « Content Providers » : un « Content Providers » est un composant facultatif d’une application qui expose les accès en lecture/écriture aux données privées de cette application sous une restriction. Il utilise les syntaxes, le mécanisme standard pour demander et renvoyer de données. Vous pouvez contrôler laccès à un « Content Providers » en utilisant les permissions standard du système. Figure 18. Fournisseur de contenu et données physique 35
  36. 36. - Couche Mapping : mapping entre les tableaux physiques avec les classes. public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/quiz"); public static final String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.google.quiz"; public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/vnd.google.quiz"; public static final String DEFAULT_SORT_ORDER = "_id ASC"; public static final String TITLE = "title"; public static final String QUESTION = "question"; public static final String RESPONSE1 = "response1";- Couche Entreprise : Elle se compose des classe pour faire des fonctionnalités principales comme: o Établir la connexion, o Retirer les quiz aux fichiers sous norme GIFT, o Importer des quiz, o Supprimer un quiz et tous les quiz dans une catégorie.- Implémentation de GUI : Il existe 2 méthodes pour faire le GUI : on peut utiliser le fichier .XML ou utiliser directement le codage. S’il on utilise le fichier .XML, on peut se référer les composants dans fichier .XML par le référence : @id/name_for_component La plupart de ressources de GUI peut se trouver dans les répertoires: o res/layout o res/values Les éléments principaux d’UI: Layout : FrameLayout, LinearLayout, RelativeLayout, TableLayout, AbsoluteLayout Views : TextView, EditText, ListView, ImageView, MapView, WebView <TextView android:id="@+id/id_select_category" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="15sp" android:text="@string/select_category" android:layout_x="30px" android:layout_y="80px" > </TextView> 36
  37. 37. <Spinner android:id="@+id/sp_category" android:layout_width="150px" android:layout_height="wrap_content" android:textStyle="bold" android:textSize="17sp" android:drawSelectorOnTop="true" android:prompt="@string/tx_select_category" android:layout_x="170px" android:layout_y="70px" /> sCategory = (Spinner) findViewById(R.id.sp_category); ArrayAdapter<String> adapterCategory = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item); adapterCategory .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sCategory.setAdapter(adapterCategory); Et voici ce texte et fileur : Figure 19. Texte et fileurManipulation de l’événement sous Android (Event Handling in Android) Il y a quelques méthodes pour la manipulation de l’événement. Mais la méthode simpleest la méthode qui utilise l’auditeur de l’événement (event listener) pour l’écouter delinteraction de lutilisateur. Un auditeur de l’événement est une interface de classe View quicontient des méthodes de callback. Ces méthodes seront appelées par le cadre de l’applicationde l’Android quand le View qui a été enregistré est déclenchée par linteraction de lutilisateur. public class SelectQuiz extends Activity implements View.OnClickListener, AdapterView.OnItemSelectedListener { … sCategory = (Spinner) findViewById(R.id.sp_category); sCategory.setOnItemSelectedListener(this); … public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3) { // TODO Auto-generated method stub ... } } 37
  38. 38. 4.2.2. Les librairies de programmation utilisée Pour développer notre programme, nous avons utilisé les librairies d’Android et leslibrairies de Java. Voici les librairies :Les librairies de l’Android : android.content : Il fournit des classes pour accéder et traiter des données sous Android comme : android.content.ContentProvider, android.content.Intent, etc. android.app: C’est une ensemble des classes dencapsulation application de l’Android en haut niveau comme : android.app.Activity, android.app.Dialog, etc. android.view : Il fournit des classes qui exposent linterface utilisateur de base et gèrent linteraction avec lutilisateur comme : android.view.Menu, android.view.View, etc. android.widget : Il contient des éléments d’UI comme le bouton-poussoir (android.widget.RadioButton), fileur (spinner- android.widget.Spinner), adaptateur (adapter - android.widget.AdapterView) android.net : Il fournit des classes pour travailler avec le réseau : android.net.Uri, android.net.http, etc. android.database : Il contient des classes pour explorer des données retournées par un fournisseur de contenu (content provider) : android.database.Cursor.Les librairies de Java : java.io : Il fournit des fonctions du système dentrée et de sortie et du système de fichiers : java.io.BufferedReader, java.io.InputStream, etc. Java.net : Il fournit des classes pour implémenter des applications en réseau : java.net.HttpURLConnection, java.net.URLConnection, etc. Java.util : Nous avons travaille avec les classes de collection : java.util.List, java.util.Map, etc.4.2.3. La norme GIFT Dans les serveurs de base de données, chaque quiz est stocké dans un fichier sousnorme GIFT. GIFT permet le fournisseur de services de test de créer facilement des questionsen utilisant plusieurs outils qui soutiennent cette norme (Moodle). La norme GIFT (General Import Format Template) est proposée par la communautéMoodle, et est adopté par plusieurs plateformes de l’apprentissage en ligne comme une normede stockage de question2. Nous avons choisi GIFT parce que GIFT est bonne, ouvert et assez simple.Voici les instructions générales d’un fichier GIFT : Au moins une ligne vierge doit être laissée entre chaque question.2 http://docs.moodle.org/en/GIFT 38
  39. 39. Dans la forme simple, la question vient en premier, puis les réponses sont mises entre crochets, avec un signe égal indiquant la bonne réponse (s) et le tilde de mauvaises réponses. A Nombre signe insérer une réponse. Les symboles de format Symbole Utilisation Symbole Utilisation // Commentaire ::Titre:: Titre Commencement de la { } Après la dernière réponse réponse = La réponse correcte # Rétroaction/ commentaire ~ La réponse incorrecteOn peut décrire la question numérique, la question « matching » et le poids des réponses : Symbole utilisation Symbole utilisation {# Commencer la question numérique : Rangée de la question numérique -> Matching %50% poids 50% //line commentaire ::Titre de la question:: Question { =réponse correcte ~réponse incorrect 1 # rétroaction pour la réponse incorrecte 1 ~réponse incorrect 2 # rétroaction pour la réponse incorrecte 2 ~réponse incorrect 3 # rétroaction pour la réponse incorrecte 3 } Question {=réponse correcte ~réponse incorrect 1 ~réponse incorrect 2 ~réponse incorrect 3} Voici une question : Do all the Activities and Services of an application run in a single process?{=yes, by default ~ yes, declare by user ~No, multi process} 39
  40. 40. Figure 20. Une question 40
  41. 41. CHAPITRE 5. EXPERIMENTATION ET ANALYSE DES RESULTATS Pour expérimenter notre logiciel, nous avons créé les serveurs de base de données àdistance. Chaque serveur stocke des auiz en catégories. Les quiz sont stockés sous forme GIFT.Les quiz peuvent être crée par les outils de création de question comme : HotPotatoes, Moodle,ect.Nous avons utilisé des questions dans l’examen de baccalauréat comme les questionsd’échantillons.Pour faciliter de l’utilisation, on a fixé trois serveurs correspondant 3 adresses : http://el.edu.net.vn/questionbank/category.html http://ocw.vn/questionbank/category.html http://115.84.178.65/questionbank/category.html Figure 21. Sélection des serveursDe plus, notre logiciel permet l’utilisateur d’entrer l’adresse d’autres serveurs de base dedonnées. Chaque quiz est stocké dans un fichier sous norme GIFT. De plus, ce fichier estcomprimé sous norme ZIP pour économiser la charge de la transmission des données entreclient et serveur.5.1. EXPRIMENTATION DES FONCTIONS DE «ANDROID QUIZZES» Les fonctions principales de notre programme sont: Organiser un test Gérer des quiz Importer des quiz qui sont stockés dans les serveurs à distance.Nous avons testé ce logiciel, voici les résultats qui sont expliqués par les écrans. 41
  42. 42. Voici l’écran principale de ce logiciel Figure 22. L’écran principal de ce logicielOrganiser un test - Il y a 2 façons pour organiser un test: o A partir de l’écran principal, on sélectionne la catégorie et le quiz qu’on veut pour faire le test. Cliquer sur «Ok » pour commencer ce test. o Dans l’écran de gestion de quiz, sélectionner un quiz. Figure 23. Organiser un test (1) Figure 24. Organiser un test (2)Faire le test Figure 25. Liste des questions dans un quizTout d’abord notre programme liste toutes les questions dans ce quiz. On peut appuyer sur lemenu et sélectionner «Start » pour commencer ce Quiz. 42
  43. 43. Figure 26. Commencer un quizOn peut commencer rapidement de faire ce quiz en cliquant sur une question. Dans ce cas, onva faire ce quiz à partir de cette question. Figure 27. Faire un testLes étapes de test Figure 28. Les étapes de test 43
  44. 44. Quad l’utilisateur fini un quiz, il peut supprimer ce quiz s’il trouve que ce quiz n’est pas encoreutile.Importer des quiz On peut faire la fonction en 2 façons : Dans l’écran principal, on sélectionne le menu «Import quiz» pour importer des quiz. A partir de l’écran de gestion de quiz, on sélectionne le menu « Import Quiz » Figure 29. Importer un quiz En suite, on va selectionne le serveur de base de quiz Figure 30. Sélection des serveurs Notre programme va se connecter à ce serveur et établir une connexion si cetteconnexion est réussie. Par contre, elle lance un dialogue de l’erreur. Dans ce cas, on peutessayer avec autres serveurs. Figure 31. Connexion entre client et serveur 44
  45. 45. Si la connexion est établie, on peut choisir des catégories et des quiz pour importer. Figure 32. Choix de catégorie et de quizSi l’importation est réussi, le système affiche une dialogue de confirmer : continuer ou non Figure 33. Importation réussiSi ce quiz est déjà existé dans la base de données locale, notre logiciel annonce un dialoguesuivant. Dans ce cas, cette action est annulée. Figure 34. Le quiz existéVoici les nouveaux quiz qui sont listes dans la catégorie correspondante. Figure 35. Liste des quizGérer des QuizCette version de notre programme organise des quiz en trois catégories : English, French etAndroid. 45
  46. 46. Figure 36. Gérer des quizOn a les fonctions principales suivantes : Supprimer tous les quiz dans une catégorie, Supprimer un quiz, Gérer l’état de quiz.Pour gérer bien les quiz, on a défini 3 états : « New », « Testing », et « Done ». New : C’est l’état d’un quiz qui a été importé dans la base de données locale mais n’est pas commencé. Testing : C’est l’état qu’un quiz est en traine de tester. Done : C’est l’état que l’utilisateur a déjà fait ce quiz et a vu le résultat détaillé. Figure 37. Etats de quizNotre logiciel existe une fonction supplémentaire : Rédiger le titre de question. Pour mieuxorganiser des questions, on peut modifier le titre. Figure 38. Rédiger le titre 46
  47. 47. 5.2. ANALYSE DES RESULTATS Comme nous avons expliqué, notre programme fonctionne bien. Toute la fonction dansla spécification de ce projet marche bien sous l’émulateur de l’Android. Mais nous ne sommespas assuré qu’elle puisse être bien marcher sur un téléphone portable réel.De plus, elle existe quelques limitations : Maintenant, notre logiciel supporte seulement le questionnaire à choix multiple. Mais en effet, il existe plusieurs types de question comme : Vrai/Faux question, la question numérique, etc. Elle supporte seulement la norme de question GIFT tandis qu’il existe les autres normes très populaires au monde comme IMS QTI, Blackboard, etc. En raison de l’émulateur d’Android, il existe quelques erreurs d’affichage des mots Vietnamiens. Notre logiciel ne peut que marcher avec les questions sans multimédia. On ne peut pas faire les examens de compréhension orale avec ce logiciel.Pour tester la performance de notre programme, nous avons testé avec les quiz qui ont lesdifférences questions.Voici le tableau de comparaison : Quiz Nombre Capacité Importer Lister toutes Commencer voir le résultat questions (KB) (ms) les questions ce quiz détaillé (ms) (ms) (ms) Grammar_ 18961 5.53 18903 35948 23564 19345 Quiz Grammar_ 250 15.8 455 830 587 542 Advance Grammar_ 50 3.21 337 468 315 258 Beginner Selon le tableau, le quiz Grammar_Quiz a le nombre de question très grande (18961)tandis que la capacité est assez petite. Le temps nécessaire pour importer ce quiz dans la basede données locale est assez haut. De plus, le temps nécessaire pour lister toutes les questionsdans ce quiz, le temps de commencer ce quiz et le temps de voir le résultat détaillé ne sont pasacceptable. Dans ce cas, notre logiciel marche lentement. En détaillé, l’usage de CPU est que :com.android.androidquizzes: 81% = 50% user + 30% kernel ! 47
  48. 48. Par contre, avec un quiz normal (le nombre de questions est 250 ou 50), notre logicielmarche bien. Le temps d’exécution est assez vite.Alors, notre logiciel peut fonctionner dans les cas normaux. 48

×