ENSEIRB 3 ème ANNEE OPTION SE 27 janvier Sommaire

Dimension: px
Commencer à balayer dès la page:

Download "ENSEIRB 3 ème ANNEE OPTION SE 27 janvier 2010. Sommaire"

Transcription

1 ENSEIRB 3 ème ANNEE OPTION SE 27 janvier 2010 Rapport de projet avancé : Réalisation d une application domotiq que sous Android Encadrant : Hong Yu Guan Responsable : Patrice Kadionik BOUZID Boubker EL ABBADI Lhassan MATTERA Antoine VIRY Renaud

2 ENSEIRB 3 ème ANNEE OPTION SE 27 janvier 2010 Sommaire Sommaire... 2 Introduction... 3 A propos d Android... 3 Pourquoi développer notre application sous Android?... 4 A propos de la domotique... 4 Définition du projet... 6 Environnement de développement... 6 Architecture d Android... 8 Le noyau Linux... 8 Les librairies... 9 Android Runtime... 9 Le Framework Activité : Les intents : Services : Le fournisseur du contenu : Le récepteur de broadcast : Les applications Stockage : Réseau : Multimédia : GPS : Services téléphoniques : Projet Homid...17 Cahier des charges Architecture globale d Homid Conception d Homid Considérations Visuelles et d utilisations Détails techniques...21 Les aspects graphiques Video Widget : Graphique : Listes : Les aspects gestion de données Les préférences : Base de données : La gestion du service : Création du service : Liaisons avec l application : Conception du service : Conclusion...36 Bibliographie...37

3 Introduction Ces dernières années de nombreux Smartphones proposent des applications de plus en plus ingénieuses. Des applications domotiques sont de plus en plus proposées. En effet, il y a un réel engouement du publique pour ces applications qui nous permettent de gérer tous les dispositifs de la maison. L imagination dans ce domaine est sans fin. Par ailleurs les systèmes dotés de la plateforme Android ont connus un essor remarquable. Le système d exploitation de Google est ainsi de plus en plus populaire et une réelle communauté de développeurs se constitue. Dans le cadre de notre projet, nous nous sommes attelés à la mise en œuvre d une application domotique sur la plateforme Android. Une première partie de notre travail a été de prendre en main l environnement Android et c est seulement dans un second temps que nous avons réalisé l application en elle même. A propos d Android Android est un système d'exploitation Open Source pour Smartphones, PDA et terminaux mobiles qui a été conçu par Android, une startup rachetée par Google en Google Android est un système fiable et facile à utiliser. Ce système d'exploitation est basé sur Linux, et intègre les applications existantes de Google. Ce système d'exploitation pour mobile utilise une machine virtuelle personnalisée, conçue pour optimiser la mémoire et les ressources matérielles du téléphone. Ainsi Android est un système d exploitation basé sur : Un noyau Linux Open Source Android se composant de divers modules placés au dessus du noyau Linux. Les modifications apportées au noyau Linux seront sous licence GNU GPL (GNU General Public License). Une optimisation de la mémoire et des ressources matérielles du Smartphone Le système d exploitation permet ainsi de donner le meilleur de l architecture matérielle. C est en ce sens que Google a récemment présenté le Nexus One. Ce dernier, le premier proposé directement par le géant américain, va lui permettre de montrer aux différents constructeurs de Smartphones les potentialités de son système d exploitation. Des librairies Open Source ; Un environnement Runtime et un Framework adaptés ; Des applications préinstallées ; Un environnement de développement (Software Developpement Kit) complet. EL ABBADI Lhassan VIRY Renaud Page 3

