Terminaux Mobiles Communicants
|
|
|
- Amélie St-Jean
- il y a 10 ans
- Total affichages :
Transcription
1 Terminaux Mobiles Communicants Programmation Android P-F. Bonnefoi Version du 4 avril 2011
2 Table des matières 1 Open Handset Alliance Android : matériel et logiciel combinés Les applications natives Ce qu Android n est pas Le terminal Android Notre terminal Android Les avantages de la plateforme Android et de ses APIs La pile logicielle Modèle de sécurité Une application Android Cycle de vie d une «activity» Installation de l environnement de développement Le contenu du SDK Créer un terminal Android virtuel Connexion à l émulateur Créer une application Android L activity «Hello World» Si vous avez une erreur lors de la compilation L interface de l Activity
3 20 Le fichier AndroidManifest.xml Le fichier AndroidManifest.xml Application Android : différents fichiers et répertoires Accès aux ressources Les préférences Finaliser l application Journalisation des erreurs Intent(ion) Indiquer les intent(ions) L interface BroadcastReceiver L interface graphique Utilisation d XML Utilisation d Eclipse Le fichier XML correspondant Accès à l interface depuis le code D autres Widgets Un interfaçage rapide : les dialogues Notifications Toast Gestion du Bluetooth Bluetooth : mise en activité Bluetooth
4 41 Surveiller la découverte Utiliser la bibliothèque de simulation Bluetooth Utilisation des fonctions de hashage Utilisation de clés RSA nouvellement créées Utilisation de clés RSA déjà créées
5 1 Open Handset Alliance 5 Motto L OHA est un consortium regroupant plus de 70 sociétés comprenant : des fabricants de terminaux Motorola, HTC, Dell, Garmin... ; des fabricants de composants Atheros, ARM, Gemalto, Broadcom, Intel, NVIDIA... des opérateurs de téléphonie Bouygues Telecom, Vodaphone,... ; des sociétés de développement logiciel Google,... ;... A commitment to openness, a shared vision for the future, and concrete plans to make the vision a reality. To accelerate innovation in mobile and offer consumers a richer, less expensive, and better mobile experience. Together we have developed Android TM, the first complete, open, and free mobile platform.
6 2 Android : matériel et logiciel combinés 6 un document de référence exprime les contraintes matérielles nécessaires au support de la pile logicielle ; un noyau Linux qui fournie les interfaces de bas-niveau vers le matériel, la gestion de la mémoire, la gestion des processus, optimisé pour les appareils mobiles ; des bibliothèques opensource pour le développement d application incluant SQLite, WebKit, OpenGL et un gestionnaire multimédia ; un logiciel de démarrage, runtime : de petite taille, efficace pour une plateforme mobile pour exécuter et héberger les applications Android ; pour démarrer et gérer la machine virtuelle Dalvik ; pour gérer et mettre à disposition les bibliothèque des fonctionnalités de base ; un «framework» qui expose tous les services à la couche applicative sans privilégier une application suivant son origine (éditeur tiers ou non) : gestionnaire de fenêtre, fournisseur de contenu, gestionnaire de position géographique, téléphonie et service de communication p2p ; un «framework» d interface utilisateur utilisé pour héberger et lancer les applis ; des applications pré-installées ; un kit de développement logiciel pour créer des applications : outils, plug-ins et documentation.
7 3 Les applications natives 7 Il existe un certain nombre d applications disponibles dans Android : un client de messagerie compatible Gmail mais aussi avec d autres messageries ; une application de gestion des SMS ; un gestionnaire de contacts et d agenda, un PIM Personal Information Management, intégré avec les services onlines de Google ; une application de gestion de «Google Maps» incluant StreetView, la navigation guidée par GPS, les vues satellites et l obtention des conditions de trafic ; un navigateur web basé sur WebKit ; un client de messagerie instantanée ; un lecteur multimédia et un afficheur de photo ; un client «l Android Marketplace» pour télécharger des applications d éditeur tiers ; un client pour la boutique d achat de musique «Amazon». Ces applications sont programmées en Java avec le SDK et s exécutent sur la Dalvik. Mais Les données utilisées par toutes ces applications sont rendues disponibles aux applications tierces. Les applications tierces peuvent recevoir et gérer des événements comme la réception d appel téléphonique et celle de SMS.
8 4 Ce qu Android n est pas... 8 une implémentation de Java ME, Micro Edition : une application android est écrite en Java, mais ne s exécutent pas dans une machine virtuelle Java ME. Les classes Java compilées et les exécutables ne peuvent tourner directement sous android ; une partie du Linux Phone Standards Forum (LiPS) ou du Open Mobile Alliance (OMA) : android tourne sur un noyau Linux opensource, mais l approche d Android est plus global ; juste une couche applicative : Android recouvre la pile logiciel complète :système d exploitation, bibliothèques et les applications également ; un téléphone mobile : Android inclus un document de référence pour la conception de téléphone, mais il n existe pas «un seul» téléphone Android mais au contraire de nombreux téléphones fabriqués par différents constructeurs ; la réponse de Google à l iphone : Android est issu d un consortium et non d un seul constructeur.
9 5 Le terminal Android 9 C est un smartphone, caractérisé par : un processeur autour de 1Ghz, comme le Snapdragon de Qualcomm sur architecture ARM ; une batterie de capacité limitée, 1 ou 2 journées d utilisation ; un écran de résolution variable suivant les modèles limitée en dimension, QVGA : 320x240, WVGA : 800x480, etc. une mémoire intégrée importante : 512Mo de RAM, 512Mo de flash ; un espace de stockage renouvelable et extensible (SDCard) ; écran tactile, capacitif «multi-touch», ou encore résistif ; capacités multimédia 2D, 3D, vidéo et son : différents CODECs : MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF, différentes APIs : OpenGL, Free- Type, SGL ; l accès à Internet en mobilité : accès au WiFi, au GSM, au EDGE, à la 3G pour la téléphonie et l échange de données ; un environnement de développement riche, basé sur le langage Java permettant de créer facilement des applications mobiles connectées!
10 6 Notre terminal Android 10
11 ?? 7 Les avantages de la plateforme Android et de ses APIs 11 pas de license à obtenir, pas de dépense pour la distribution et le développement Cool pour l Université! développer des applications «location-based» en utilisant le GPS ; utiliser des cartes géographiques avec Google Maps ; recevoir et émettre des SMS, envoyer et recevoir des données sur le réseau mobile ; enregistrer et lire image, son et vidéo ; utiliser compas, accéléromètre, gyroscope ; des IPC, inter process communication, avec les Notifications et Intents pour une relation «event-driven» avec l utilisateur et l échange de messages entre applis ; desoutils de stockage de données partagés (SQLite en version Sandbox) ; Content Provider pour partager l accès à ses données ; un navigateur que l on peut inclure basé sur WebKit ; une accélération matérielle pour la 2D et la 3D ; des services et des applications qui peuvent tourner en tâche de fond : qui peuvent réagir au cours d une action, à votre position dans la ville, à l heure qu il est, suivant l identité de l appelant... une plateforme de développement qui favorise la réutilisation de composants logiciels et le remplacement des applications fournies.
12 Chapter 1: Hello, Android 8 La pile logicielle 12 Application Layer Native Apps (Contacts, Maps, Browser, etc.) Third Party Apps Developer Apps Application Framework Location-Based Services Content Providers Window Manager Activity Manager Package Manager Telephony P2P/IM Notifications Views Resource Manager Libraries Android Runtime Graphics (OpenGL, SGL, FreeType) Media SSL & WebKit Android Libraries libc SQLite Surface Manager Dalvik Virtual Machine Linux Kernal Hardware Drivers (USB, Display, Bluetooth, etc.) Power Management Process Management Memory Management Figure 1-1 Linux Kernel Core services (including hardware drivers, process and memory management,
13 9 Modèle de sécurité Managing Application Permissions Chaque application Android est associée à un compte utilisateur Linux différent. ANDROID PLATFORM SECURITY MODEL Android Application #1 DroidWars com.androidbook.droidwars Android Application #2 Chippy s Revenge! com.androidbook.chipmunk FIGURE 5.6 Simplified Android platform architecture from a security perspective. DALVIK Virtual Machine DALVIK Virtual Machine Linux User com.androidbook.droidwars Linux User com.androidbook.chipmunk Private App Files and Databases Linux Operating System Private App Files and Databases Android Platform Security Enforcement Access Shared Data Contacts, Calendars, Owner Information, Phone Data, etc. Access Handset Hardware Phone Dialer, WiFi, Bluetooth, Camera, Audio, Telephony, Device Sensors, etc. Le partage d accès Try It Yourself se fait ensuite suivant un système de «permissions». To give your application permission to access the built-in camera, use the following steps:
14 10 Une application Android 14 Une application Android est constituée de composants faiblement couplés. Ces composants sont décrits dans un même document : le «manifest», un fichier au format XML AndroidManifest.xml qui décrit : chaque composant : Activities, Services, Content Providers, Broadcast Receivers ; les interactions de ces composants : Intent Filters et Notifications ; les accès nécessaires au matériel et logiciel (bibliothèques) :Permissions ; Les composants pour définir une application : les «Activités» ou activity : correspondent à des applications sur un ordinateur de bureau. elles sont démarrées à la demande de l utilisateur ou du système ; elles tournent aussi longtemps qu elles sont utiles : le système peut tuer une activité pour récupérer de la mémoire ; elles peuvent interagir avec l utilisateur, demander des données ou des services à d autres activités ou à des «services», au travers de requêtes et d «intentions», intents ; en général, une activité = un écran d interface, appelé View.
15 10.1 Une application Android 15 les «Services» : similaires aux «démons» sous Unix et aux «services» sous Windows : du code tournant en tâche de fond. ils travaillent même lorsque lorsque l activité de l application n est plus active ou visible (par exemple, un lecteur MP3 qui peut jouer de la musique même si l interface de contrôle ne tourne plus) ; ils peuvent transmettre des notifications. les «notifications» : c est un moyen de signaler à l utilisateur sans interrompre l activité courante, ni prendre le focus. la meilleur méthode pour attirer l attention de l utilisateur depuis un service ou un récepteur de diffusion ; exemple : l utilisateur reçoit un SMS ou un appel et il est alerté par des voyants qui clignotent, l écoute d un son, l affichage du message ou une icone.
16 10.2 Une application Android 16 les «fournisseurs de contenu» ou Content providers : ils ont été définis pour partager des données avec d autres applications. ils utilisent une interface standardisée sous la forme d URI, Uniform Resource Identifier, pour répondre à des requêtes en provenance d autres applications. Ces applications n ont même pas besoin de connaitre le fournisseur de contenu qui leur répond. exemple : content://contacts/people permet de définir une requête pour l accès à la liste des contacts de l utilisateur ; le système d exploitation recherche si une application s est enregistrée comme fournisseur de contenu pour cette URI ; s il trouve une application, il la démarre si elle ne s exécute pas déjà, et lui transmet la requête ; s il trouve plus d une application, il demande à l utilisateur laquelle il veut utiliser.
17 10.3 Une application Android 17 les «intents» ou notifications : ils définissent un modèle par «passage de message» entre les applications. Ces messages peuvent être diffusés, broadcast, à tout le système ou bien être envoyés à une activité ou un service particulier (le système décide des cibles) ; un message a pour but de déclencher une action. les «récepteurs de diffusion», ou broadcast receivers. Ils s enregistrent dans le système et reçoivent les messages diffusés qui correspondent à un filtre prédéfini. ils peuvent déclencher une application en réponse à la réception d un message ; ils permettent d utiliser un modèle «piloté par les événements», event-driven. les «widgets» : des composants visuels qui peuvent être ajoutés à l écran de démarrage, home screen. Il correspondent à une variation du broadcast receiver. L intérêt de ces composants est de permettre de les partager avec d autres applications (en particulier les services et fournisseurs de contenu).
18 11 Cycle de vie d une «activity» 18 Dans Android, il n y a qu une activité «active» à la fois, c-à-d. en «avant-plan» ou foreground. Le système d exploitation est libre de terminer une activité qui est en arrière-plan, lorsque la quantité de mémoire libre du système est trop basse. Ainsi, une application Android, lorsqu elle n est plus en avant-plan, doit être capable de maintenir son état pour garantir un fonctionnement seamless à l utilisateur (retrouver les valeurs et affichage précédents lorsqu il remet l application en avant-plan). C est à l application de gérer son état, ses données, et ses ressources afin d être prête à être interrompue ou bien terminée à tout moment. Pour répondre à ses événements, des méthodes de réponse, callback, sont définies : oncreate(), onresume(), onpause(), ondestroy()
19 11.1 Cycle de vie d une «activity» 19 Description des différents callback et des actions à entreprendre lors de leur réception : oncreate() : est appelé quand l application démarre ou redémarre. Initialiser les données statiques, établir des liens vers les données et les ressources, positionner l interface avec setcontentview(). onresume() : appelé quant une activité passe en avant-plan. Reprendre le contrôle des ressources exclusives. Continuer les lectures audio et vidéo ou les animations. onpause() : appelé quand l activité quitte l avant plan. Sauvegarder les données non encore sauvegardées, libérer l accès aux ressources exclusives, stopper la lecture audio, vidéo et les animations. ondestroy() : appelé quand l application est fermée. Nettoyer les données statiques de l activité, libérer toutes les ressources obtenues. Il est nécessaire de limiter le temps pris pour traiter la réception de ces callbacks : la thread principale de l application est celle s occupant de l interface :UI thread ; elle ne doit pas être bloquée plus de 5 secondes sous peine de voir le «Application Not Responding».
20 blocked. If the main UI thread is blocked for too long, the Android system will shut down the activity due to a lack of response. This is especially important to respond quickly during the onpause() callback, when a higher-priority task (for example, an incoming phone call) is entering the foreground Cycle de Figure vie 3.2 shows the order in which activity callbacks are called. 20 FIGURE 3.2 Important callback methods of the activity life cycle. Request Activity Start oncreate() onstart() onrestart() Activity Brought to Foreground onresume() Activity Sent to Background Activity Killed For Memory Activity Running In Foreground Activity Sent To Background Activity Brought to Foreground Activity Brought to Foreground onpause() onstop() ondestroy() Saving Activity State An activity can have private preferences much like shared application preferences. You can access these preferences by using the getpreferences() method of the
21 12 Installation de l environnement de développement 21 Pour pouvoir développer une application Android, on utilise : le kit de développement fourni par Google ; un des différents simulateurs de terminaux communicants. Ces différents éléments peuvent être intégrés et utilisés dans l IDE, «Integrated Development Environment», Eclipse. Pour pouvoir utiliser l API Bluetooth sur le simulateur, on utilise une bibliothèque permettant de simuler son fonctionnement en utilisant la pile de communication TCP/IP de la machine hôte. En effet, le simulateur ne prends pas en charge la présence éventuelle d un composant bluetooth sur la machine hôte. Pour cela, on va installer : Eclipse ; le SDK d Android ; une bibliothèque pour l utilisation du Bluetooth ;
22 12.1 Installation de l IDE Eclipse 22 Sous Ubuntu, on peut utiliser le gestionnaire de paquets Synaptic : On peut également utiliser la commande : $ sudo apt-get install eclipse On sélectionne Eclipse, pour procéder à son installation.
23 12.2 Récupération du SDK Android 23 Le SDK d Android est disponible à l adresse : On choisira l archive android-sdk_r06-linux_86.tgz.
24 12.3 Installation du SDK et intégration dans Eclipse 24 récupérer l archive android-sdk_r06-linux_86.tgz créer un répertoire ANDROID : $ mkdir ~/ANDROID $ tar xvfz android-sdk_r06-linux_86.tgz $ cd android-sdk-linux_86 Il faut ajouter la ligne export PATH=${PATH}:${HOME}/ANDROID/android-sdk-linux_86/tools à la fin du fichier ~/.bashrc, pour l accès aux commandes du SDK. il faut ajouter le plugin «Android Developement Tools (ADT)» dans Eclipse : Allez dans le menu «Help install new software», et rajoutez le site sélectionnez les «Developper Tools» ; acceptez l installation d éléments non signés. Allez dans le menu «Window Preferences» : sélectionnez «Android» ; indiquez dans le zone de saisie le chemin d accès au SDK : /home/pef/android/android-sdk-linux_86/ Vous mettrez votre nom de compte à la place de «pef»...
25 12.4 Récupération de la plate-forme Android 25 Allez dans le menu «Window Android SDK and AVD Manager» : sélectionnez la plate-forme 2.2 vous pouvez retourner dans le menu «Window Preferences» pour vérifier la présence de cette plate-forme. installer une bibliothèque pour l utilisation du Bluetooth : $ sudo apt-get install git-core $ cd ANDROID $ git clone git://github.com/cheng81/android-bluetooth-simulator.git $ cd Android-Bluetooth-Simulator
26 13 Le contenu du SDK 26 les APIs Android ; les outils de développement (dans le répertoire tools) : DDMS, Dalvik Debug Monitoring Service : le débogueur ; AAPT, Android Asset Packaging Tool : outil de construction des packages d application (.apk) ; ADB, Android Debug Bridge : copier des fichiers, déployer des applications ; SQLite3 : pour la gestion des BDs ; MkSDCard : pour créer une SDCard virtuelle ; dx : convertir les.class Java en bytecode Android.dex. l émulateur android : interactif, avec possibilité de simuler la gestion d appel téléphonique et de SMS ; plusieurs skins pour tester différents form factors (écran, orientation, etc.) ; chaque application est exécutée dans une VM Dalvik, ce qui permet de tester et de déboguer les applications dans un environnement «réel». une documentation : une communauté de développeur : et sur Stack Overflow : des exemples de code.
27 14 Créer un terminal Android virtuel 27 Allez dans le menu «Window Android SDK and AVD Manager», puis prendre «Virtual Devices» (avec les choix par défaut) :
28 15 Connexion à l émulateur 28 Il est possible de se connecter au terminal virtuel à l aide de la commande telnet sur le port indiqué dans le nom de la fenêtre de l émulateur : pef@pef-desktop:~/android/android-sdk-linux_86/tools$ telnet localhost 5554 Trying Connected to localhost. Escape character is ^]. Android Console: type help for a list of commands OK help Android console command help: help h? event geo gsm kill network power quit exit redir sms avd window print a list of commands simulate hardware events Geo-location commands GSM related commands kill the emulator instance manage network settings power related commands quit control session manage port redirections SMS related commands manager virtual device state manage emulator window try help <command> for command-specific help OK
29 16 Créer une application Android 29 On choisit le menu «File New Project» Puis on définit les options de l application : Package Name ; Activity ; Application name ; la version de la plateforme.
30 17 L activity «Hello World» 30 On obtient le code ci-dessous dans le fichier HelloWorld.java : package edu.cryptis.tmc.helloworld; import android.app.activity; import android.os.bundle; public class HelloWorld extends Activity { } /** Called when the activity is first created. public void oncreate(bundle savedinstancestate) { } super.oncreate(savedinstancestate); setcontentview(r.layout.main); Ce code : définit une activity, par héritage de la classe Activity ; positionne son interface utilisateur par l utilisation de setcontentview().
31 18 Si vous avez une erreur lors de la compilation Menu «Project Properties», vérifiez que :
32 19 L interface de l Activity 32 Elle est définie par : l utilisation d un container vertical qui remplit tout l écran qui contient une étiquette faisant référence au contenu d une chaîne définie dans les ressources (répertoire res/). <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout> et celui du fichier res/values/strings.xml : <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">hello World, HelloWorld!</string> <string name="app_name">hello World</string> </resources>
33 20 Le fichier AndroidManifest.xml 33 Le contenu du fichier res/layout/main.xml : <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="edu.cryptis.tmc.helloworld" android:versioncode="1" android:versionname="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".helloworld" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> </application> </manifest>
34 21 Le fichier AndroidManifest.xml 34 Un namespace est définie xmlns:android qui est uniquement utilisé pour les attributs du fichier XML et non pour les éléments, avec l exception de l attribut package de l élément manifest... D autres éléments : uses-permissions : les permissions nécessaires à l application ; permission : déclarer des permissions nécessaires aux autres applications dans le but d avoir accès au données de l application ; instrumentation : indiquer le code à appeler lors de la réception d événements systèmes comme le lancement d une activité, pour monitoring ou du logging ; uses-library : utiliser d autres composants, comme le service de localisation ; uses-sdk : <uses-sdk minsdkversion="2"/> pour des sous-versions du SDK ; application : définir l application elle-même. <manifest xmlns:android=" <uses-permission package="edu.cryptis.tmc.monappli"> android:name="android.permission.access_location" /> <uses-permission android:name="android.permission.access_gps" /> <uses-permission android:name="android.permission.bluetooth" /> <uses-permission <application>... </application> </manifest>
35 21.1 Utiliser Eclipse 35 Il est possible pour définir le contenu du fichier AndroidManifest.xml d utilisé l éditeur spécialisé fourni par Eclipse :
36 21.2 Utiliser Eclipse 36 Par exemple pour rajouter une permission :
37 22 Application Android : différents fichiers et répertoires 37 AndroidManifest.xml ; R.java : contient les références, «ID», à différents éléments de l application ; build.xml et default.properties : utilisé par Ant ; bin/ : contient l application une fois compilée ; bin/classes/ : les classes Java compilées ; bin/classes.dex : l exécutable créé à partir de ces classes ; bin/appli.ap_ : contient les ressources de l application en fichier Zip ; bin/appli-debug.apk ou bin/appli-unsigned.apk : l application Android ; Ce fichier.apk est signé électroniquement par une clé avec jarsigner. libs/ : les bibliothèques tierces nécessaires à l application ; assets/ : les fichiers multimédias et autres fichiers nécessaires à l application ; src/ : les sources de l application ; res/ pour les ressources : res/layout/ : les fichiers au format XML pour définir l interface. res/drawable/ : les fichiers images pour l interface ; res/menu/ : fichier de définition en XML des menus ; res/values/ : pour les chaînes de caractères, les constantes (permet de facilement internationaliser une application) ; res/xml/ : pour des fichiers au format XML.
38 23 Accès aux ressources 38 Pour ajouter un fichier de n importe quel type à l application : le mettre dans le répertoire res/raw ; synchroniser l IDE Eclipse : dans le menu contextuel du répertoire sélectionner l option refresh ; l IDE va créer les références manquantes dans le fichier R.java. Attention Chaque fichier doit avoir un nom unique en excluant son extension : toto.jpg et toto.dat vont entrer en conflit. Pour référencer une ressource Il faut utiliser la méthode getresources().openrawresource(r.raw.ma_ressource); où ma_ressource correspond au nom du fichier.
39 24 Les préférences 39 Il est possible de disposer d un système de gestion de préférences dont l accès est partagé entre les différents éléments constituants l application. Pour accéder aux préférences, on utilisera la méthode getsharedpreferences(). Ces préférences sont organisées sous forme d objet de la classe SharedPreferences et chacun de ces objets peut recevoir un nom. Ensuite, pour un de ces objets on peut définir un ensemble d associations de type (clé, valeur). 1 SharedPreferences reglages = getsharedpreferences( MesPrefs, MODE_PRIVATE); 2 SharedPreferences.Editor editeurpref = reglages.edit(); 3 editeurpref.putstring( Nom, toto ); 4 editeurpref.putboolean( Inscrit, true); 5 editeurpref.commit(); Pour récupérer les valeurs de ces préférences : 1 SharedPreferences reglages = getsharedpreferences( MesPrefs, MODE_PRIVATE); 2 String nom = reglages.getstring( Nom, Titi ); Dans la ligne 2, le deuxième argument de la méthode getstring est la valeur à retourner dans le cas où il n y aurait pas de valeur associée à la clé «Nom».
40 25 Finaliser l application 40 Nommer l application On ajoutera dans le manifest : 1 <application android:label="le nom de mon application"> Ou en faisant appel à une ressource : 1 <application android:label="@string/app_name"> L application portera comme nom, le contenu de la chaîne appelée app_name et définie dans le fichier strings.xml Associer une icone à l application On ajoutera dans le manifest : 1 <application android:icon="@drawable/mon_icone"> Pour définir l icone, il faut : définir cette icone au format PNG suivant 3 tailles différentes : 36x36, 48x48 et 72x72 suivant la densité de l écran qui peut être basse, moyenne ou grande ; stocker la version 36x36 dans res/drawable-ldpi/ sous le nom mon_icone.png stocker la version 48x48 dans res/drawable-mdpi/ sous le nom mon_icone.png stocker la version 72x72 dans res/drawable-hdpi/ sous le nom mon_icone.png Android choisira automatiquement la taille la mieux adaptée.
41 25.1 Finaliser l application 41 Fournir une description de l application Cette description peut être utilisée dans le MarketPlace : 1 <application android:label="le nom de l application" 2 android:description="@string/app_desc"> Pour déboguer l application Pour pouvoir déboguer l application dans Eclipse, il est nécessaire d ajouter l attribut android:debuggable="true" dans l élément application dans le manifest. Lors de la diffusion de l application, cet attribut doit être modifié.
42 26 Journalisation des erreurs 42 Android définit la classe android.util.log et les méthodes suivantes : Log.e() Logs errors Log.w() Logs warnings Log.i() Logs messages de description Log.d() Logs messages de déboguage Log.v() Logs messages détaillés Chaque message de déboguage doit être étiquetté avec un TAG : 1 private static final String TAG = "MonApplication"; Log.i(TAG, "Dans la methode Truc()"); Le TAG permet ensuite de filtrer au niveau du débogueur, LogCat d Eclipse, les messages que l on veut suivre.
43 27 Intent(ion) 43 À qui cela correspond? Une application Android est constituée de composants logiciels faiblement couplés qui correspondent chacune à une activité indépendante. Parmi ces activités, l une est plus importante que les autres : elle apparait dans le «launcher». On utilise un message, un intent pour demander au système de déclencher une activité. Cette «intention» peut être plus ou moins spécifique, ce qui laisse une plus grande liberté pour le choix de ou des activités qui vont la satisfaire. Analogie avec le Web Une analogie existe avec le protocole HTTP : un verbe + URL vers une ressource (page web, image, programme serveur). Le verbe correspond à GET, POST etc. Un intent représente une action + un contexte et il existe plus d actions et plus de composants pour les réaliser. À la manière du navigateur web qui sait traiter le verbe+url, Android sait trouver l activité correspondante.
44 27.1 Intent(ion) 44 Intent Données action + données les données sont indiquées sous forme d une URI, comme content://contacts/people/1 Action les actions sont des constantes, comme ACTION_VIEW qui déclenche une visionneuse, ACTION_EDIT pour éditer une ressource, ACTION_PICK pour sélectionner un élément suivant une URI représentant une collection comme content://contacts/people. Si on crée un intent avec l action ACTION_VIEW et l URI content://contacts/people/1 : Android va chercher et ouvrir une activité capable d afficher cette ressource. D autres critères peuvent être ajoutés dans l intent categorie type MIME un component Extras l activité principale sera dans la catégorie LAUNCHER, mais les autres activités seront dans DEFAULT ou ALTERNATIVE. pour indiquer le type de ressources sur lequel l action va être faite pour indiquer la classe de l activité qui est supposée recevoir l intent. Réduit la portée de l intent mais permet de simplifier le contenu de l intent. permet d ajouter des données à transmettre au récepteur.
45 28 Indiquer les intent(ions) 45 On indique quels sont les intents attendus par un composant dans le fichier manifest, à l aide d intent-filter : 1 <manifest xmlns:android=" 2 package="com.commonsware.android.skeleton"> <application> 3 <activity android:name=".go" android:label="go"> 4 <intent-filter> 5 <action android:name="android.intent.action.main" /> 6 <category android:name="android.intent.category.launcher" /> 7 </intent-filter> 8 </activity> </application></manifest> Rendre plus spécifique le récepteur Lorsque le système génère des événements, il est possible de déclencher : un service plutôt qu une activité ; une activité suivant un contexte spécifique : le même intent sur une certaine donnée déclenche une activité mais sur une autre donnée déclenche une autre activité. On utilise des récepteurs d intent implémentant l interface BroadcastReceiver. Ces récepteurs sont des objets qui reçoivent des intents, surtout diffusés en broadcast, et qui réagissent en envoyant d autres intents pour déclencher une activité, un service...
46 29 L interface BroadcastReceiver 46 Elle est constituée de seulement une méthode :onreceive(). Les objets implémentants cette interface doivent être déclarés dans le manifest : 1 <receiver android:name=".maclasserecepteur" /> Cet objet n est exécuté que jusqu au retour de la méthode et sera enlever du système : ils ne peuvent attendre de callback (pas d ouverture de dialog par exemple). Exception de traitement Si on veut que le récepteur soit attaché à un composant logiciel avec une durée de vie plus longue, comme celle du système : il ne faut pas déclarer le récepteur dans le manifest ; il faut enregistrer le récepteur à l aide de la méthode registerreceiver() lors du callback onresume() de l activité ; il faut dé-enregistrer le récepteur à l aide de la méthode unregisterreceiver() lors du callback onpause() de l activité ou lorsque l on ne désire plus recevoir d intent associé. Attention L utilisation d objet Intent pour passer des données quelconques n est possible que si le récepteur est actif (possibilité de manquer des intents quand inactif).
47 30 L interface graphique 47 Il existe deux manières de définir une interface graphique : à l aide de fichier de description rédigé suivant le format XML avantages : simplicité de conception, indépendance avec le code Java ; inconvénients : définition statique qui ne peut évoluer au cours de la vie de l application ; avec du code Java avantages : peut évoluer de manière dynamique durant la vie de l application (exemple : définir le contenu d un menu permettant de choisir un élément parmi une liste construite par l application) ; inconvénients : difficultés d organisation, le code est mélangé à celui de l application. tiré parti des deux... et aussi, utiliser une interface au format HTML avec le widget basé sur WebKit
48 31 Utilisation d XML 48 Les fichiers au format XML : sont stockés en tant que ressource dans : res/layout ; définissent une hiérarchie entre les widgets : un arbre d éléments de widgets et de containers ; les attributs de ces éléments définissent les propriétés : l aspect d un widget comme celui d un bouton avec textstyle="bold" le comportement d un container. l outil aapt parse ces fichiers et construit le fichier R.java contenant des références pour désigner un widget dans le code de l application.
49 32 Utilisation d Eclipse 49 Il est possible d utiliser l éditeur intégré dans Eclipse :
50 33 Le fichier XML correspondant 50 Ce fichier définie une arborescence : <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <Button android:text="@+id/button01" android:id="@+id/button01" android:layout_width="wrap_content" android:layout_height="wrap_content"> </Button> </LinearLayout> Sur cet exemple, les widget : sont de la classe Button et TextView qui héritent de la classe android.view.view ; disposent d un identifiant avec l attribut android:id ; affichent à l initialisation le texte qui est définie par l attribut android:text. Pour le TextView on remarque qu il fait référence à une chaîne définie dans le fichier strings.xml et référencée par "@string/hello. les attributs android:layout_width et android:layout_height sont définis à fill_parent ; À Quoi correspondent les «@»? À définir une identité pour une référence ultérieure : «@+id/mon_id»
51 34 Accès à l interface depuis le code 51 Le fichier R.java contient des références sur les éléments de l interface : 1 /* AUTO-GENERATED FILE. DO NOT MODIFY. 2 * 3 * This class was automatically generated by the 4 * aapt tool from the resource data it found. It 5 * should not be modified by hand. 6 */ 7 package edu.unilim.helloworld; 8 public final class R { public static final class layout { 11 public static final int main=0x7f030000; 12 } 13 public static final class id { 14 public static final int Button01=0x7f050000; 15 } 16 } la méthode setcontentview permet d appeler l interface définie dans un fichier XML : setcontentview(r.layout.main) on utilise la méthode findviewbyid() à laquelle on passe l identifiant numérique défini dans le fichier R.java. Exemple : Button btn = (Button) findviewbyid(r.id.button01) On utilise le nom définie dans le fichier XML d interface, ici «button01». on accroche un listener : btn.setonclicklistener(... ) pour obtenir l événement (clic du bouton).
52 35 D autres Widgets 52 Il existe différentes classes et sous-classes : ImageView : avec les attributs android:src, comme par exemple : android:src="@drawable/logo" Il est également possible d utiliser la méthode setimageuri() pour utiliser un Content Provider ImageButton EditText : pour une zone de saisie. Avec les attributs : android:numeric pour ne rentrer que des chiffres ; android:singleline="false" pour indiquer si la saisie se réalise sur une ligne ou plus ; android:password : pour l entrée masquée d un mot de passe.
53 36 Un interfaçage rapide : les dialogues 53 Lorsque l on veut intéragir avec l utilisateur de manière rapide et simple, sans avoir à créer une activité dédiée, on peut créer une fenêtre de Dialog : Activity.showDialog() : afficher un dialogue ; Activity.onCreateDialog() : une fonction de callback lors de la création du dialogue et son ajout à la liste des autres dialogues de l activité ; Activity.onPrepareDialog() : permet de mettre à jour un dialogue juste avant son affichage ; Activity.dismissDialog() : ferme un dialogue et retourne à l activité ; Activity.removeDialog() : supprime le dialogue de la liste des dialogues. On peut définir l apparence du dialogue à l aide : d un fichier layout au format XML ; la méthode setcontentview(). Il existe des dialogues prédéfinis : AlertDialog, CharacterPickerDialog, Date- PickerDialog, ProgressDialog et TimePickerDialog. On peut récupérer les références vers les éléments de l interface à l aide de Dialog.findViewById().
54 37 Notifications Toast 54 C est un message qui va venir en premier plan et disparaitre automatiquement après un temps limité. 1 Context context = getapplicationcontext(); 2 CharSequence text = "Hello toast!"; 3 int duration = Toast.LENGTH_SHORT; 5 Toast toast = Toast.makeText(context, text, duration); 6 toast.show(); Ou plus simplement : 1 Toast.makeText(context, text, duration).show();
55 38 Gestion du Bluetooth 55 Avec Bluetooth, il est possible de : chercher d autres appareils, devices, à proximité ; établir une communication de type flux à l aide d une socket bluetooth. Il existe 4 classes pour gérer le bluetooth : BluetoothAdapter : représente l interface matérielle bluetooth, le bluetooth device sur lequel tourne Android ; BluetoothDevice : représente chaque appareil distant avec lequel on peut communiquer, remote bluetooth device ; BluetoothSocket : permet de déclencher une requête de connexion vers un appareil distant et d établir une communication ; BluetoothServerSocket : permet de définir un serveur en attente de connexions en provenance des appareils distants. Pour accéder à l interface bluetooth : 1 BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter(); Il faut également les permissions suivantes dans le manifest : 1 <uses-permission android:name="android.permission.bluetooth"/> 2 <uses-permission android:name="android.permission.bluetooth_admin"/> 1. pour déclencher une découverte du voisinage, discovery, établir des communications 2. pour modifier les propriétés de l interface.
56 39 Bluetooth : mise en activité 56 Par défaut, l interface Bluetooth n est pas activée pour économiser la batterie, et pour des questions de sécurité. Il est nécessaire de l activer : soit avec la méthode enable(), si l on dispose de la permission BLUETOOTH_ADMIN ; soit à l aide d une sous-activité asynchrone dont on attendra le résultat : 1 String enablebt = BluetoothAdapter.ACTION_REQUEST_ENABLE; 2 startactivityforresult(new Intent(enableBT), 0); L utilisateur sera prévenu et une demande d autorisation lui sera affichée. Dans le premier cas, il vaut mieux prévenir l utilisateur de la mise en activité de l interface.
57 40 Bluetooth 57 L utilisation de Bluetooth se fait au travers d un service. Pour obtenir une référence vers ce service, il faut utiliser la méthode getsystemservice de la classe Context qui permet d accéder au système : 1 String nom_service = Context.BLUETOOTH_SERVICE; 2 BluetoothDevice bluetooth = (BluetoothDevice)getSystemService(nom_service); L objet BluetoothDevice Ensuite, il est possible d utiliser les méthodes suivantes : enable et disable : activer ou désactiver l interface ; getname et setname : pour manipuler le nom de l interface (si elle est active) ; getaddress : pour obtenir l adresse de l interface ; get/setmode et : pour configurer le mode de découverte «discoverable» ou «connectable» get/setdiscoverabletimeout : pour configurer le temps utilisé pour cette découverte ; 1 bluetooth.setname( YOBIBO ); 2 bluetooth.setmode(bluetoothdevice.mode_discoverable);
58 40.1 Bluetooth : la découverte 58 Pour la découverte, discovery, des autres appareils bluetooth, il faut : être en mode découverte ; démarrer un cycle de découvrable : bluetooth.startperiodicdiscovery(); bluetooth.startdiscovery(true); Ces deux méthodes sont asynchrones, et diffusent un intent RE- MOTE_DEVICE_FOUND_ACTION à chaque découverte d un appareil bluetooth. obtenir la liste des appareils découverts : listremotedevices qui retourne un tableau de chaîne de caractères, contenant les adresses de chacun de ces appareils ; obtenir le nom d un appareil : getremotename en donnant en paramètre l adresse de l interface. Pour le pairing Il faut utiliser les méthodes suivantes : createbonding : pour établir le lien (cancelbonding pour l abandonner) ; setpin : pour indiquer le PIN de sécurité à utiliser (cancelpin pour le redéfinir). Une fois un lien établie avec un appareil, ce lien est ajouté à la BD de l appareil et sera utilisé de nouveau lors d une prochaine rencontre du même appareil.
59 40.2 Bluetooth : exemple d établissement de liens 59 1 String[] devices = bluetooth.listremotedevices(); 2 for (String device : devices) { 3 if (!bluetooth.hasbonding(device)) { 4 // Set the pairing PIN. In real life it s probably a smart 5 // move to make this user enterable and dynamic. 6 bluetooth.setpin(device, new byte[] {1,2,3,4}); 7 bluetooth.createbonding(device, new IBluetoothDeviceCallback.Stub() { 8 public void oncreatebondingresult(string address, int result) throws RemoteException{ 9 if (result == BluetoothDevice.RESULT_SUCCESS) { 10 String connecttext = Connected to + bluetooth.getremotename(address); 11 Toast.makeText(getApplicationContext(), connecttext, Toast.LENGTH_SHORT); 12 } 13 } 14 public void onenableresult(int _result) throws RemoteException {} 15 }); 16 } 17 } Pour écouter les requêtes de pairing, il faut définir un BroadcastListener filtrant les intents ACTION_PAIRING_REQUEST.
60 41 Surveiller la découverte 60 1 BroadcastReceiver discoverymonitor = new BroadcastReceiver() { 2 String dstarted = BluetoothAdapter.ACTION_DISCOVERY_STARTED; 3 String dfinished = BluetoothAdapter.ACTION_DISCOVERY_FINISHED; 5 public void onreceive(context context, Intent intent) { 6 if (dstarted.equals(intent.getaction())) { 7 // Discovery has started. 8 Toast.makeText(getApplicationContext(), 9 "Discovery Started...", Toast.LENGTH_SHORT).show(); 10 } 11 else if (dfinished.equals(intent.getaction())) { 12 // Discovery has completed. 13 Toast.makeText(getApplicationContext(), 14 "Discovery Completed...", Toast.LENGTH_SHORT).show(); 15 } 16 } 17 }; 18 registerreceiver(discoverymonitor, new IntentFilter(dStarted)); 19 registerreceiver(discoverymonitor, new IntentFilter(dFinished));
61 42 Utiliser la bibliothèque de simulation Bluetooth 61 Il faut modifier le fichier AndroidManifest.xml pour rajouter la permission d utiliser l accès à Internet (en plus de celle d accès à bluetooth et à son administration) : 1 <uses-permission android:name="android.permission.internet"> 2 </uses-permission> En effet, la simulation de bluetooth passe par l utilisation de la pile TCP/IP... Modifications du source de l application Pour l accès à la bibliothèque, il faut : changer l importation : import android.bluetooth import dk.itu.android.bluetooth appeler BluetoothAdapter.SetContext(this); par exemple dans la méthode oncreate() appelé lors de l initialisation de l activity. Lancer le serveur de liaison Dans Eclipse, il faut lancer btemu ou directement sur la ligne de commande : $ java -jar btsim-server.jar Server started on port 8199 ADB command: adb press any key to exit Ce serveur TCP/IP s occupe de faire la liaison entre les différents AVDs.
62 43 Utilisation des fonctions de hashage 62 On peut faire appel aux fonctions de hashage MD5 et SHA1 : 1 // Obtain a message digest object. 2 MessageDigest md = MessageDigest.getInstance("MD5"); 3 // Calculate the digest for the given bytes array 4 md.update(saisie.gettext().tostring().getbytes(), 0, saisie.length()); 5 val_hash = new BigInteger(1,md.digest()); 6 mon_texte.settext(string.format("%1$08x", val_hash)); Remarques : ligne 4 : la variable saisie correspond à un widget de type EditText ; dans la méthode getbytes(), il est possible d indiquer un encodage comme "ISO " ou "UTF-8" pour traduire les éventuels caractères accentués ; ligne 5 : on traduit la valeur retournée par la fonction de hashage en un entier de taille variable, BigInteger ; ligne 6 : ce grand entier est ensuite affiché sous forme hexadécimal, puis affecté au widget de type TextView appelé mon_texte.
63 44 Utilisation de clés RSA nouvellement créées 63 1 // Get an instance of the RSA key generator 2 KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); 3 // Generate the keys might take sometime on slow computers 4 KeyPair mypair = kpg.generatekeypair();
64 45 Utilisation de clés RSA déjà créées 64 Il est possible de récupérer des clés RSA à l intérieur d une application Android : les convertir dans une représentation DER, c-à-d. en notation ASN.1 ; placer les fichiers les contenant dans le répertoire res/raw ; utiliser la méthode getresources() pour obtenir des références vers ces fichiers ; utiliser la classe KeyFactory pour importer les clés. 1 KeyFactory kf = KeyFactory.getInstance("RSA"); 2 InputStream fic_cle = getresources().openrawresource(r.raw.ma_cle_publique); 3 byte[] cle_pub_asn1 = new byte[fic_cle.available()]; 4 fic_cle.read(cle_pub_asn1); 5 fic_cle.close(); 6 X509EncodedKeySpec cle_pub = new X509EncodedKeySpec(cle_pub_asn1); 7 kf.generatepublic(cle_pub); 9 fic_cle = getresources().openrawresource(r.raw.ma_cle_privee); 10 byte[] cle_priv_asn1 = new byte[fic_cle.available()]; 11 fic_cle.read(cle_priv_asn1); 12 fic_cle.close(); 13 PKCS8EncodedKeySpec cle_privee = new PKCS8EncodedKeySpec(cle_priv_asn1); 14 kf.generateprivate(cle_privee);
- TP Programmation Android - NFA024 Conservatoire National des Arts et Métiers
- TP Programmation Android - NFA024 Conservatoire National des Arts et Métiers vendredi 22 février 2013 Installation : Pour programmer des applications Android, il faut tout d abord veiller à disposer
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
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
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
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
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
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
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
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
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
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
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
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é
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
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 à
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
Introduction ANDROID
Introduction ANDROID 1 Un monde ouvert Première plateforme ouverte pour appareils mobiles.les applications natives et tierces utilisent les mêmes API. Un système d exploitation open source libre pour appareils
Développement sous Android
Développement sous Android Chapitres traités Architecture générale d'android Android est une plateforme ouverte pour le développement de mobiles (smartphones). C'est la première plateforme pour appareils
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
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
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
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
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
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:
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,
Android en action. Abdelkader Lahmadi Université de Lorraine - 2013
Android en action Abdelkader Lahmadi Université de Lorraine - 2013 Plan La boîte à outils JDK SDK Android Eclipse Plugin Android pour Eclipse Architecture et composants La main à la pâte Hello Android
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
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
Android et le Cloud Computing
Android et le Cloud Computing 1 Plan de l'exposé Rappels sur Android et le cloud Présentation de GCM Notions fondamentales de GCM Construire un projet GCM Ecrire un client GCM (récepteur GCM) Ecrire un
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
Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5
Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5 Machine virtuelle Machine virtuelle Machine virtuelle VMware ESX Network Shutdown Module
Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14
Document FAQ Supervision et infrastructure - Accès aux EXP Page: 1 / 9 Table des matières Introduction... 3 Démarrage de la console JMX...4 I.Généralités... 4 II.WebLogic... 5 III.WebSphere... 6 IV.JBoss...
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
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
WiFi Security Camera Quick Start Guide. Guide de départ rapide Caméra de surveillance Wi-Fi (P5)
#45 #46 WiFi Security Camera Quick Start Guide Guide de départ rapide Caméra de surveillance Wi-Fi (P5) #47 Start Here 1 Is this you? TECH SUPPORT CTRL ALT DEL 2 If yes, turn to page three 1 3 If not,
2X ThinClientServer Guide d utilisation
2X ThinClientServer Guide d utilisation Page 1/23 Sommaire 2x Thin Client Server Boot PXE Edition... 3 Connections Manage... 3 Connections Manage Users... 3 Connections Manage Full Desktops... 4 Connections
Table des matières Introduction... 1 1. Démarrage... 8 2. Les composants graphiques... 26
Table des matières À propos de l'auteur... x Préface... xi Avant-propos... xiv 1. Public visé et prérequis... xiv 2. Sources des exemples... xv 3. Accès aux vidéos... xv 4. URL raccourcies... xv 5. Remerciements...
WEB page builder and server for SCADA applications usable from a WEB navigator
Générateur de pages WEB et serveur pour supervision accessible à partir d un navigateur WEB WEB page builder and server for SCADA applications usable from a WEB navigator opyright 2007 IRAI Manual Manuel
Développement Android. J.-F. Couchot
Développement Android J.-F. Couchot 12 novembre 2012 Table des matières 1 Introduction à l OS embarqué Android 3 I Composants principaux d une application................................ 3 I.1 Une activité............................................
Machine virtuelle Java pour Palm TX
Machine virtuelle Java pour Palm TX Sommaire 1. Présentation de la machine virtuelle d IBM...1 2. Installation sur le Palm TX...2 2.1. Téléchargement...2 2.2. Installation...2 2.3. Application de test...2
Réalisation d un portail captif d accès authentifié à Internet 10.10.10.1
Master 1 ère année UE Réseaux avancés I Projet Réalisation d un portail captif d accès authentifié à Internet Présentation du projet Le but du projet est de mettre en place un portail captif permettant
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
Once the installation is complete, you can delete the temporary Zip files..
Sommaire Installation... 2 After the download... 2 From a CD... 2 Access codes... 2 DirectX Compatibility... 2 Using the program... 2 Structure... 4 Lier une structure à une autre... 4 Personnaliser une
Environnements de développement (intégrés)
Environnements de développement (intégrés) Introduction aux EDI, la plateforme Eclipse Patrick Labatut [email protected] http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure
Épisode 2 : Les outils de développement Alain Menu édition 2.1, septembre 2013
Département IRIS Épisode 2 : Les outils de développement Alain Menu édition 2.1, septembre 2013 Objectifs : Mise en œuvre d'une chaine de développement pour cibles Android. Table des matières 2.1.Mise
Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server
Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server Machine virtuelle Machine virtuelle Machine virtuelle VMware ESX 3 Network Shutdown Module Network
DÉVELOPPEMENT ANDROID
DÉVELOPPEMENT ANDROID ESIEE / Key Consulting Partie 2 v2.2-2012 INTENT Key Consulting INTENT Intent : intention Une Intent est une agrégation d informations, décrivant de manière abstraite une action devant
Itium XP. Guide Utilisateur
Itium XP 06/2007 - Rev. 3 1 Sommaire 1 Sommaire... 2 2 Généralités... 3 3 ItiumSysLock... 4 3.1 Enregistrer l état actuel du système... 4 3.2 Désactiver ItiumSysLock... 5 3.3 Activer ItiumSysLock... 5
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
Table des matières. 1. Installation de VMware ESXI 4... 3. 1.1. Pré-requis... 3. 1.2. Installation... 3
Table des matières 1. Installation de VMware ESXI 4.... 3 1.1. Pré-requis... 3 1.2. Installation... 3 1.2.1. Panneau de configuration du serveur ESXI... 4 1.2.2. Configuration du mot de passe «Root»....
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/
Guillaume GENS [email protected]
Guillaume GENS [email protected] Présentation 2 Genèse L'avant Fragmentation du marché l'arrivé des nouveaux Logiciel : Symbian, Windows mobile Apple Vs... Matériel : RIM, Palm Problème de Développement
1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7
Sommaire 1-Introduction 2 1-1- BPM (Business Process Management)..2 1-2 J-Boss JBPM 2 2-Installation de JBPM 3 2-1 Architecture de JOBSS JBPM 3 2-2 Installation du moteur JBoss JBPM et le serveur d application
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
La base de données XML exist. A. Belaïd
La base de données XML exist Introduction Qu est-ce-que exist? C est une base de donnée native, entièrement écrite en Java XML n est pas une base de données en soi Bien qu il possède quelques caractéristiques
Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6
Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 1 BERNIER François http://astronomie-astrophotographie.fr Table des matières Installation d un serveur HTTP (Hypertext Transfer
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»
domovea Portier tebis
domovea Portier tebis SOMMAIRE SOMMAIRE Page 1. INTRODUCTION... 2 1.1 OBJET DU DOCUMENT... 2 2. VIDEO UNIQUEMENT (SANS SON), BASE SUR CAMERA IP... 3 2.1 ARCHITECTURE... 3 2.2 CONFIGURATION... 4 2.2.1 Creation
Alfstore workflow framework Spécification technique
Alfstore workflow framework Spécification technique Version 0.91 (2012-08-03) www.alfstore.com Email: [email protected] Alfstore workflow framework 2012-10-28 1/28 Historique des versions Version Date
Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - [email protected]
Cours Plugin Eclipse Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - [email protected] 1 Qui suis-je? Ancien étudiant de Jussieu - Paris VI Diplomé du Master Technologies
Tutoriel Android. Pour démarrer la programmation d'applications Android
Tutoriel Android Pour démarrer la programmation d'applications Android Remarque préalable Comme il est impossible de traiter tous les aspects d'android, seulement quelques uns seront présentés. De plus
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
De Java à Android version 0.1
De Java à Android version 0.1 David Roche De Java à Andoid 1 Ce document est publié sous licence Creative Commons Vous êtes libres : de reproduire, distribuer et communiquer cette création au public de
La base de données dans ArtemiS SUITE
08/14 Vous préférez passer votre temps à analyser vos données plutôt qu à chercher un fichier? La base de données d ArtemiS SUITE vous permet d administrer et d organiser confortablement vos données et
TP1. Outils Java Eléments de correction
c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par
Instructions Mozilla Thunderbird Page 1
Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Ce manuel est écrit pour les utilisateurs qui font déjà configurer un compte de courrier électronique dans Mozilla Thunderbird et
Tutorial Terminal Server sous
Tutorial Terminal Server sous réalisé par Olivier BOHER Adresse @mail : [email protected] Site Internet : http://xenon33.free.fr/ Tutorial version 1a Page 1 sur 1 Index 1. Installation des services Terminal
Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David
Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server Sébastien Boutard Thomas David Le plan de la présentation Petit retour sur les environnements de développement ArcGIS Server
avast! EP: Installer avast! Small Office Administration
avast! EP: Installer avast! Small Office Administration Comment installer avast! Small Office Administration? avast! Small Office Administration est une console web qui permet la gestion a distance de
CSI351 Systèmes d exploitation Instructions pour rouler Linux avec Virtual PC dans la salle de labo 2052
CSI351 Systèmes d exploitation Instructions pour rouler Linux avec Virtual PC dans la salle de labo 2052 Une machine virtuelle Linux, appelé SiteDev (version 9 de Redhat) peut être roulé avec Virtual PC
Construire des plug-ins pour SAS Management Console SAS 9.1
Construire des plug-ins pour SAS Management Console SAS 9.1 Janvier 2005 Sommaire 1 INTRODUCTION... 3 1.1 OBJECTIFS... 3 1.2 PERIMETRE... 3 2 LES COMPOSANTS DE SAS MANAGEMENT CONSOLE... 4 3 LA CONSTRUCTION
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
Utilisation de GCM (Google Cloud Messaging) pour Android. Partie préliminaire éventuelle : Création d'un AVD lisant GCM
Utilisation de GCM (Google Cloud Messaging) pour Android Ce TP est inspiré de : http://android.amolgupta.in/2012/07/google-cloud-messaging-gcm-tutorial.html On va écrire deux parties. Une application Android
Pré-requis pour les serveurs Windows 2003, Windows 2008 R2 et Windows 2012
Fiche technique AppliDis Pré-requis pour les serveurs Windows 2003, Windows 2008 R2 et Windows 2012 Fiche IS00812 Version document : 1.08 Diffusion limitée : Systancia, membres du programme Partenaires
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
Annexe Android Studio
1 Annexe Android Studio 2 Introduction «Eclipse» était l'outil de développement le plus utilisé pour développer des applications Android jusqu à mai 2013. Cet outil était interfacé avec le plug-in «ADT»
Windows 7 - Installation du client
Windows 7 - Installation du client 1 - Présentation Windows 7 est un système d exploitation client basé sur le noyau NT 6.1, disponible en six versions, commercialisé depuis octobre 2009. Résumé des fonctionnalités
Vanilla : Virtual Box
Vanilla : Virtual Box Installation Guide for Virtual Box appliance Guide d'installation de l'application VirtualBox Vanilla Charles Martin et Patrick Beaucamp BPM Conseil Contact : [email protected],
Accès aux ressources informatiques de l ENSEEIHT à distance
Ecole Nationale Supérieure d Électrotechnique, d Électronique, d Informatique, d Hydraulique et des Télécommunications Accès aux ressources informatiques de l ENSEEIHT à distance Jean-François GINESTE,
Atelier Le gestionnaire de fichier
Chapitre 12 Atelier Le gestionnaire de fichier I Présentation Nautilus est un gestionnaire de fichiers pour l environnement de bureau Gnome. Il offre toutes les fonctions de gestion de fichier en local
Bluetooth pour Windows
Bluetooth pour Windows Mise en route 2006 Hewlett-Packard Development Company, L.P. Microsoft et Windows sont des marques déposées de Microsoft Corporation aux Etats-Unis. Bluetooth est une marque détenue
TechSoftware Présentations
TechSoftware Présentations Philippe THOMAS Spécialiste Supervision chez Tivoli [email protected] 2 Mes Sessions à TechSoftware TIV02 - Comment construire ses rapports avec BIRT pour les solutions Tivoli
FileMaker Server 14. Guide de démarrage
FileMaker Server 14 Guide de démarrage 2007-2015 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker et FileMaker Go sont des marques
Manuel de l utilisateur. Soft-phone - Client VoIP 3CX Version 6.0
Manuel de l utilisateur Soft-phone - Client VoIP 3CX Version 6.0 Copyright 2006-2008, 3CX Ltd. http:// E-mail: [email protected] Les informations contenues dans ce document sont sujettes à modifications sans
Création d une application Android (APPInventor)
1. Matériel et logiciel Vous pouvez avec le logiciel App Inventor créer très facilement une application pour votre téléphone sous «Android». Vous devez pour cela : 1. Créer un compte Gmail sous Google
Caractéristiques principales:
Powered by AndoridTM4.1 Jelly Bean Archos introduit sa nouvelle tablette ChildPad: l ARCHOS 80 CHILDPAD. Equipée de la dernière version d Android Jelly Bean, cette tablette de 8 a spécialement été conçue
SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8
SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8 INTRODUCTION Bonjour à tous; Aujourd hui je publie une nouvelle version de l adaptation de la Sync Framework Toolkit,
Les différentes méthodes pour se connecter
Les différentes méthodes pour se connecter Il y a plusieurs méthodes pour se connecter à l environnement vsphere 4 : en connexion locale sur le serveur ESX ; avec vsphere Client pour une connexion sur
Windows 8 : une petite révolution? 9. Démarrer Windows 8 10. Accéder au Bureau à la connexion 13. Ouvrir ou activer une nouvelle session 13
Généralités Windows 8 : une petite révolution? 9 Démarrer Windows 8 10 Accéder au Bureau à la connexion 13 Ouvrir ou activer une nouvelle session 13 Utiliser les fonctionnalités tactiles 14 Utiliser l
Oracle Developer Suite 10g. Guide de l installation. Vista & Seven
TRAVAIL RÉALISÉ PAR ABED ABDERRAHMANE Oracle Developer Suite 10g Guide de l installation 10g Release 2 (10.1.2) pour Windows Vista & Seven www.oraweb.ca Page 1 TABLE DES MATIÈRES : PARTIE 1 : CONCEPTS
Mode d emploi. Félicitations pour votre achat de la tablette Viewpia TB-107. Nous vous remercions pour votre confiance d acheter notre produit!
Mode d emploi Félicitations pour votre achat de la tablette Viewpia TB-107. Nous vous remercions pour votre confiance d acheter notre produit! Notre tablette est constamment améliorée et mise à jour, aussi
Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée Virtual Server de Microsoft
Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée Virtual Server de Microsoft Virtual Server 2005 R2 Network Shutdown Module Système Principal (hôte) Virtual Server
Introduction à Eclipse
Introduction à Eclipse Eclipse IDE est un environnement de développement intégré libre (le terme Eclipse désigne également le projet correspondant, lancé par IBM) extensible, universel et polyvalent, permettant
Programmation mobile avec Android
Programmation mobile avec Android Pierre Nerzic - [email protected] février-mars 2015 Abstract Il s agit des transparents du cours mis sous une forme plus facilement imprimable et lisible.
MITEL UNIFIED COMMUNICATOR ADVANCED
MITEL UNIFIED COMMUNICATOR ADVANCED À propos d UC Advanced Mitel Unified Communicator (UC) Advanced est un produit de communication logiciel intégré avec les fonctions de gestion d'appels avancées de Mitel
Guide d installation logicielle
Guide d installation logicielle Drivers USB pour Windows XP/2000 X-Edit Editor/Librarian pour Windows XP/2000 Nous tenons à vous remercier d avoir choisi ce processeur DigiTech USB. Ce guide d installation
bbc Launch Pad Juillet 2011 Version 10.0
bbc Configuration d Adobe Digital Enterprise Platform Document Services - Launch Pad 10.0 Guide de l administrateur et du développeur Launch Pad Juillet 2011 Version 10.0 Mentions juridiques Pour plus
Outils en ligne de commande
5 Outils en ligne de commande De nombreuses astuces importantes vous demanderont de quitter vcenter et de passer sur la console. Dans ce chapitre, nous examinerons, entre autres, plusieurs outils en ligne
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
MITEL MICOLLAB CLIENT
MITEL MICOLLAB CLIENT À propos de MiCollab Client MiCollab Client est un produit de communication logiciel intégré avec les fonctions de gestion d'appels avancées de MiVoice Business et MiVoice Office