4 Pourquoi développer notre application sous Android? Comme nous l avons vu ci dessus, ces dernières années ont connues l émergence de beaucoup de Smartphones. L iphone est le plus célèbre. Tant l'iphone que les plateformes Android sont conçus pour la navigation intuitive sur internet. Mais quelle est la différence entre l'iphone et le Google Phone. La principale différence réside dans la stratégie économique entreprise par les deux firmes américaines. Les possesseurs d appareils Android sont un peu plus attirés par la navigation Web, les possesseurs d iphone sont quant à eux plus attirés par les applications à caractère social. Le tableau ci dessus nous permet de voir, selon les différents systèmes d exploitation, l utilisation des différentes fonctionnalités des Smartphones sur le marché américain. On remarque que le système d exploitation Android est apparemment plébiscité sur de nombreuses fonctionnalités multimédia (l IPhone possède aussi un positionnement très intéressant, cependant le modèle économique d Apple est plus contraignant (modèle sous licence propriétaire, SDK disponible uniquement sous environnement Mac OS, obligation de passer par l App Store )). Tout cela justifie le fait que notre choix se soit porté sur la plateforme Android pour la réalisation de notre application domotique. A propos de la domotique La domotique est l ensemble des techniques visant à apporter des fonctions de confort (optimisation de l'éclairage, du chauffage), de gestion d'énergie (programmation), de sécurité (comme les alarmes) et de communication (comme les commandes à distance) que l'on peut retrouver dans les maisons. EL ABBADI Lhassan VIRY Renaud Page 4

5 Tout le monde rêve de pouvoir automatiser plusieurs fonctions de sa maison (allumer la lumière, ouvrir la porte de garage.).il s'est ainsi développé ce domaine particulier de l'automatique dédié à l'usage de la maison. Les points suivants résument les enjeux de la domotique : La domotique c'est l'informatique appliquée à l'ensemble des systèmes de régulation, de gestion, de communication et de sécurité concernant l'habitat et les tâches de la vie quotidienne. La domotique permet d' améliorer le Confort, la Sécurité et la Fonctionnalité de l'habitat. La domotique s'adressee au simple bricoleur ainsi qu'à toute personne ayant besoin d'automatisation dans la maison (pour les handicapés par exemple). La domotique est basée sur la mise en réseau des différents appareils électriques de la maison. Les informations passent par le réseau électrique. Maintenant pour mieux illustrer nos propos, prenons l'exemple d'une personne qui arrive devant sa maison avec sa voiture. Une simple pression sur son Smartphone déclenchera les actions suivantes : 1. ouvrir la porte du garage ; 2. allumer le chauffage ; 3. allumer la lumière du garage ; 4. allumer la radio dans le salon ; 5. prévenir de la présence de courrier dans la boîte aux lettres ; 6. allumer l'ordinateur dans le bureau Une infinité de scénarios peuvent être imaginés. Par la suite, nous en particulier afin de valider notre application. proposeronss un en BOUZID Boubker EL ABBADI Lhassan MATTERA Antoine VIRY Renaud Page 5

6 Définition du projet Notre travail a consisté en l élaboration d une application Android pour des applications domotiques. Les techniques employées, et qui seront détaillées par la suite, tiennent compte d un cahier des charges bien défini. En effet, l application gère un certain nombre de capteurs et d actionneurs. Par ailleurs, la gestion de ces périphériques se fait souvent en tâche de fond (récupération de valeurs de certains capteurs ). Les informations et les données transitent en utilisant le protocole SIP. Le protocole SIP, Session Initiation Protocol est un protocole standard ouvert de gestion de sessions souvent utilisé dans les télécommunications multimédia. C est un protocole normalisé et standardisé qui a été conçu pour établir, modifier et terminer des sessions multimédia. Il se charge de l'authentification et de la localisation des multiples participants. Il se charge également de la négociation sur les types de média utilisables par les différents participants en encapsulant des messages SDP (Session Description Protocol). C est cet aspect qui revêt une grande importance pour mener à bien notre projet. En effet, les différents protocoles utilisés dans la maison (x10, Zigbee, ) seront encapsulé dans le protocole SIP. Maintenant que nous avons défini les grandes lignes de notre projet, nous allons nous intéresser à l environnement de développement utilisé. Environnement de développement Le SDK (Software Development Kit) Android inclut un ensemble complet d'outils pour le développement complet d une application. Il s'agit notamment d'un débogueur, de nombreuses bibliothèques, d exemples de codes, de tutoriels complets et d un émulateur de téléphone (basé sur QEMU). EL ABBADI Lhassan VIRY Renaud Page 6

7 Le SDK de Google supporte officiellement L'environnement de développement intégré Eclipse (version 3.2 ou ultérieure a laquelle on aura pris la peine d installer le plugin fourni par Google (Android Development Tools)). Afin de mieux comprendre l architecture du SDK de Google, les différents dossiers contenus dans le package fourni par Google sont détaillés ci après : add ons/ Contient les modules supplémentaires qui peuvent être utilisés en plus des modules contenus directement dans le SDK de Google docs/ Contient un ensemble complet de documentation au format HTML, dont le guide du développeur, la référence de l'api, et d'autres informations. Pour lire la documentation, offline.html charge le fichier dans un navigateur Web. platforms/ Contient différentes versions de plateformes Android. Il est possible de développer des applications sur chacune d entre elles. Un sous répertoire différent est dédié à chaque plateforme. tools/ Contient l'ensemble des outils de développement à disposition des développeurs, telle que l'émulateur, le trace log Maintenant que nous avons une vue globale du projet et de l environnement de développement, nous pouvons nous attarder un peu plus sur l architecture d Android. EL ABBADI Lhassan VIRY Renaud Page 7

8 Architecture d Android L architecture d Android est une plateforme basée sur Linux et Java. Cette plateforme est composée de cinq couches. Au sommet de la pile on trouve des applications développées en Java couvrant les besoins classiques d un utilisateur. Le noyau Linux C est un noyau Linux version 2.6 basé sur l architecture ARM. Le rôle de ce noyau est d établir le lien entre la partie hardware et le reste de l environnement en intégrant les drivers nécessaires. Il gère les services suivants : - la sécurité ; - la mémoire ; - les processus ; - la pile du réseau ; - le modèle des périphériques. EL ABBADI Lhassan VIRY Renaud Page 8

9 Les librairies Ce sont des librairies C/C++ utilisées par les différents composants d Android. Les développeurs utilisent les fonctionnalités et les possibilités offertes par ces librairies à travers les applications framework. Android Runtime Il s agit là d un composant clé du système Android. La Dalvik virtual machine n est pas du tout une machine virtuelle Java. Elle est conçue spécialement pour Android et est optimisée pour satisfaire deux critères. Le premier est que chacune des applications doit avoir sa copie propre exécutée dans un processus Linux, ce qui signifie que la machine DVM est instanciée pour chacune de ces applications. Le deuxième est que cette conception doit respecter une certaine efficacité au niveau de la gestion de la mémoire. Core libraries fournit les fonctionnalités de Java. Les périphériques peuvent exécuter plusieurs Dalvik VMs. Chaque application peut s exécuter avec sa propre instance, ce qui garantit une indépendance vis à vis des autres applications. La machine virtuelle Dalvik exécute les fichiers spécifiques optimisés d extension.dex. Ensuite, l outil Dx tool transforme ces fichiers Java compilés en fichiers dex. EL ABBADI Lhassan VIRY Renaud Page 9

10 Le Framework [APPLICATION DOMOTIQUE SOUS ANDROID] 27 janvier 2010 Le gestionnaire des applications fournit tout ce qu il faut pour développer une application sur la plateforme Android. Notamment un nombre d outils comme les intents, les activités, les services, le fournisseur du contenu et le récepteur du broadcast. Dans ce projet on a utilisé essentiellement les activités, les services et les intents. Vers la fin de cette partie, on citera la principale fonction du fournisseur du contenu et celle du récepteur du broadcast. Activité : Une activité se trouve toujours dans l un des quatre états suivants : Active : dans ce cas l activité a été lancée par un utilisateur, elle s exécute au premier plan. C est l état qui reflète son fonctionnement. En pause : dans ce cas l activité est lancée, elle est visible mais un autre évènement occupe une partie de l écran. Pendant ce temps l utilisateur voit l activité mais c est possible qu il ne soit pas en mesure d interagir avec elle. EL ABBADI Lhassan VIRY Renaud Page 10

11 Stoppée : l activité est lancée et est en exécution sauf qu elle est invisible car le système a basculé vers d autres activités. Dans ce cas l utilisateur ne peut ni voir ni interagir avec l activité en question. Morte : l activité a été tuée par l utilisateur ou probablement par le système en raison d un manque de mémoire. Le schéma suivant résume les étapes de la vie d une activité : La méthode oncreate() est appelée dans les trois cas suivants : - Lorsque l activité est lancée après le redémarrage du système, et dans ce cas elle est appelée avec le paramètre null. - Si l activité s est exécutée puis qu elle a été tuée, cette méthode sera appelée avec le paramètre Bundl. - Si l activité s est exécutée et qu on l a configurée pour qu elle utilise des ressources différentes, elle sera recréée par le biais de la méthode oncreate (). La méthode onstart() est appelée après la création de l activité pour la mettre au premier plan, quant à la méthode onrestart() celle ci a pour objectif de la redémarrer. La méthode onresume() est appelée juste avant que l activité passe au premier plan soit parce qu elle vient d être lancée soit parce qu elle est repartie après avoir été stoppée, soit après la fermeture d une boîte de dialogue. Cette méthode permet de reconstruire l interface en fonction du EL ABBADI Lhassan VIRY Renaud Page 11

12 lancement de la phase de visibilité vis à vis de l utilisateur. onresume() a pour but de rafraîchir la visibilité courant et si nécessaire de lancer thread en arrière plan pour modifier cette visibilité. Au contraire, tout ce qui détourne l utilisateur de l activité provoquera l appel d onpause(). Dans ce cas là on peut arrêter les threads en arrière plan et libérer les ressources en accès exclusif. Finalement, la méthode ondestroy() marque la fin du cycle de vie de l activité. Elle est appelée dans deux cas, soit parce que l activité a appelé la méthode finish() soit parce que Android a besoin de la mémoire. Il faut dire que cette méthode est essentiellement destinée à la libération des ressources obtenues dans oncreate(). Les intents : Dans de nombreuses situations, le système Android repose sur un grand nombre de composant étroitement liés. Ce qu on peut obtenir dans une interface graphique via des boîtes de dialogue ou des fenêtres filles est généralement traité par des activités indépendantes. L activité au sommet de la pile (ou l activité visible et active) est spécifique mais les autres doivent toutes être accessibles d une façon ou d une autre. Android offre un système de communication très performant permettant de faire passer l information entre activités ou plus généralement entre composants applicatifs. Les intentions sont des appels système. Ils sont crées pour prévenir les applications de la survenue de différents événements, que ce soit une modification au niveau matériel, l arrivée d un événement au sein même de l application ou la réception d une nouvelle donnée. On peut créer une intention pour lancer une activité ou pour se prévenir qu une situation particulière aura lieu. Il y a deux éléments principaux dans un intent : - l'action à effectuer (action) : chaîne de caractères indiquant l'action qui doit être faite (exemples : ACTION_VIEW, ACTION_EDIT, ACTION_MAIN) ; - les données (data) sur lesquelles l'action doit être effectuée, elles sont représentées par une URI ( Unified Ressource Locator ): content://com.google.provider.notepad/notes/1. D autre part, chaque intent a quatre attributs secondaires : - Catégorie : informations additionnelles sur l'action à exécuter. - Type : spécifie le type des données passées en paramètres, c'est un type MIME qui normalement est inséré à partir des données. - Composant : la classe à exécuter (activité, service, etc...) avec ses liens dynamiques.. EL ABBADI Lhassan VIRY Renaud Page 12

13 - Extras : pour passer des informations additionnelles. Tous les composants Android qui souhaitent être prévenus par des intentions doivent déclarer des filtres d intention afin qu Android sache quelles intentions devraient aller vers quel composant. Pour ce faire, on ajoute des éléments intent filter au fichier AndroidManifest. Par ailleurs, il y a trois tests à réaliser : - Sur l'action : l'action de l'intent doit correspondre au moins à une des actions de l'intent filter (qui doit déclarer au moins une action). - Sur la catégorie : chaque catégorie de l'intent doit être présente dans l'intent filter. - Sur les données (data et type) : il y a plusieurs attributs : une url (data) et le type MIME. La figure suivante résume le mode de fonctionnement de l intent et l intent filter : Services : Le service Android est destiné aux processus de longue durée. Ces processus, en général, doivent pouvoir continuer à s exécuter même s ils sont séparés de toute activité. La création d un service se fait de deux manières : manuellement via un appel à l API ou avec la connexion d une activité via une communication IPC. L exécution du service perdure jusqu à ce qu il ne soit plus nécessaire ou que le système ait besoin de récupérer de la mémoire. L inconvénient est que cette longue exécution à un coût au niveau de la consommation de CPU. L implémentation d un service partage de nombreuses caractéristiques avec la construction d une activité. On hérite d une classe de base fournie par Android, on redéfinit certaines méthodes du cycle de vie et on accroche le service au système via le manifeste. Cycle de vie d un service : Comme les activités, le cycle de vie d un service nécessite l appel des méthodes de création de pause et de suppression : - oncreate() : est appelé quand le processus du service est crée. - onbind() : il renvoie un IBinder la composante fondamentale des communications interprocessus. - ondestroy() : est appelé lorsque le service est éteint. EL ABBADI Lhassan VIRY Renaud Page 13

14 Le fournisseur du contenu : Comme le résume la figure ci dessous, le rôle du fournisseur du contenu est de permettre aux services, aux activités et aux applications en général d accéder aux données qu elles soient en mémoires ou en base de données. Il permet aussi à deux applications d échanger les informations ou les partager avec d autres. Le fournisseur du contenu offre un niveau d abstraction pour toute donnée stockée et accessible aux différentes applications. Le modèle de développement Android encourage la mise à disposition de ses propres données aux autres programmes. Le fournisseur du contenu (content provider) permet d obtenir ce résultat. EL ABBADI Lhassan VIRY Renaud Page 14

15 Le récepteur de broadcast : Son rôle principal est de recevoir les messages qui circulent dans le système. Ces messages sont en général de nature inter composants mais ils peuvent provenir du système lui même (exemple : batterie faible). Il peut y avoir plusieurs broadcast receiver par application, et même s il n y a pas d interface entre ce composant et l utilisateur, il n empêche que le récepteur du contenu est capable d alerter par le biais du gestionnaire des notifications. Les applications Android fournit un certain nombre de fonctionnalités pour aider à développer des applications. Stockage : Il est possible d empaqueter (packager) des fichiers de données dans une application, pour y stocker ce qui ne changera jamais (les icônes ou les fichiers d aide par exemple). De même qu on peut également réserver un petit emplacement sur le terminal lui même, pour y stocker une base des données ou des fichiers contenant des informations nécessaires à l application et saisies par l utilisateur ou récupérées à partir d une autre source. Si l utilisateur fournit un espace de stockage comme une carte SD, celui ci peut également être lu et écrit en fonction des besoins. Réseau : Les terminaux Android sont généralement conçus pour être utilisés avec Internet, via un support de communication quelconque. On peut tirer parti de cet accès à Internet à n importe quel niveau, des sockets brutes de Java à un widget de navigateur web intégré que l on peut intégrer dans l application. Multimédia : Les terminaux Android permettent d enregistrer et de jouer de la musique et de la vidéo. Bien que les caractéristiques spécifiques varient en fonction des modèles, il est possible de connaître celles qui sont disponibles et tirer parti des fonctionnalités multimédias offertes, que ce soit pour écouter de la musique, prendre des photos ou enregistrer des mémos vocaux. EL ABBADI Lhassan VIRY Renaud Page 15

16 GPS : Les fournisseurs de positionnement, comme GPS, permettent d indiquer aux applications où se trouve le terminal. Il est alors possible d afficher des cartes ou d utiliser ces données géographiques pour retrouver la trace du terminal. Services téléphoniques : Evidemment, les terminaux Android sont généralement des téléphones, ce qui permet aux programmes de passer des appels, d envoyer et de recevoir des SMS et de réaliser tout ce qu un utilisateur attend d une technologie téléphonique moderne. EL ABBADI Lhassan VIRY Renaud Page 16

17 Cahier des charges [APPLICATION DOMOTIQUE SOUS ANDROID] 27 janvier 2010 Projet Homid Le cahier des charges fut comme on peut s y attendre le point de départ. Cependant bien que les principes fondamentaux ont été assez simple à définir, la définition stricte et détaillé de ce que notre application pourrait ou non faire a été bien moins évidente. Soyons plus clair, il parait évident qu une application de domotique doit permettre à son utilisateur de : - Contrôler la température de sa maison et allumer ou éteindre le chauffage/climatisation - Disposer d une vidéo surveillance à partir de caméras IP - Contrôler un ensemble de capteurs et actionneurs électroniques disponibless dans la maison - Simplifier la vie domestique L intérêt principal réside dans l interface utilisateur et pour pouvoir être la mieux adaptée possible il faut définir un «cahier des charges» plus spécifique. L idée qui est alors venue fut d élaborer un scénario de journée type de l utilisateur. Après quelques heures de concertation nous sommess parvenus à un emploi du temps d interaction maison/gpho one/utilisateur que nous donnons ci dessous : - 7h : réveil - 7h45 : affichage horaire des bus/tram + météo - 7h50 : ouvrir les volets de la maison + éteindre toutes les lumières - 11h : Livraison de colis > Interphone - 15h : Conjoint entree dans la maison > vidéosurveillancee - 18h25 : regarder courbe température - 18h30 : allumer chauffage - 22h : fermer les volets de la maison Il est évidemment possible de compléter ce scénario afin de rendre l application plus polyvalente, cependant nous sommes restéss sur cet emploi du temps déjà suffisamment riche (d un point de vue applications à développer). Détaillons un peu ce scénario, le premier événement (le réveil) ne rentre pas en compte dans notre application, il est simplement là pour donner un coté réel au scénario. Le deuxième événement nécessite une activité web assez simple donnant en quelques secondes les 2 informations nécessaires à l utilisateur avant de s habiller et de partir. L ouverture/fermeture des volets ainsi que le contrôle des lumières s incorpore dans une des grosses activités de l application proposant l ensemble du matériel électronique disponible dans la maison. Les 2 suivantes (appel vidéo lors de la livraison d un colis et déclenchement des vidéos de surveillances lors d une intrusion) seront 2 activités distinctes mais relativementt proches puisqu elles proposeront un streaming vidéo à partir des cameras IP de la maison. BOUZID Boubker EL ABBADI Lhassan MATTERA Antoine VIRY Renaud Page 17

18 Enfin la dernière activité majeure est celle présentant sous forme d un graphique la température actuelle (et sur les dernières 24h) avec la possibilité d allumer ou d éteindre le chauffage/climatisation. Notons également que pour donner un coté plus professionnel au projet et pour nous permettre de mieux nous approprier l application nous avons souhaité lui donner un nom. Nous souhaitions avoir un nom assez évocateur, celui retenu a été Homid. Architecture globale d Homid Avant d aller plus loin et puisque qu Homid vient en continuité d un projet déjà entamé, nous devons présenter son architecture globale. Autrement dit nous allons présenter ses moyens de communiquer avec l environnement extérieur (matériel et logiciel). On donne ci dessous le schéma bloc d Homid : Tout d abord présentons le coté matériel. Nous avons de part et d autre l ensemble des capteurs/actionneurs et le terminal Android (Gphone). Le but est bien évidemment de faire communiquer les 2 de manière dynamique. Le premier point logiciel à prendre en considération est la couche SIP (Session Initiation Protocol), ce protocole permet d établir des communications très simples par IP. Il existe un nombre assez important de protocoles différents dans le cadre domestique (Zigbee, x10 ). Dans le cadre de ce projet nous arrivons derrière le travail réalisé par Hong Yu Guan. L ensemble des protocoles domestiques a été converti en SIP de façon à ne gérer en aval (sur la plateforme Android) qu un seul protocole. Cette partie a déjà été réalisée et testée et nous n auront donc pas à nous en soucier. EL ABBADI Lhassan VIRY Renaud Page 18

19 Notre travail réside donc dans le développement des 3 blocs en haut à gauche du schéma. Le service, tournant en fond de tâche, a pour but de communiquer avec le SIP en recevant ses requêtes (par exemple enregistrer un nouveau log de température) et également en émettant des requêtes compréhensibles par SIP (par exemple obtenir l état de tel ou tel capteur). Les activités proposent ensuite à l utilisateur l ensemble des actions dont il dispose. Celles ci peuvent aussi bien être lancées par l utilisateur mais aussi par requête du service (comme par exemple lancer la vidéosurveillance en cas d intrusion). Enfin on retrouve l interface AIDL (Android Interface Description Language) qui a pour but de permettre aux deux blocs précédents (activité et service) de communiquer entre eux. L AIDL est identiques aux IDL en Java et consiste en un simple fichier listant les différentes méthodes proposées par le service et pouvant donc être appelées par n importe quelles activités. Dans la pratique on écrit le fichier myinterface.aidl (l ensemble des méthodes dont on souhaite disposer dans notre service). Le plugin android disponible sous l IDE Eclipse génère alors automatiquement un myinterface.java dans lequel une classe abstraite Stub est créée. Il ne nous reste alors plus qu à créer un fichier myservice.java dans lequel on créé un objet de la classe Stub dans lequel on implémente nos méthodes. Il s agit de la «colle» logicielle entre les 2 blocs et aussi avec la couche SIP. On a ainsi une chaîne de communication bidirectionnelle complète entre les 2 extrémités matérielles. L architecture étant maintenant définie et comprise nous pouvons passer à la partie conception. Conception d Homid Considérations Visuelles et d utilisations Cette première partie a pour but de définir l interface graphique d utilisation d Homid, notamment la façon dont ont été pensées les différentes activités. On donne ci dessous le schéma global d utilisation : EL ABBADI Lhassan VIRY Renaud Page 19

20 Notons tout d abord la fenêtre principale. Cette dernière n est lançable que par l utilisateur et propose à ce dernier (à partir d icones) les différentes activités disponibles. On retrouve dans la majorité des activités d Homid (en relation direct avec le matériel domotique) un volet déroulant dans lequel l utilisateur peut choisir la pièce concernée. Ces listes sont dynamiques, indépendantes d une application à l autre et modifiables par l utilisateur (possibilité d ajouter/supprimer une pièce, un capteur ou une caméra par exemple). Une première application permet d afficher la courbe de température des différentes pièces sur les dernière 24 heures à la cadence d une mesure toutes les 30 minutes. Un bouton on/off indique alors si le chauffage est activé ou non et permet d en modifier l état. La deuxième application majeure d Homid est celle permettant de contrôler l ensemble des capteurs et actionneurs électroniques de la maison. A partir d une seule activité l utilisateur peut voir pour chaque pièce le matériel électronique accessible (prises, lumières, chaine HIFI, télévision, volets, etc ) et peut directement en vérifier et en modifier l état. Une autre application intéressante est celle gérant la vidéosurveillance. Celle ci peut se lancer toute seule dans le cas d une intrusion. On dote de plus l activité d un bouton permettant l utilisateur d appeler la police. Une application proche est celle gérant l interphone qui se déclenche lorsque quelqu un sonne à la porte d entrée de la maison d utilisateur. En plus de la vidéo une conversation audio IP est lancée. Cette dernière n a pas été implantée par manque de temps (il faut pouvoir gérer la conversation sur IP). Enfin on note l application accès 100% web service, celle présentant les prévisions météo (dans une banderole en haut de fenêtre) ainsi qu une page web avec les horaires de métros/trams. Nous n avons pas réalisé cette application car il n y avait rien de particulièrement intéressant à faire et aucun challenge. C est donc à partir de ces considérations que nous avons entamé la phase de conception d Homid. Les interfaces graphiques suscitées seront illustrées dans la suite de ce rapport par des captures d écrans de l émulateur présentant donc l allure réelle des applications. EL ABBADI Lhassan VIRY Renaud Page 20

21 Détails techniques Dans cette partie, nous allons présenter les détails de la réalisation technique à proprement parler. Certaines parties intéressantes de la conception et du code seront donc détaillées ici. Tout d abord, les points techniques intéressant sont à répartir en trois catégories principales. La première concerne les aspects graphiques de présentation. La seconde regroupe des aspects de stockage et d échange de données. Enfin la dernière est axée autour du service, cœur névralgique de notre application. Les aspects graphiques Video Widget : Certaines configurations de l interface homme machine méritent une attention particulière. Tout d abord, Homid regroupe certaines activités nécessitant un playeur vidéo. Par exemple, l activité de vidéo surveillance citée plus haut, ou encore, une activité de visiophonie permettant de recevoir un appel vidéo lorsque quelqu un sonne à la porte du domicile de l utilisateur. Ces activités devaient permettre de jouer une vidéo. Pour cela, la plateforme Android met à disposition un outil spécifique permettant de joueur uniquement de la vidéo : le widget VideoView. Passons maintenant aux détails techniques concernant l activité de vidéosurveillance. Cette activité fait appel comme toutes les autres aux listes dynamiques à travers la base de données et avec le système de Spinner que nous verrons par la suite. Le point primordial de cette activité est la lecture de vidéo en streaming. Android dispose de 2 classes pour la lecture de fichiers multimédias locaux ou en streaming. Cependant pour de la lecture vidéo l un est tout particulièrement adapté, il s agit de la classe VideoView. L autre classe, MediaPlayer propose à peu de chose prés les même méthodes et ne nécessite pas plus de détails. L intérêt de la classe VideoView par rapport à MediaPlayer dans le cadre d un affichage vidéo est grandement favorisé en raison de la facilité d affichage. Les méthodes d affichages vidéo de VideoView nous facilitent la tâche et permettent un contrôle parfait du média vidéo. Au contraire, vouloir faire ça avec MediaPlayer et SurfaceView compliquerait énormément et inutilement l opération. Expliquons tout d abord comment lire une vidéo en local. Il faut tout d abord insérer une vidéo dans le dossier /res/raw/myvideo.mpg. Ceci étant notre vidéo peut alors être référencée dans notre activité par la ligne : "android.resource://com.homid.vid_surv/" + R.raw.myVideo Il faut alors définir l URI de la vidéo à notre objet VideoView, rafraichir l affichage et exécuter la lecture. Ci dessous le code source permettant une lecture vidéo en local : public class LectureVideo extends Activity public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); EL ABBADI Lhassan VIRY Renaud Page 21

22 VideoView videos= new VideoView(this); int a= R.raw.test; // String str= "android.resource://com.homid.vid_surv/"+ R.raw.myVideo; Uri uri=uri.parse(str); videos.setvideouri(uri); setcontentview(videos); videos.start(); Il est également possible d indiquer directement le chemin du fichier en utilisant la méthode setvideopath() qui prend en argument un String mais la méthode présenté est plus prudente et reste identique dans le cas d une lecture streaming. En effet pour une lecture de vidéo en streaming, par exemple un lien Youtube ici, on a tout simplement besoin de remplacer le String précédent par l adresse url du fichier 3gp! String str= " rtsp://v2.cache5.c.youtube.com/ckyleny73wiapqn4lota673zoxmydsanfeijbxytz29v Z2xlSARSBXdhdGNoWg5DbGlja1RodW1ibmFpbGCrmdbu4sXD-UoM/0/0/0/video.3gp"; Uri uri=uri.parse(str); videos.setvideouri(uri); setcontentview(videos); videos.start(); A titre informatif ce type de lien s obtient de la façon suivante : - Aller sur une adresse du type : - Modifier l adresse ainsi : - Click droit sur la vidéo > copier l adresse du lien Après de nombreux essaies la lecture streaming semble ne pas marcher, on récupère toujours au lancement de l application un message d erreur, l émulateur n arrive pas à lire le streaming. En fait l émulateur Android bloque les paquets UDP, de ce fait il est totalement impossible de tester la lecture streaming depuis l émulateur. Nous avons cependant eu l occasion de tester ce code sur un HTC Hero disponible au laboratoire Phoenix de l INRIA et il fonctionne sans problèmes. A noté que malgré la prise en charge de plusieurs formats vidéo d Android la lecture streaming puisse poser problème. En effet il semblerait que le streaming au format.mpg (celui des vidéos IP de l INRIA testé par Hong Yu Guan) ne fonctionne pas. Nous n avons pas pu tester plus de possibilités... Enfin on ajoute quelques mots sur le bouton d appel de la police. Nous avons utilisé pour cela un Intent de type ACTION_DIAL avec le numéro 112 prés tapé et qui nécessite une confirmation d appel. Nous lui avons préféré celui ci par rapport au ACTION_CALL (appel immédiat au numéro son confirmation) car ce dernier est propose à plusieurs types de protection et encore plus lorsqu il s agit de numéro d urgence (Android bloque les ACTION_CALL sur numéro d urgence pour éviter les appels intempestifs). On donne le code source assez simple de cette fonction : Button BoutonPolice = (Button) findviewbyid(r.id.call); EL ABBADI Lhassan VIRY Renaud Page 22

23 BoutonPolice.setOnClickListener(new Button.OnClickListener(){ public void onclick(view v) { Intent intent = new Intent(Intent.ACTION_DIAL); intent.setdata(uri.parse("tel://112")); startactivity(intent); ); Enfin voici une capture d écran de l application lors d une lecture vidéo (local) : Graphique : Une autre activité de Homid permet de représenter une courbe de température sur 24h. Cette activité permet par exemple à l utilisateur de savoir si une certaine pièce de sa maison s est beaucoup refroidie dans la journée ou non. La plateforme Android ne permet pas de dessiner directement des graphiques comme on pourrait s y attendre. Cependant, le framework met à disposition du concepteur un certains nombres d outils permettant de réaliser des graphes sur mesures. L outil principal est l objet Canvas. Cet objet agit en effet comme une interface sur laquelle le développeur peut définir l aspect graphique désiré. De nombreuses méthodes draw sont alors disponibles pour «dessiner» le graphique. Dans notre cas, le dessin à réaliser était un simple graphe. Il fallait pour cela dessiner les axes, puis les différents points et enfin, les relier. Deux méthodes de l objet Canvas nous ont donc été essentielles : drawpoints() et drawlines(). public void buildpoints(){ origine_x = 30; origine_y = 200; x_x = 270; x_y = origine_y; y_x = origine_x; y_y = 20; EL ABBADI Lhassan VIRY Renaud Page 23

24 yf1_x = y_x - 5; yf1_y = y_y + 5; yf2_x = y_x + 5; yf2_y = y_y + 5; xf1_x = x_x - 5; xf1_y = x_y - 5; xf2_x = x_x - 5; xf2_y = x_y + 5; interval_x = (x_x-origine_x)/48; interval_y = (origine_y-y_y-2*5)/(60*2); echelley1_x = origine_x-5; echelley1_y = origine_y-interval_y*20; echelley2_x = origine_x-5; echelley2_y = origine_y-interval_y*80; echellex_x = origine_x+interval_x; echellex_y = origine_y+5; mpts = new protected void ondraw(canvas canvas) { Paint paint = mpaint; paint.setcolor(color.white); paint.setstrokewidth(0); canvas.drawline(origine_x, origine_y, x_x, x_y, paint); canvas.drawline(origine_x, origine_y, y_x, y_y, paint); canvas.drawline(y_x, y_y, yf1_x, yf1_y, paint); canvas.drawline(y_x, y_y, yf2_x, yf2_y, paint); canvas.drawline(x_x, x_y, xf1_x, xf1_y, paint); canvas.drawline(x_x, x_y, xf2_x, xf2_y, paint); canvas.drawline(echelley1_x, echelley1_y, echelley1_x+10, echelley1_y, paint); canvas.drawline(echelley2_x, echelley2_y, echelley2_x+10, echelley2_y, paint); canvas.drawline(echellex_x, echellex_y, echellex_x, echellex_y- 10, paint); canvas.drawtext("10", echelley1_x-10, echelley1_y-5, paint); canvas.drawtext("40", echelley2_x-10, echelley2_y-5, paint); canvas.drawtext("30'", echellex_x-5, echellex_y+10, paint); canvas.drawtext("date", origine_x+(x_x-origine_x)/2, origine_y+20, paint); canvas.drawtext("t( C)", origine_x-30, origine_yinterval_y*110, paint); paint.setcolor(color.red); paint.setstrokewidth(3); canvas.drawpoints(mpts, paint); for(int i=0; i<(mpts.length-1)/2; i++){ EL ABBADI Lhassan VIRY Renaud Page 24

25 canvas.drawline(mpts[i*2], mpts[i*2+1], mpts[i*2+2], mpts[i*2+3], paint); La méthode buildpoints() est une méthode créée par nos soins permettant de positionner tous les points utiles à la réalisation du graphe : origine, extrémités des axes, légende, La méthode ondraw(canvas) est, comme l indique le mot une méthode surchargée. C est cette méthode qui permet de «dessiner» le layout ainsi créé par notre classe implémentant la classe générique View. C est dans la méthode ondraw(canvas) que l on peut observer les méthodes drawpoints() et drawlines(). Ces méthodes permettent donc respéctivement de placer un point avec ses coordonnées en pixels et de tracer une ligne allant d un point origine à un point destination. Dans le cas d un graphique comme le notre il est nécessaire d avoir un assez haut niveau d automatisation. C est pourquoi la plupart des points sont définis par rapport à un point d orrigine. Cela permet de repositionner le graphe en changeant seulement le point origine. Par ailleurs, notre objectif était de tracer une courbe avec une mesure toutes les 30 minutes, sachant que les valeurs des mesures sont comprises entre 10 et 40 Celsius. Nous avons donc défini un intervalle sur l axe des abscisses et un intervalle sur l axe des ordonnées. Ainsi, un point peut être placé aisément et de manière très précise en fonction des intervalles sur les deux axes. Enfin, la boucle for présente à la fin de la méthode ondraw(canvas) permet simplement de relier les points de la courbe 2 à 2 afin d obtenir une courbe lissée. Le résultat final est donné sur la figure ci contre. EL ABBADI Lhassan VIRY Renaud Page 25

26 Listes : La gestion des listes est aussi un point à souligner dans la réalisation de l IHM de Homid. Deux choses sont à noter ici. Premièrement, il nous fallait pouvoir sélectionner une pièce dans une liste. En dehors de l aspect de gestion des données que représente cette liste, nous parlons ici simplement de l aspect interface. L objet Spinner permet de réaliser l équivalent d une liste déroulante. C est un spinner que l on voit sur la figure précédente en haut de la page. Dans chacune des activités, nous avons donc un spinner qui permet de sélectionner la pièce voulue. Lorsque l utilisateur clique sur la flèche du spinner, un menu s ouvre alors et permet de choisir l objet désiré, comme le montre la figure ci contre. Pour gérer le spinner, il est nécessaire de mettre en place un adaptateur. Dans notre cas, il s agit d un ArrayAdapter. Cet objet permet d adapter une liste, de String par exemple, à un objet View de type Spinner. Puis, on ajoute un écouteur d évènement sur la sélection d un élément de la liste afin que les données soient mises à jour lors d un changement de pièce. Cette technique est utilisée dans toutes les activités qui utilisent un Spinner. Un autre des aspects de gestion des listes est la mise en place de listes personnalisées. Alors que le Spinner permet de mettre en place une liste de sélection, nous souhaitions pouvoir afficher des listes de textes accompagnés de boutons, comme il est possible d en voir un exemplaire sous le Spinner sur la figure suivante : Là encore, le framework Android propose des objets permettant de réaliser ce genre de liste, notamment l objet ListView qui est en fait un widget affichant une liste d objet (dans notre cas, des Strings). Afin de remplir ce widget, comme pour le Spinner, il est nécessaire de passer par un adaptateur, tel que l ArrayAdapter de tout à l heure. EL ABBADI Lhassan VIRY Renaud Page 26

27 La difficulté ici réside dans le fait que la liste est dynamique. En effet, pour une liste de Strings, il est très simple d utiliser un ListView et un ArrayAdapter sur un tableau de String. Cependant, lorsque la liste est composée de plusieurs éléments et que cette liste est, de plus, dynamique (toutes les lignes sont différentes), les choses se compliquent nettement. En effet, dés lors que la liste doit être dynamique, il est nécessaire de définir une classe qui hérite de l adaptateur souhaité et qui redéfinit chaque ligne dynamiquement selon sa position dans la liste. Le code suivant montre comment cette classe est définit et comment les méthodes utiles sont surchargées. // Pour faire une ListView personnalisé, // il faut redéfinir notre propre Adapter en héritant de l'adapter souhaité // (ici class IconicAdapter extends ArrayAdapter { Activity context; IconicAdapter(Activity context) { super(context, R.layout.row, items); this.context=context; // La méthode getview(int, View, ViewGroup) permet de redéfinir les lignes // de la ListView comme on le souhaite // on lui passe en paramètre une position pour connaître a quel niveau on // se trouve dans l'adapter // on peut ainsi faire des traitements différents selon la ligne où l'on se // trouve public View getview(int position, View convertview, ViewGroup parent) { View row = convertview; final Editor editor = mypref.edit(); // Afin de ne pas redéfinir les lignes qui ont été effacées lors du // défilement, on peut utiliser le convertview qui rappelle les lignes // précédemment créées // Dans le cas où la ligne n'existe pas encore, row vaut null et il faut // alors la recréer if(row == null){ LayoutInflater inflater=context.getlayoutinflater(); row = inflater.inflate(r.layout.row, null); // On récupère ici nos différents TextView afin de les remplir final TextView label1 = (TextView)row.findViewById(R.id.prise); label1.settext(items[position]); final ToggleButton toggle = (ToggleButton)row.findViewById(R.id.toggle); // La méthode setchecked(boolean) du ToggleButton permet de définir l'état // du bouton // true = on et false = off majpreferences((string) myspin.getitematposition(spinpos), items[position]); toggle.setchecked(mypref.getboolean(((string)(myspin.getitematpositio n(spinpos)))+(label1.gettext()), false)); EL ABBADI Lhassan VIRY Renaud Page 27

28 // On peut ajouter un écouteur d'évènements et de click en particulier sur // le ToggleButton, comme sur toutes les autres View! toggle.setonclicklistener(new OnClickListener(){ // La méthode ischecked() du ToggleButton permet de connaître l'état du // bouton // De la même manière que setchecked(boolean), // true = on et false = public void onclick(view arg0) { if(toggle.ischecked()){ editor.putboolean((string)((myspin.getitematposition(spinpos)).tostring())+ (label1.gettext()), true); // Ici le code correspondant a l'allumage de l'actionneur else if(!(toggle.ischecked())){ editor.putboolean((string)((myspin.getitematposition(spinpos)).tostri ng())+(label1.gettext()), false); // Ici le code correspondant a l'extinction de l'actionneur editor.commit(); ); return(row); Comme on peut le voir en tout début de ce code, la liste fait appel à un élément de layout appelé row (R.layout.row). C est dans ce layout qu est décrit, en XML, le positionnement des objets sur une ligne : <?xml version="1.0" encoding="utf-8"?> <AbsoluteLayout xmlns:android=" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:id="@+id/prise" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_x="10px" android:text="vide" android:textsize="20px" /> <ToggleButton android:id="@+id/toggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:texton="on" android:textoff="off" android:layout_x="250px" /> </AbsoluteLayout> Cette liste nous permet donc d avoir un champ de texte accompagné d un bouton de type Toggle (bouton à 2 états, On et Off). Elle est donc tout à fait adaptée à une activité gérant des actionneurs à allumer ou à éteindre. EL ABBADI Lhassan VIRY Renaud Page 28

29 Les aspects gestion de données Les préférences : Le premier système de gestion des données que nous avons utilisé est un système simple qui permet de conserver des données locales à une activité sous la forme de paire clé/valeur. Ce système de stockage des données est très pratique car il est léger et facile d emploi. En effet, il suffit de récupérer les préférences par la méthode getpreferences() ou getsharedpreferences() de l objet Context de l activité. La différence entre ces deux méthodes est assez ténue mais réside principalement dans le partage de ces ressources entre activités. Une fois ces préférences récupérés, on peut alors récupéré la valeur correspondant à une clé par la méthode getboolean() par exemple. De manière générale, tous les types primitifs sont autorisés (Boolean, int, float, String, ), donc toutes les méthodes get+type primitif() existent pour un objet SharedPreferences (objet renvoyé par les méthodes getpreferences() et getsharedpreferences()). public class TestControle extends ListActivity implements AdapterView.OnItemSelectedListener { private SharedPreferences mypref; /** Called when the activity is first created. public void oncreate(bundle icicle) { super.oncreate(icicle); mypref = getpreferences(context.mode_private); public void majpreferences(string piece, String actionneur){ Editor editor = mypref.edit(); Editor.putBoolean( ); editor.commit(); Par ailleurs, pour mettre à jour ces préférences, il est possible de créer un objet Editor grâce à la méthode edit() de l objet SharedPreferences préalablement récupéré. Cet objet Editor accepte alors à son tour toutes les méthodes du type put+type primitif(). Une fois les valeurs mises à jour, un appel à la méthode commit() de l Editor enregistre les changements de préférences. Les préférences sont donc un système simple et efficace qui permet de faire une passerelle entre la base de données et les interfaces graphiques des activités. Nous nous en sommes servis par exemple pour enregistré et retrouvé localement l état des boutons de type Toggle présents dans la liste des actionneurs. Même si cette passerelle n est pas réellement nécessaire, elle permet une souplesse des mises à jour et une automatisation du processus d échange avec la base de données qui est très appréciable dans le développement du code. Base de données : Le plus grosse partie du système de gestion des données dans notre application est une base de données SQLite. Android met en effet à disposition un ensemble d outils SQLite pour gérer des bases de données de type SQL. Il est important de noter que sur la plateforme Android, aucune base de données n existe par défaut. Si le développeur souhaite en mettre une en place, il doit la créer au travers de son application. Elle sera d ailleurs stocké dans un espace mémoire propre à l application, EL ABBADI Lhassan VIRY Renaud Page 29

30 un espace du type data/data/nom_du_package/databases (data/data/com.homid/databases dans notre cas), qui montre bien que l espace mémoire est propre au package et donc à l application. Pour créer la base de données, il faut créer une classe qui hérite de SQLiteOpenHelper. SQLiteOpenHelper est un objet qui regroupe toutes les méthodes permettant de mettre en place une base de données. C est donc l objet de base qu il faut implémenter pour créer sa propre BDD. Il permet de créer la base, les tables, de les mettre à jour, C est en instanciant cet objet que l on aura accès à notre BDD. Dans notre cas, l implémentation du SQLiteOpenHelper s appelle DBHelper : public class DBHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "version1.db"; private static final int DATABASE_VERSION = 1; (" (" private static final String CREATE_TABLE_1 = "CREATE TABLE pieces (" + "_ID INTEGER PRIMARY KEY," + "piece TEXT" + ");"; private static final String CREATE_TABLE_2 = "CREATE TABLE actionneurs + "_ID INTEGER PRIMARY KEY," + "piece TEXT," + "actionneur TEXT," + "etat TEXT" + ");"; private static final String CREATE_TABLE_3 = "CREATE TABLE temperatures + "_ID INTEGER," + "piece TEXT," + "temperature REAL" + ");"; private static final String DROP_SQL_1 = "DROP TABLE IF EXISTS pieces;"; private static final String DROP_SQL_2 = "DROP TABLE IF EXISTS actionneurs;"; private static final String DROP_SQL_3 = "DROP TABLE IF EXISTS temperatures;"; public DBHelper(Context context) { super(context, DATABASE_NAME, null, public void oncreate(sqlitedatabase db) { db.execsql(create_table_1); db.execsql(create_table_2); public void onupgrade(sqlitedatabase db, int oldversion, int newversion) { db.execsql(drop_sql_1); db.execsql(drop_sql_2); db.execsql(drop_sql_3); oncreate(db); EL ABBADI Lhassan VIRY Renaud Page 30

Outils, langage et approche Android Une introduction. Nicolas Stouls nicolas.stouls@insa lyon.fr

Outils, langage et approche Android Une introduction. Nicolas Stouls nicolas.stouls@insa lyon.fr Outils, langage et approche Android Une introduction Nicolas Stouls nicolas.stouls@insa lyon.fr Webographie La bible contenant «tout» : http://developer.android.com/index.html Les supports cette intervention

Plus en détail

Programmation des applications mobiles avec Android. 1 Inspiré du cours de Olivier Le Goaer

Programmation des applications mobiles avec Android. 1 Inspiré du cours de Olivier Le Goaer Programmation des applications mobiles avec Android 1 Inspiré du cours de Olivier Le Goaer 2 OS mobile : outils de développement D après le cours de Olivier Le Goaer 3 Plateforme de développement MobileApp

Plus en détail

Android 4 Les fondamentaux du développement d'applications Java

Android 4 Les fondamentaux du développement d'applications Java La plateforme Android 1. Présentation 13 2. Historique 14 3. Google Play 15 3.1 Création d'un compte développeur 16 3.2 Publication d'une application 16 3.3 Suivi et mise à jour d'une application 18 Environnement

Plus en détail

TD/TP 1 Introduction au SDK d Android

TD/TP 1 Introduction au SDK d Android TD/TP 1 Introduction au SDK d Android Romain Raveaux 1 Introduction Android est un système d'exploitation pour téléphone portable de nouvelle génération développé par Google. Celui-ci met à disposition

Plus en détail

TP2 : Client d une BDD SqlServer

TP2 : Client d une BDD SqlServer TP2 : Client d une BDD SqlServer Objectifs : utiliser la barre de menu, utiliser les préférences d application (settings) ou (options), gérer la persistance des données, utiliser la bibliothèque jtds:jdbc

Plus en détail

Warren PAULUS. Android SDK et Android x86

Warren PAULUS. Android SDK et Android x86 Android SDK et Android x86 2010/2011 Voici un petit tutoriel pour installer Android de façon à ce qu il soit compatible avec NetBeans et Eclipse, ainsi que l utilisation d Android x86. Ce tutoriel a été

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Projet Android (LI260) Cours 2

Projet Android (LI260) Cours 2 Projet Android (LI260) Cours 2 Nicolas Baskiotis Université Pierre et Marie Curie (UPMC) Laboratoire d Informatique de Paris 6 (LIP6) S2-2013/2014 Plan Les ressources Debug Communication entre activités

Plus en détail

Education Delivery Intelligent Tool

Education Delivery Intelligent Tool Education Delivery Intelligent Tool Projet AMO2 Maxence RAOUX Joachim SEGALA RICM 4 Avril 2012 Sommaire I. Presentation du projet... 2 1. Contexte... 2 2. Demande... 2 3. Spécifications... 2 II. Guide

Plus en détail

Tutorial pour une application simple

Tutorial pour une application simple ANDROID & ECLIPSE Tutorial pour une application simple 1. Introduction Android est un système d'exploitation pour téléphone portable de nouvelle génération développé par Google. Celui-ci met à disposition

Plus en détail

Installation et prise en main

Installation et prise en main TP1 Installation et prise en main Android est le système d'exploitation pour smartphones, tablettes et autres appareils développé par Google. Pour permettre aux utilisateurs d'installer des applications

Plus en détail

TP SIN Programmation sur androïde Support : eclipse

TP SIN Programmation sur androïde Support : eclipse TP SIN Programmation sur androïde Support : eclipse Support : Smartphone sur androïde Pré requis (l élève doit savoir): Savoir utiliser un ordinateur Savoir utiliser un Smartphone Programme Objectif terminale

Plus en détail

TP au menu «UI ANDROID»

TP au menu «UI ANDROID» TP au menu «UI ANDROID» Pré-requis & Installation ( du couvert) soit installer en natif sur vos postes (!!! ATTENTION!!! FromScratch 1,1 Go à télécharger ) JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html

Plus en détail

1.3 Gestion d'une application

1.3 Gestion d'une application 1.3 Gestion d'une application 1. Un premier projet... Il est temps maintenant d'écrire la véritable première application Android avec l'inévitable affichage du mot bonjour, ce qui évidemment pour un développement

Plus en détail

Les fondamentaux du développement d applications Java

Les fondamentaux du développement d applications Java Android 5 Les fondamentaux du développement d applications Java Nazim BENBOURAHLA Table des matières 1 Les éléments à télécharger sont disponibles à l'adresse suivante : http://www.editions-eni.fr Saisissez

Plus en détail

Optimiser pour les appareils mobiles

Optimiser pour les appareils mobiles chapitre 6 Optimiser pour les appareils mobiles 6.1 Créer un site adapté aux terminaux mobiles avec jquery Mobile... 217 6.2 Transformer son site mobile en application native grâce à PhoneGap:Build...

Plus en détail

Les tablettes. Présentation tablettes Descriptif Fournisseurs Caractéristiques Comparatifs Conseils Perspectives Démonstration

Les tablettes. Présentation tablettes Descriptif Fournisseurs Caractéristiques Comparatifs Conseils Perspectives Démonstration Les Tablettes Les tablettes Présentation tablettes Descriptif Fournisseurs Caractéristiques Comparatifs Conseils Perspectives Démonstration Les tablettes Description: Appareil mobile positionné entre smartphone

Plus en détail

MANUEL UTILISATEUR. Application 4trip

MANUEL UTILISATEUR. Application 4trip * MANUEL UTILISATEUR Application 4trip Table des matières 1. Introduction... 1 1.1. Description globale du produit... 1 1.2. Description de la finalité du manuel... 1 2. Manuel d utilisation... 2 2.1.

Plus en détail

Android. Présentation d Android. Florent Garin http://www.docdoku.com http://twitter.com/docdoku

Android. Présentation d Android. Florent Garin http://www.docdoku.com http://twitter.com/docdoku Android Présentation d Android 20 novembre 2010 Florent Garin http://www.docdoku.com http://twitter.com/docdoku Florent Garin Co-fondateur de DocDoku Société innovante IT http://www.docdoku.com Co-fondateur

Plus en détail

Saisissez le login et le mot de passe (attention aux minuscules et majuscules) qui vous ont

Saisissez le login et le mot de passe (attention aux minuscules et majuscules) qui vous ont I Open Boutique Sommaire : I Open Boutique... 1 Onglet «Saisie des Produits»... 3 Création d'une nouvelle fiche boutique :... 3 Création d'une nouvelle fiche lieux de retraits :... 10 Création d'une nouvelle

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Table des matières. Partie I Concepts de base... 1. Préface... VII

Table des matières. Partie I Concepts de base... 1. Préface... VII Table des matières Préface... VII Partie I Concepts de base... 1 1. Tour d horizon... 3 Avantages et inconvénients de la programmation des smartphones... 3 Contenu d un programme Android... 4 Fonctionnalités

Plus en détail

Ma première visibilité sur le Web. en 60 min avec des outils gratuits

Ma première visibilité sur le Web. en 60 min avec des outils gratuits Ateliers Commerce Internet Ma première visibilité sur le Web en 60 min avec des outils gratuits 23/04/2015 1 Ma première visibilité sur Internet Même sans site internet! Pourquoi être présent sur Internet?

Plus en détail

www.elektor.fr/android SOMMAIRE

www.elektor.fr/android SOMMAIRE www.elektor.fr/android Android Apprendre à programmer des applis Environnement de développement Eclipse Programmation orientée objet en JAVA Auteur : Stephan Schwark Éditeur : Elektor ISBN : 978-2-86661-187-3

Plus en détail

Ma maison Application téléphone mobile

Ma maison Application téléphone mobile Ma maison Application téléphone mobile Pour les transmetteurs et centrales transmetteurs GSM DELTA DORE Notice d installation et d utilisation Sommaire 1 - Présentation...............................................................

Plus en détail

WINDEV MOBILE. ios SMARTPHONE SUPPORT: IOS, ANDROID, WINDOWS PHONE 8.

WINDEV MOBILE. ios SMARTPHONE SUPPORT: IOS, ANDROID, WINDOWS PHONE 8. WINDEV MOBILE ios SMARTPHONE SUPPORT: IOS, ANDROID, WINDOWS PHONE 8. WINDOWS Mobile permet de créer des applications pour les smartphones, les tablettes et les terminaux mobiles. Les applications sont

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Point sur les solutions de développement d apps pour les périphériques mobiles

Point sur les solutions de développement d apps pour les périphériques mobiles Point sur les solutions de développement d apps pour les périphériques mobiles Par Hugues MEUNIER 1. INTRODUCTION a. Une notion importante : le responsive web design Nous sommes en train de vivre une nouvelle

Plus en détail

Béatrice Bertrand CDDP de l Eure. Béatrice Bertrand CDDP de l'eure

Béatrice Bertrand CDDP de l Eure. Béatrice Bertrand CDDP de l'eure CDDP de l Eure Android (prononcé androïde) est un système d'exploitation fondé sur un noyau Linux, en open source, pour Smartphones, PDA (Personal Digital Assistant) et terminaux mobiles. Il comporte une

Plus en détail

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN fbertin@neotilus.com

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN fbertin@neotilus.com Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184 Frédéric BERTIN fbertin@neotilus.com Présentaion : Mobile 3D Graphics API JSR 184 M3G :présentation Package optionnel de l api J2ME. Prend

Plus en détail

CTIconnect PRO. Guide Rapide

CTIconnect PRO. Guide Rapide CTIconnect PRO Guide Rapide Version 01.02.2013 CTIconnect PRO est une application de communication permettant aux utilisateurs du système de voir le statut de leurs collègues et de les contacter en 1 clic

Plus en détail

BIRT (Business Intelligence and Reporting Tools)

BIRT (Business Intelligence and Reporting Tools) BIRT (Business Intelligence and Reporting Tools) Introduction Cette publication a pour objectif de présenter l outil de reporting BIRT, dans le cadre de l unité de valeur «Data Warehouse et Outils Décisionnels»

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

Java 7 Les fondamentaux du langage Java

Java 7 Les fondamentaux du langage Java 184 Java 7 Les fondamentaux du langage Java 1.1 Les bibliothèques graphiques Le langage Java propose deux bibliothèques dédiées à la conception d'interfaces graphiques. La bibliothèque AWT et la bibliothèque

Plus en détail

Organiser le disque dur Dossiers Fichiers

Organiser le disque dur Dossiers Fichiers Ce document contient des éléments empruntés aux pages d aide de Microsoft Organiser le disque dur Dossiers Fichiers Généralités La connaissance de la logique d organisation des données sur le disque dur

Plus en détail

Documentation Liste des changements apportés

Documentation Liste des changements apportés Version 4.1.000 Documentation Liste des changements apportés C2 Innovations 2010 Table des matières À LA VERSION 4.1... 4 NOUVEAU PRE REQUIS POUR L INSTALLATION DE C2... 4 FERMER LA SESSION D UN UTILISATEUR

Plus en détail

Utilisation du visualiseur Avermedia

Utilisation du visualiseur Avermedia Collèges Numériques Utilisation du visualiseur Avermedia Un visualiseur est aussi appelé caméra de table et ce nom rend mieux compte de sa fonction première à savoir filmer un document (revue,carte, dissection,

Plus en détail

Système de vidéosurveillance Guide de configuration

Système de vidéosurveillance Guide de configuration Guide de configuration Introduction Les technologies de vidéosurveillance ne sont plus considérées comme «nouvelles» de nos jours, puisque l on enregistre et archive des vidéos depuis maintenant de nombreuses

Plus en détail

Configuration du driver SIP dans ALERT. V2

Configuration du driver SIP dans ALERT. V2 Micromedia International Etude technique Configuration d Alert pour SIP Auteur : Pierre Chevrier Société : Micromedia International Date : 26/08/2013 Nombre de pages : 19 Configuration du driver SIP dans

Plus en détail

Guide d utilisation. Version 1.1

Guide d utilisation. Version 1.1 Guide d utilisation Version 1.1 Guide d utilisation Version 1.1 OBJECTIF LUNE Inc. 2030 boulevard Pie-IX, bureau 500 Montréal (QC) Canada H1V 2C8 +1 514-875-5863 sales@ca.objectiflune.com http://captureonthego.objectiflune.com

Plus en détail

Créer des applications Android

Créer des applications Android Créer des applications Android Auteurs : Philippe Lacomme, Raksmey Phan Les outils nécessaires sont : - Android SDK - Eclipse - Le plugin ADT de Eclipse Plan (ceci n est pas un cours) Outils: Préparation

Plus en détail

SYSTEME D ALARME CONNECTE. Guide d installation et d utilisation

SYSTEME D ALARME CONNECTE. Guide d installation et d utilisation SYSTEME D ALARME CONNECTE Guide d installation et d utilisation Bienvenue sommaire Vous venez de faire l acquisition de Home by SFR, système assurant la sécurité de votre domicile. Afin que la prise en

Plus en détail

Eclipse atelier Java

Eclipse atelier Java Eclipse atelier Java Table des matières 1. Introduction...2 2. Télécharger eclipse...3 3. Installer eclipse...3 4. Premier lancement d eclipse...3 5. Configurer eclipse pour faire du Java...5 6. Développer

Plus en détail

Lenovo TAB A7-40/ Lenovo TAB A7-50

Lenovo TAB A7-40/ Lenovo TAB A7-50 Lenovo TAB A7-40/ Lenovo TAB A7-50 Guide de l utilisateur v. 1.0 Lisez attentivement les consignes de sécurité et les remarques importantes figurant dans le manuel fourni avant d utiliser votre tablette.

Plus en détail

GUIDE D UTILISATION DE L AGENDA

GUIDE D UTILISATION DE L AGENDA Bienvenue sur votre service de messagerie et d agenda Sommaire Authentification...... 2 Mot de passe oublié... 2 Vos messages... 2 Agenda 3 Ecrire un message 8 Instructions... 8 Vos contacts 8 Réglage

Plus en détail

l'ordinateur les bases

l'ordinateur les bases l'ordinateur les bases Démarrage de l'ordinateur - Le bureau, mon espace de travail - J'utilise la souris - Ouvertes ou fermées, les fenêtres - Dans l'ordinateur, tout est fichier - Le clavier : écrire,

Plus en détail

Développement d applications professionnelles avec Android 2

Développement d applications professionnelles avec Android 2 Développement d applications professionnelles avec Android 2 Reto Meier Traduit par Dalil Djidel, avec la contribution technique d Arnaud Farine Pearson Education France a apporté le plus grand soin à

Plus en détail

Chapitre 1 Retour en arrière

Chapitre 1 Retour en arrière Chapitre 1 : Retour en arrière 1 Chapitre 1 Retour en arrière Chapitre 1 : Retour en arrière 2 1. Difficultés de développer pour les systèmes embarqués Quelques contraintes à prendre en compte : - Mémoire:

Plus en détail

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation

Plus en détail

Ceci est un Chromebook, ton ordinateur!

Ceci est un Chromebook, ton ordinateur! Ceci est un Chromebook, ton ordinateur! CHROMEBOOK - Dans le royaume des ordinateurs personnels, il n'y a pas beaucoup de choix. Pour schématiser, soit vous avez un PC, soit vous avez un Mac. Et ce depuis

Plus en détail

Programmation Mobile Android Master CCI

Programmation Mobile Android Master CCI Programmation Mobile Android Master CCI Bertrand Estellon Aix-Marseille Université March 23, 2015 Bertrand Estellon (AMU) Android Master CCI March 23, 2015 1 / 266 Organisation de l UE Objectifs du cours

Plus en détail

HYPERDRIVE iusbport Guide d utilisation

HYPERDRIVE iusbport Guide d utilisation HYPERDRIVE iusbport Guide d utilisation L iusbport met le système de Cloud à portée de tous! Ce mini adaptateur permet de partager en wifi le contenu audio, vidéo, photo et documents de n importe quel

Plus en détail

L alternative, c est malin 1. Comment faire plein de choses pour pas cher sur MacIntosh

L alternative, c est malin 1. Comment faire plein de choses pour pas cher sur MacIntosh L alternative, c est malin 1 ou Comment faire plein de choses pour pas cher sur MacIntosh (Les logiciels : Pages et Keynote de la suite iwork) (Jean Aboudarham 2006) 1 Merci à François Béranger pour qui

Plus en détail

Créer un compte itunes Store

Créer un compte itunes Store P r o f i t e r d I n t e r n e t A t e l i e r 0 9 Créer un compte itunes Store en 4 étapes L ipad est un ordinateur aux nombreuses capacités dès la sortie du carton mais ses capacités ne sont rien face

Plus en détail

Installation et utilisation du client FirstClass 11

Installation et utilisation du client FirstClass 11 Installation et utilisation du client FirstClass 11 Support par téléphone au 03-80-77-26-46 ou par messagerie sur la conférence «Support Melagri» Sommaire Page I) Installation du client FirstClass 2 II)

Plus en détail

COMMENCER AVEC VUE. Chapitre 1

COMMENCER AVEC VUE. Chapitre 1 Chapitre 1 COMMENCER AVEC VUE Traduction en français du premier chapitre du manuel d'utilisation du logiciel VUE. Traduit de l'américain par Bernard Aubanel. CRÉER UNE NOUVELLE CARTE Pour ouvrir VUE: 1.

Plus en détail

Freeway 7. Nouvelles fonctionnalités

Freeway 7. Nouvelles fonctionnalités ! Freeway 7 Nouvelles fonctionnalités À propos de ce guide... 3 Nouvelles fonctionnalités en un coup d'oeil... 3 À propos de la conception d'un site web réactif... 3 Travailler avec les pages pour créer

Plus en détail

LA SOLUTION D ALARME, DE VIDÉOPROTECTION ET DE DOMOTIQUE INTELLIGENTE ET SANS FIL. Simple à installer, simple à utiliser, haute protection.

LA SOLUTION D ALARME, DE VIDÉOPROTECTION ET DE DOMOTIQUE INTELLIGENTE ET SANS FIL. Simple à installer, simple à utiliser, haute protection. LA SOLUTION D ALARME, DE VIDÉOPROTECTION ET DE DOMOTIQUE INTELLIGENTE ET SANS FIL Simple à installer, simple à utiliser, haute protection. Sommaire LA SOLUTION EVOLOGY EN UN COUP D OEIL L INNOVATION AU

Plus en détail

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A. ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A. - 1 - PREAMBULE Les conditions générales d utilisation détaillant l ensemble des dispositions applicables

Plus en détail

Manipulation 4 : Application de «Change».

Manipulation 4 : Application de «Change». Manipulation 4 : Application de «Change». Première partie : Cette manipulation a pour but d utiliser un service Web afin d obtenir les taux de change appliqués entre les différentes monnaies référencées

Plus en détail

Foire aux questions sur Christie Brio

Foire aux questions sur Christie Brio Foire aux questions sur Christie Brio Qu est-ce que Christie Brio? Christie Brio est une solution de collaboration et de présentation compatible réseau qui permet à plusieurs utilisateurs de partager,

Plus en détail

Encore plus de widgets et de conteneurs

Encore plus de widgets et de conteneurs 14 Encore plus de widgets et de conteneurs Nous avons déjà présenté un certain nombre de widgets et de conteneurs, et ce chapitre sera le dernier qui leur sera exclusivement consacré : il présente plusieurs

Plus en détail

Gestion des différentes tailles d écran

Gestion des différentes tailles d écran 25 Gestion des différentes tailles d écran Les écrans des terminaux Android, qui sont apparus sur le marché l année qui a suivi l apparition d Android 1.0, avaient tous la même résolution (HVGA, 320 480

Plus en détail

LES TABLETTES : GÉNÉRALITÉS

LES TABLETTES : GÉNÉRALITÉS LES TABLETTES : GÉNÉRALITÉS Fonctionnement Qu est-ce qu une tablette tactile? Une tablette tactile est un appareil doté d'un écran qui permet d'interagir simplement en touchant l'écran ou à l'aide d'un

Plus en détail

Tutoriel BLOGGER. Pour vous donner une idée, voici un exemple de blog : http://formationlaragne.blogspot.fr/

Tutoriel BLOGGER. Pour vous donner une idée, voici un exemple de blog : http://formationlaragne.blogspot.fr/ Tutoriel BLOGGER Blogger est un outil Google gratuit de publication de blogs qui permet de partager du texte, des photos et des vidéos. C est un outil simple, bénéficiant du référencement de Google, ce

Plus en détail

Mes documents Sauvegardés

Mes documents Sauvegardés Mes documents Sauvegardés Guide d installation et Manuel d utilisation du logiciel Edition 13.12 Photos et illustrations : Copyright 2013 NordNet S.A. Tous droits réservés. Toutes les marques commerciales

Plus en détail

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/

Plus en détail

Thunderbird est facilement téléchargeable depuis le site officiel

Thunderbird est facilement téléchargeable depuis le site officiel 0BThunderbird : une messagerie de bureau simple et gratuite! Thunderbird est un logiciel de messagerie résident dans votre système, spécialisé dans la gestion des courriers électroniques. Thunderbird n

Plus en détail

WINDOWS SHAREPOINT SERVICES 2007

WINDOWS SHAREPOINT SERVICES 2007 WINDOWS SHAREPOINT SERVICES 2007 I. TABLE DES MATIÈRES II. Présentation des «content types» (Type de contenu)... 2 III. La pratique... 4 A. Description du cas... 4 B. Création des colonnes... 6 C. Création

Plus en détail

Plate formes mobiles. Utilisation. Contexte 9/29/2010 IFC 2. Deux utilisations assez distinctes :

Plate formes mobiles. Utilisation. Contexte 9/29/2010 IFC 2. Deux utilisations assez distinctes : Plate formes mobiles IFC 2 Markus Jaton Utilisation Deux utilisations assez distinctes : Téléphones évolués (Nokia, Motorola) Smartphones (Apple,, Windows) La téléphonie est en stagnation, alors que les

Plus en détail

Prise en main rapide

Prise en main rapide Objectif terminal Réaliser un objet communicant Pourquoi? : 20 millards d objets connectés en 2020! Quelques mots sur l outil de développement App Inventor App Inventor pour Android est une application

Plus en détail

Développement tablette Android. SophiaConf2011 Par Arnaud FARINE

Développement tablette Android. SophiaConf2011 Par Arnaud FARINE Développement tablette Android SophiaConf2011 Par Arnaud FARINE Parts de marché Android en 2011 1er OS vendu aux EU fin 2010 24% des smartphones en France (35% ios, 11% Blackberry) 3,6 millions de smartphones

Plus en détail

Mai 2014. Médiathèque «Les Trésors de Tolente»

Mai 2014. Médiathèque «Les Trésors de Tolente» Mai 2014 Médiathèque «Les Trésors de Tolente» Sommaire Google, premiers repères Google, le moteur de recherche Google map Gmail Google agenda Google drive Google+ Conclusion / Framasoft Pour continuer

Plus en détail

WINDOWS 8. Windows 8 se distingue par la présence de 2 interfaces complémentaires :

WINDOWS 8. Windows 8 se distingue par la présence de 2 interfaces complémentaires : WINDOWS 8 Windows 8 : généralités Windows 8 est la dernière version du système d'exploitation de Windows, sortie en octobre 2012. Si vous possédez un ordinateur récent, il y a de fortes chances que votre

Plus en détail

Guide de Démarrage. Introduction... 2 Scénarios pour l utilisation de votre procloud@ocim.ch... 2 Scénarios à venir :... 2

Guide de Démarrage. Introduction... 2 Scénarios pour l utilisation de votre procloud@ocim.ch... 2 Scénarios à venir :... 2 Guide de Démarrage Introduction... 2 Scénarios pour l utilisation de votre... 2 Scénarios à venir :... 2 Accès à vos données depuis un navigateur internet... 3 Démarrage... 3 Explorez votre nouvel environnement...

Plus en détail

Android Publish/Subscribe, GCM, Google Cloud Messaging : une introduction

Android Publish/Subscribe, GCM, Google Cloud Messaging : une introduction Android Publish/Subscribe, GCM, Google Cloud Messaging : une introduction jean-michel Douin, douin au cnam point fr version : 8 Décembre 2014 Notes de cours 1 Sommaire Le socle, les fondements Le patron

Plus en détail

GUIDE de prise en main. let s play

GUIDE de prise en main. let s play GUIDE de prise en main let s play Sommaire Description Telma ONE TAB 7.1 / 1 / Premières manipulations / Comment insérer ma carte mémoire? / Comment copier vos fichiers sur la tablette? / Comment recharger

Plus en détail

Lutter contre les virus et les attaques... 15

Lutter contre les virus et les attaques... 15 Lutter contre les virus et les attaques... 15 Astuce 1 - Télécharger et installer Avast!... 17 Astuce 2 - Configurer la protection de messagerie... 18 Astuce 3 - Enregistrer Avast!... 20 Astuce 4 - Mettre

Plus en détail

Manuel d utilisation du web mail Zimbra 7.1

Manuel d utilisation du web mail Zimbra 7.1 Manuel d utilisation du web mail Zimbra 7.1 ma solution de communication intelligente Sommaire 1 Connexion à la messagerie Zimbra p.4 1.1 Prérequis p.4 1.1.1 Ecran de connexion à la messagerie p.4 2 Presentation

Plus en détail

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris : Développement d un client REST, l application Vélib 1. Présentation L application présentée permet de visualiser les disponibilités des vélos et des emplacements de parking à la disposition des parisiens

Plus en détail

Utilisation de la Plateforme Office365 et d Oultlook Web App

Utilisation de la Plateforme Office365 et d Oultlook Web App Utilisation de la Plateforme Office365 et d Oultlook Web App 1. Sommaire 1. Sommaire... 1 2. Accéder à la messagerie Office 365 en passant par Internet... 2 3. La boîte de réception... 4 3.1. Présentation

Plus en détail

Dans la série. présentés par le site FRAMASOFT

Dans la série. présentés par le site FRAMASOFT Dans la série Les tutoriels libres présentés par le site FRAMASOFT CRÉER DES EXERCICES AVEC JCLIC-AUTHOR Logiciel: JClic-author Plate-forme(s): Linux, Windows, Mac OS X Version: 0.1.1.9 Licence: GNU General

Plus en détail

Tutorial Terminal Server sous

Tutorial Terminal Server sous Tutorial Terminal Server sous réalisé par Olivier BOHER Adresse @mail : xenon33@free.fr Site Internet : http://xenon33.free.fr/ Tutorial version 1a Page 1 sur 1 Index 1. Installation des services Terminal

Plus en détail

Android. Programmation. De la conception au déploiement avec le SDK Google Android 2. Damien Guignard Julien Chable Emmanuel Robles

Android. Programmation. De la conception au déploiement avec le SDK Google Android 2. Damien Guignard Julien Chable Emmanuel Robles Programmation Android De la conception au déploiement avec le SDK Google Android 2 Damien Guignard Julien Chable Emmanuel Robles Avec la contribution de Nicolas Sorel et Vanessa Conchodon Groupe Eyrolles,

Plus en détail

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry. : Java Agent DEvelopment framework Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.fr Introduction à la plateforme JADE 1) Modèle d agent 2) Services 3) Norme FIPA

Plus en détail

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation

Plus en détail

BUREAU VIRTUEL. Utilisation de l application sur ipad. Guide utilisateur. Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6

BUREAU VIRTUEL. Utilisation de l application sur ipad. Guide utilisateur. Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6 BUREAU VIRTUEL Utilisation de l application sur ipad Guide utilisateur Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6 Utilisation du bureau virtuel sur ipad Table des matières PREAMBULE...2 QU

Plus en détail

Guide de l application Smartphone Connect

Guide de l application Smartphone Connect Guide de l application Smartphone Connect Téléphone de design de première classe avec application de connexion de téléphone intelligent Smartphone Connect Modèle KX-PRW120 Nous vous remercions d avoir

Plus en détail

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Tutoriel Création d une source Cydia et compilation des packages sous Linux Tutoriel Création d une source Cydia et compilation des packages sous Linux 1. Pré-requis 1. Quelques connaissances sous Linux 2. Avoir à disposition un Serveur FTP pour héberger votre source 3. Un thème

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Formation. Module WEB 4.1. Support de cours

Formation. Module WEB 4.1. Support de cours Formation Module WEB 4.1 Support de cours Rédacteur Date de rédaction F.CHEA 08/02/2012 Les informations contenues dans ce document pourront faire l'objet de modifications sans préavis Sauf mention contraire,

Plus en détail

Table des matières. Module tablette

Table des matières. Module tablette Module tablette Table des matières LA TABLETTE... 1. GÉNÉRALITÉS... 2 Fonctionnement... 2 Différents systèmes... 4 Le clavier... 6 gestes de base... 7 Paramétrages... 9 2. EN PRATIQUE... 10 Installer une

Plus en détail

Stockage de données sous Android

Stockage de données sous Android Stockage de données sous Android Master 2 informatique 2012-2013 Michel Chilowicz (sous licence CC By-NC-SA) Données temporaires d'une activité Une activité peut être détruite

Plus en détail

Bases Java - Eclipse / Netbeans

Bases Java - Eclipse / Netbeans Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement

Plus en détail

Votre premier projet Android

Votre premier projet Android 3 Votre premier projet Android Maintenant que le SDK Android est installé, il est temps de créer votre premier projet. La bonne nouvelle est qu il n exige aucune ligne de code les outils Android créent

Plus en détail

Guide utilisateur des services WASATIS (Manuel Version 1.1)

Guide utilisateur des services WASATIS (Manuel Version 1.1) Guide utilisateur des services WASATIS (Manuel Version 1.1) Bienvenue dans le monde de la vidéotranquillité de Wasatis, nous vous remercions de votre confiance. Préambule Wasatis est aujourd hui la société

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

< Atelier 1 /> Démarrer une application web

< Atelier 1 /> Démarrer une application web MES ANNOTATIONS SONT EN ROUGE : Axel < Atelier 1 /> Démarrer une application web Microsoft France Tutorial Découverte de ASP.NET 2.0 Sommaire 1 INTRODUCTION... 3 1.1 CONTEXTE FONCTIONNEL... 3 1.2 CONTEXTE

Plus en détail