Rapport de Projet de Fin d Année Master en systèmes et réseaux

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

Download "Rapport de Projet de Fin d Année Master en systèmes et réseaux"

Transcription

1 UNIVERSITÉ SAINT- JOSEPH Faculté d Ingénierie Institut National de la Communication et de l'information Rapport de Projet de Fin d Année Master en systèmes et réseaux Localisation d un mobile et identification de l opérateur/fournisseur d accès Réalisé par : Encadré par : Antoine MOHANNA Dr. Marc IBRAHIM 1

2 Sommaire Remerciements Page 3 Introduction.Page 4 Introduction sur Eclipse..Page 5 Travail Effectue..Page 8 o Objectif 1...Page 8 o Objectif 2-3 Page 10 o Objectif 4...Page 13 o Objectif 5...Page 15 Conclusion..Page 19 Annexes..Page 20 2

3 Remerciements Au terme de ce travail, je tiens à exprimer ma gratitude et mes remerciements pour toutes les personnes qui ont contribué à sa réalisation. Je tiens tout d abord à remercier Dr Marc IBRAHIM, mon encadreur à l Institut National de Communication et de l Information, pour son aide, ses conseils, son encouragement et son disponibilité dans ce projet. Je remercie également M. Hadi SAWAYA, responsable et directeur de l INCI, pour son aide à se familiariser avec ce projet. Je présente mes sincères remerciements à tous mes enseignants à l INCI. Mes profonds remerciements pour les membres du jury, qui ont accepté d évaluer ce travail. 3

4 Introduction au Projet Ce projet fait partie d un projet collaboratif lancé à l ESIB, et qui consiste à créer un observatoire de l Internet au Liban. Cet observatoire collectera la qualité de service de l Internet perçue par un ensemble d usagers mobiles sur le territoire libanais et permettra de générer des indicateurs de QoS par opérateur/isp et par localisation géographique. Les mesures seront réalisées par des agents installés sur les mobiles des usagers participants au projet, effectuant périodiquement des mesures passives et/ou actives afin de quantifier le plus fidèlement possible l expérience internet de l usager. Ces mesures seront remontées vers un serveur central qui va traiter, stocker et analyser toutes ces données. Les résultats des analyses seront disponibles via un site Web offrant plusieurs formes de visualisation. Afin d avoir la distribution géographique de la QoS perçue par les usagers, il est primordial que le mobile qui effectue la mesure à un instant donne, identifié sa position géographique via GPS si possible. Mais en Indoor, le GPS peut ne pas fonctionner ce qui nécessite de trouver d autres méthodes pour estimer la position courante du mobile. En plus, la QoS doit être reliée à l opérateur ou ISP auquel est rattaché le mobile au moment de la mesure. Il faut donc savoir identifier cette entité. Ainsi, plusieurs taches seront effectués dans ce projet afin d accomplir l objectif de localisation : 1. Extraction logicielle des coordonnées GPS du mobile 2. Estimation de la position en absence du GPS 3. Identification de l opérateur mobile 4. Elaboration des méthodes d identifications de l ISP quand le mobile est connecté via Wifi 5. Groupement de tous les paramètres de localisation et d identification du fournisseur en un seul objet A noter que l application sera développée sur Android, en utilisant un environnement de développement appelé Eclipse. 4

5 Introduction sur Eclipse Dans la programmation informatique, Eclipse est un environnement de développement intégré multi-langue (IDE) comprenant un espace de travail de base et un extensible plug-in système de personnalisation de l'environnement. Il est écrit en Java. Il peut être utilisé pour développer des applications en Java ainsi que d'autres langages de programmation dont Ada, C, C + +, COBOL, Fortran, Haskell, JavaScript, Perl, PHP, Python, R, Ruby,Scala, Clojure, Groovy, Scheme, et Erlang.Eclipse peut également être utilisé pour développer des packages pour le logiciel Mathematica. Les environnements de développement comprennent l'eclipse Java Development Tools (JDT) pour Java et Scala, Eclipse CDT pour C / C + + et PHP pour Eclipse PDT, entre autres. Le code de base initial provient d'ibm VisualAge. Le kit développement logiciel d Eclipse (SDK), qui inclut les outils de développement Java, est destiné aux développeurs Java. Les utilisateurs peuvent étendre ses capacités en installant des plug-ins écrit pour la plate-forme Eclipse, tels que des boîtes à outils de développement pour d'autres langages de programmation, et peuvent écrire et apporter leur propre modules plug-in. Publié selon les termes de la licence publique Eclipse, Eclipse SDK est gratuit et ouvert (même si elle est incompatible avec la GNU General Public License). Il était l'un des premiers environnements de développement pour s'exécuter sous GNU Classpath et il fonctionne sans problèmes sous IcedTea. Plusieurs versions de Java ont été publiées, de l Eclipse Callisto lancé en 2006, à l Eclipse Juno de 2012, qui sera utilisé dans ce projet. En créant an nouveau «Android Application Project» avec plusieurs sous dossiers, un package sous le nom «com.example.nomdelapplication» sera aussi créé. Les packages sont utilisés dans Java pour prévenir les conflits de noms, pour contrôler l'accès, pour rendre la recherche / localisation et l'utilisation des classes, interfaces, énumérations et les annotations facile. Un package peut être défini comme un regroupement de types connexes (classes, interfaces, énumérations et les annotations) assurant la protection d'accès et le nom de gestion de l'espace. Nous serons intéressés principalement à 3 fichiers : le fichier.java créé sous le dossier src, le fichier activity_main.xml sous le dossier res/layout et le fichier AndroidManifest.xml. Fichier.java : C est la ou le code java sera développé en créant des classes java. C est à partir d une classe que des objets individuels sont créés. 5

6 Une classe peut contenir plusieurs types de variables : 1. Les variables locales : les variables définies à l'intérieur des méthodes, des constructeurs ou des blocs sont appelées variables locales. La variable sera déclarée et initialisée dans la méthode et la variable sera détruit lorsque la méthode est terminée. 2. Les variables d'instance : Les variables d'instance sont des variables au sein d'une classe, mais en dehors de toute méthode. Ces variables sont instanciées lorsque la classe est chargée. Les variables d'instance peuvent être accessibles à partir de l'intérieur de toute méthode, constructeur ou des blocs de cette classe particulière. 3. Les variables de classe : Les variables de classe sont des variables déclarées dans une classe, en dehors de toute méthode, avec le mot-clé static. Lors de la discussion sur les classes l'un des sous sujet le plus important serait les constructeurs. Chaque classe possède un constructeur. Si nous ne rédigeons pas explicitement un constructeur pour une classe le compilateur java construit un constructeur par défaut pour cette classe. Chaque fois qu'un nouvel objet est créé au moins un constructeur sera invoqué. La règle principale des constructeurs, c'est qu'ils doivent avoir le même nom que la classe. Une classe peut avoir plusieurs constructeurs. Activity_main.xml : L'un des principaux avantages de déclarer une interface en XML est la possibilité de garder l'interface utilisateur et le comportement de l application séparée, donnant la liberté de modifier la présentation de l application sans perturber son fonctionnement. Dans ce fichier, on peut faire le design de zéro, définir l'élément racine, préciser la taille et les paramètres de largeur, et ajouter certains éléments de l'interface utilisateur. Exemple : <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <Button android:id="@+id/button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/button" /> <TextView android:id="@+id/outputtxt" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textcolor="#cc0033" android:textsize="16sp" android:textstyle="bold" /> </LinearLayout> 6

7 AndroidManifest.xml: Chaque application doit avoir un fichier AndroidManifest.xml dans son répertoire racine. Le manifest contient des informations essentielles sur l'application pour le système Android, des informations que le système doit avoir avant de pouvoir exécuter n'importe quel code de l'application. Le fichier Manifest fait ce qui suit: 1. Il nomme le package Java pour l'application. Le nom du package est utilisé comme identifiant unique de l'application. 2. Il décrit les composants de l'application - les activités, les services, les récepteurs de radiodiffusion et les fournisseurs de contenu que l'application est composée. Il nomme les classes qui implémentent chacune des composantes et publie leurs capacités (par exemple, les messages d'intention qu'ils peuvent manipuler). Ces déclarations laissent le système Android savoir ce que les composants sont et dans quelles conditions ils peuvent être lancés. 3. Il détermine les processus qui animeront les composants de l'application. 4. Il déclare les autorisations, la demande que doit avoir pour accéder à des parties protégées de l'api et d'interagir avec d'autres applications. 5. Elle déclare également les autorisations sont nécessaires pour avoir afin d'interagir avec les composants de l'application. Ainsi, le AndroidManifest.xml sera mis a jour par le programmeur pour, principalement, initialiser des permissions tel que Access_Coarse_Location, Access_Fine_Location, Internet, Access_Network_State et Read_Phone_State qui seront utilises dans ce projet. Exemple : <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="com.example.locationfromgps" android:versioncode="1" android:versionname="1.0" > <uses-sdk android:minsdkversion="8" android:targetsdkversion="17" /> <uses-permission android:name="android.permission.access_coarse_location"/> <uses-permission android:name="android.permission.access_fine_location"/> <uses-permission android:name="android.permission.internet"/> <uses-permission android:name="android.permission.access_network_state"/> <uses-permission android:name="android.permission.read_phone_state"/> <application android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/apptheme" > <activity android:name="com.example.gpsjartest.jartest" 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> 7

8 Travail Effectué Objectif 1 : Extraction logicielle des coordonnées GPS du mobile Le Global Positioning System (GPS) que l'on peut traduire en français par «système de localisation mondial» ou, plus proche du sigle d'origine, «Guidage Par Satellite» est un système de géo localisation fonctionnant au niveau mondial. Le GPS comprend au moins 24 satellites tournant à km d'altitude. Un récepteur GPS qui capte les signaux d'au moins quatre satellites équipés de plusieurs horloges atomiques peut, en calculant les temps de propagation de ces signaux entre les satellites et lui, connaître sa distance par rapport à ceux-ci et, par trilatération, situer précisément en trois dimensions n'importe quel point placé en visibilité des satellites GPS, avec une précision de 3 à 50 mètres pour le système standard. Le GPS est ainsi utilisé pour localiser des véhicules roulants, des navires, des avions, des missiles et même des satellites évoluant en orbite basse. Ce système va être utilisé dans ce projet pour localiser un usager mobile en tirant sa longitude et sa latitude. Les classes principales qui seront utilisées pour développer un tel code sont android.location.location, android.location.locationlistener et android.location.locationmanager. Android.Location.location est une classe de données représentant un emplacement géographique. Un emplacement peut consister en une latitude, longitude, horodatage, et d'autres informations telles que les roulements, l'altitude et la vitesse. LocationListener est utilisé pour recevoir des notifications du LocationManager lorsque l'emplacement a été modifié. LocationManager fournit un accès à des services de localisation du système. Ces services permettent aux applications d'obtenir des mises à jour périodiques de la situation géographique 8

9 de l'appareil, ou de tirer une intention lorsque l'appareil entre dans la proximité d'un lieu géographique donné. Partie du Code développé : // Getting LocationManager object locationmanager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); // Getting the name of the provider provider = locationmanager.gps_provider; if(provider!=null &&!provider.equals("")){ // Get the location from the given provider Location location = locationmanager.getlastknownlocation(provider); locationmanager.requestlocationupdates(provider, 20000, 1, this); if(location!=null) // Updating Location when changed onlocationchanged(location); else Toast.makeText(getBaseContext(), "Location can't be retrieved", Toast.LENGTH_SHORT).show(); else{ Toast.makeText(getBaseContext(), "No Provider Found", Toast.LENGTH_SHORT).show(); Les permissions exigées pour ce code seront ACCESS_FINE_LOCATION et INTERNET. Alors, le GPS est basé sur les estimations des satellites émettant des signaux vers le récepteur. Un récepteur GPS (en général) a besoin des signaux d'au moins 4 satellites pour pouvoir calculer sa position. Les niveaux de signal pour la bande L1 dans des conditions de ciel ouvert peut atteindre environ -130dBm. Les récepteurs commerciaux, tels que ceux intégrés dans les téléphones mobiles, sont capables de suivre les satellites jusqu'à -160dBm. Sous ce seuil, le récepteur n'est pas capable d'utiliser le signal. Cette marge de 30 db permet une certaine atténuation causée par des obstacles tels que les fenêtres en verre et les murs légers, mais plusieurs immeubles masquent complètement les signaux de presque toutes les directions, ce qui rend GPS totalement indisponible. Et même si l'atténuation permet au récepteur d'utiliser les signaux pour calculer sa position, la précision obtenue ne sera probablement pas suffisante pour notre application comme la précision est dégradée par l'atténuation du signal. Ainsi, un autre type de localisation est exigé pour rendre la position des usagers plus précise : on parle d une localisation par cellules GSM d une part, et l utilisation d un service Google pour déterminer approximativement la latitude et la longitude d un mobile d une part. 9

10 Objectif 2-3: Estimation de la position en absence du GPS et Identification de l opérateur mobile Solution 1 : Estimation de la position en utilisant le service de NETWORK_PROVIDER NETWORK_PROVIDER utilise les hotspots WiFi et les tours cellulaires connus par Android afin de localiser approximativement un utilisateur en longitude et latitude. Lorsque le fournisseur d'emplacement est interrogé, les ID des hotspots WiFi et les tours cellulaires dans la zone sont envoyés via Internet à Google Location Server, une base de données avec des informations de localisation sur les hotspots WiFi et les tours cellulaires. Google Location Server renvoie une localisation approximative de l'utilisateur. Les données proviennent d'une combinaison de cellules et de l'information de hotspot WiFi, et ne peut être obtenue que lorsque l'appareil peut accéder à l'internet pour interroger le Google Location Server. La précision des données est spécifiée quelque part entre m en fonction de l'information disponible. Les Hotspots WiFi permettent une précision de m, tandis que les tours cellulaires ne permettent qu une précision supérieure à 500 m. Cela signifie que le fournisseur de réseau sera très imprécis dans des zones sans hotspots WiFi. Inversement, plus les Hotspots et les tours cellulaires sont dans la zone, plus la précision est grande. Un tableau comparatif entre GPS_PROVIDER et NETWORK_PROVIDER GPS_PROVIDER NETWORK_PROVIDER Plus Précis. Détermine la location d un utilisateur en utilisant les tours cellulaires et signaux Wifi Il fonctionne uniquement à l'extérieur Fournit des informations sur l'emplacement d'une manière qui fonctionne à l'intérieur et à l'extérieur Il consomme rapidement l'énergie de la batterie Consomme moins d'énergie de la batterie Réponse de localisation lente Réponse de localisation rapide Pour implémenter ce service, on doit juste remplacer GPS_PROVIDER du code de localisation GPS par NETWORK_PROVIDER. provider = locationmanager.network_provider; Dans ce qui suit, un code sera détaillé en expliquant comment utiliser les deux providers en alternance. Malgré la plus grande précision que le GPS offre, toutefois le service Google présente une meilleure disponibilité. 10

11 Solution 2 : Estimation de la position dans une cellule GSM Un système de radiotéléphonie utilise une liaison radioélectrique entre le terminal portatif et le réseau téléphonique. La liaison radio entre le téléphone mobile et le réseau doit être de qualité suffisante, ce qui nécessite la mise en place d'un ensemble de stations de base (BTS) sur l'ensemble du territoire que l'on souhaite couvrir, de telle sorte que le terminal soit toujours à moins de quelques kilomètres de l'une d'entre elles. Ce que l'on appelle une cellule, c'est la surface sur laquelle le téléphone mobile peut établir une liaison avec une station de base déterminée. Le principe consiste à diviser une région en un certain nombre de cellules desservies par un relais radioélectrique (la BTS) de faible puissance, émettant à des fréquences différentes de celles utilisées sur les cellules voisines. Ces cellules doivent être contiguës sur la surface couverte. Ce système GSM peut ainsi être utilisée pour localiser un usager mobile dans une cellule, comme chaque cellule aura sa propre identité et sera unique chez chaque opérateur mobile. 11

12 Pour développer un tel code, on utilisera deux classes principales : android.telephony.telephonymanager et android.telephony.gsm.gsmcelllocation. android.telephony.telephonymanager permet d'accéder à l'information sur les services téléphonie de l'appareil. Les applications peuvent utiliser les méthodes de cette classe afin d'accéder à certains types de renseignements sur les abonnés. Les applications peuvent également enregistrer un Listener pour recevoir la notification de changements d'état de téléphonie. android.telephony.gsm.gsmcelllocation représente l'emplacement de cellule sur un téléphone GSM. Partie du Code développé : //retrieve a reference to an instance of TelephonyManager TelephonyManager telephonymanager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); GsmCellLocation celllocation = (GsmCellLocation)telephonyManager.getCellLocation(); // Defining LAC, CID, MNC and MCC String networkoperator = telephonymanager.getnetworkoperator(); String mcc = networkoperator.substring(0, 3); String mnc = networkoperator.substring(3); String operator = telephonymanager.getsimoperatorname(); int cid = celllocation.getcid(); int lac = celllocation.getlac(); Les permissions exigées pour ce code seront ACCESS_COARSE_LOCATION et READ_PHONE_STATE. Ainsi, en utilisant getsimoperator() et getcelllocation(), on a pu tirer l identité de la cellule oú se trouve l usager mobile ainsi que le nom de l opérateur fournissant le réseau GSM à cet usager. 12

13 Objectif 4 : Elaboration des méthodes d identifications de l ISP quand le mobile est connecté via Wifi Un fournisseur d'accès à internet est un organisme offrant une connexion à Internet. Le raccordement d un ISP à l'utilisateur peut se faire au travers d'une boucle locale (en cuivre, en fibre optique ou en radio). Cette boucle locale est généralement gérée par un opérateur spécifique. Plusieurs ISP opèrent sur le territoire libanais : OGERO, SODETEL, CYBERIA, WISE, TERRANET etc., et plusieurs sites Web offrent le service de l identification de ces ISP tel que ou Ainsi, ces sites seront utiles pour notre application afin d identifier le fournisseur de chaque usager. Notre code consiste à accéder à l un de ces sites et tirer le nom de l ISP. NB : Le URL utilisé sera Les classes principales utilisées pour développer un tel code sont nombreuses, parmi elles java.io.inputstream, java.net.httpurlconnection, java.net.url, java.util.regex.matcher, java.util.regex.pattern etc. Partie du Code développé : // Define the URL from which we re extracting the ISP name public static final String URL = " // Retrieving URL output private class GetXMLTask extends AsyncTask<String, Void, String> { protected String doinbackground(string... urls) { String output = null; for (String url : urls) { output = getoutputfromurl(url); return output; // Retrieving The ISP name private String getoutputfromurl(string url) { StringBuffer output = new StringBuffer(""); int x =1;//ISP name included here //String StartDelemiter=">"; //String EndDelemiter="<"; try { InputStream stream = gethttpconnection(url); LineNumberReader lnr = new LineNumberReader(new InputStreamReader(stream)); String line = ""; int lineno; for (lineno = 1; lineno < 90; lineno++) { // When reached the line where ISP name exists if (lineno == x) { line = lnr.readline(); //output.append(line); //getting the ISP name between two defined caracters 13

14 else Pattern p = Pattern.compile(">(.*?)<"); Matcher m = p.matcher(line); if (m.find()) { output.append(m.group(1)); // => "isp" lnr.readline(); catch (IOException e1) { e1.printstacktrace(); return output.tostring(); // Makes HttpURLConnection and returns InputStream private InputStream gethttpconnection(string urlstring) throws IOException { InputStream stream = null; URL url = new URL(urlString); URLConnection connection = url.openconnection(); try { HttpURLConnection httpconnection = (HttpURLConnection) connection; httpconnection.setrequestmethod("get"); httpconnection.connect(); if (httpconnection.getresponsecode() == HttpURLConnection.HTTP_OK) { stream = httpconnection.getinputstream(); catch (Exception ex) { ex.printstacktrace(); return stream; Ce code va tirer la source code du site destinataire et va lire ce fichier ligne par ligne, et c est à travers une commande IF qu il va concaténer une ligne bien précise (ou se trouve le nom de l ISP) et tirer la chaine désiré entre deux caractères différents, défini par le programmeur. 14

15 Objectif 5 : Groupement de tous les paramètres de localisation et d identification du fournisseur en un seul objet Cet objectif va faciliter le travail d un autre programmeur qui s intéresse seulement aux variables tirées par ces codes, mais pas les codes JAVA (Longitude, latitude, cellid, opérateur et ISP). Afin de passer seulement ces variables, on doit grouper ces paramètres et leurs fonctions dans un seul projet, faire un EXPORT de ce projet dans un JAR file qui sera passé au programmeur. Ce dernier doit intégrer ce JAR file dans la librairie de son propre projet (Right-Click sur le projet -> Build Path -> Configure Build Path -> Librairies -> Add External JARs), et puis il sera capable d appeler ces fonctions et tirer les valeurs qu il désire, en faisant un simple import dans son projet. Pour faire cela, un changement a été nécessaire sur les codes déjà développés, implémenter des fonctions afin d appeler chacune pour tirer les valeurs différentes. Code mis à jour : Une fonction getsimoperator() a été créer qui rend une valeur String contenant le nom de l opérateur GSM. public String getsimoperator() { TelephonyManager telephonymanager = (TelephonyManager)gContext.getSystemService(Context.TELEPHONY_SERVICE); String operator = telephonymanager.getsimoperatorname(); return operator; L initialisation du CellLocation sera faite dans une fonction getcelllocation alors que l ID de la cellule auquel est connecté l usager mobile sera tiré d une fonction differente CellLacLocation qui va rendre une valeur String contenant l ID de cette cellule ainsi que le LAC. public GsmCellLocation getcelllocation() { TelephonyManager telephonymanager = (TelephonyManager)gContext.getSystemService(Context.TELEPHONY_SERVICE); GsmCellLocation CellLocation = (GsmCellLocation)telephonyManager.getCellLocation(); return CellLocation; public String CellLacLocation(GsmCellLocation CellLocation){ String cidlacstring; if (CellLocation!= null) { int cid = CellLocation.getCid(); int lac = CellLocation.getLac(); cidlacstring = "CellID:" + cid + "\nlac:" + lac; else { cidlacstring="no Cell Location Available"; return cidlacstring; 15

16 Concernant la localisation GPS, et similairement à la localisation GSM, l initialisation sera faite dans une fonction getlocation() alors que les longitudes et les latitudes seront tirées d une autre fonction updatewithnewlocation() qui va retourné une valeur String de ces valeurs. De plus, on doit implémenter GPS_PROVIDER et NETWORK_PROVIDER en même temps, pour assurer à la fois une précision et une disponibilité. Alors, une commande IF va être créée. Si une connexion GPS est valable, et on peut se localiser, alors un se localise en utilisant GPS_PROVIDER ; mais dans un cas contraire alors on utilisera NETWORK_PROVIDER. public Location getlocation(){ String provider = null; LocationManager locationmanager; Location gps_loc=null; String context = Context.LOCATION_SERVICE; locationmanager = (LocationManager)gContext.getSystemService(context); gps_loc=locationmanager.getlastknownlocation(locationmanager.gps_provider); try{gps_enabled=locationmanager.isproviderenabled(locationmanager.gps_provider);catc h(exception ex){ try{network_enabled=locationmanager.isproviderenabled(locationmanager.network_provide R);catch(Exception ex){ if(gps_enabled && gps_loc!= null){ provider = LocationManager.GPS_PROVIDER; else{ provider = LocationManager.NETWORK_PROVIDER; Location location = locationmanager.getlastknownlocation(provider); locationmanager.requestlocationupdates(provider, 20000, 1, this); return location; public String updatewithnewlocation(location location) { String latlongstring; if (location!= null){ double lat = location.getlatitude(); double lng = location.getlongitude(); latlongstring = "Latitude:" + lat + "\nlongitude:" + lng; else{ latlongstring = "No Location available"; return latlongstring; En addition, le programmeur va s intéresser si le mobile de l usager a été localiser par GPS ou NETWORK, alors, une fonction getprovider() supplémentaire va être développer qui va rendre une de deux valeur : gps en cas de localisation par GPS_PROVIDER et network en cas de localisation NETWORK_PROVIDER. 16

17 public String getprovider(location location){ String provider = null; LocationManager locationmanager; Location gps_loc=null; String context = Context.LOCATION_SERVICE; locationmanager = (LocationManager)gContext.getSystemService(context); gps_loc=locationmanager.getlastknownlocation(locationmanager.gps_provider); if(gps_enabled && gps_loc!= null ){ provider = LocationManager.GPS_PROVIDER; else{ provider = LocationManager.NETWORK_PROVIDER; return provider; Et bien sur la fonction getoutputfromurl() va être utiliser pour tirer l identité de l ISP. public String getoutputfromurl(string url) { StringBuffer output = new StringBuffer(""); int x =1; //String StartDelemiter=">"; //String EndDelemiter="<"; try { InputStream stream = gethttpconnection(url); LineNumberReader lnr = new LineNumberReader(new InputStreamReader(stream)); String line = ""; int lineno; for (lineno = 1; lineno < 90; lineno++) { if (lineno == x) { line = lnr.readline(); //output.append(line); Pattern p = Pattern.compile(">(.*?)<"); Matcher m = p.matcher(line); if (m.find()) { output.append(m.group(1)); // => "isp" else lnr.readline(); catch (IOException e1) { e1.printstacktrace(); return output.tostring(); Puis, tout ce qui est demandé du programmeur c est d appeler les fonctions de la manière suivante : Initialisation de l activité : LocationMobileUser MU = new LocationMobileUser (this); 17

18 Appel de la fonction getlocation(): Location location = MU.getLocation(); Initialisation de location de la cellule: GsmCellLocation CellLocation = MU.getCellLocation(); Définition de l URL d ou va être tirée le nom de l ISP: String URL = LocationMobileUser.URL; Initialisation de la classe utilise pour la définition de l ISP: LocationMobileUser.GetXMLTask xmlp = MU.new GetXMLTask(); Définition des String qui vont contenir les différentes valeurs de localisation: String isp = xmlp.getoutputfromurl(url); String latlongstring = MU.updateWithNewLocation(location); String cidlacstring = MU.CellLacLocation(CellLocation); String operator = MU.getSimOperator(); String provider = MU.getProvider(); 18

19 Conclusion Dans le cadre de mon projet, je devais réaliser une application Android pour la localisation d un mobile et identification de l opérateur/fournisseur d accès. Dans un premier temps, quelques recherches ont été nécessaires pour s introduire à Eclipse et se familiariser avec ce programme. Ensuite j ai commencé par le développement de l application en programmant une application pour chaque objectif. Enfin, dernier objectif demandé, j ai groupé toute les applications développées en un seul projet, et mis à jour les codes pour être capable de l utiliser comme référence pour des futurs projets. A travers les différentes exigences imposées par le cahier des charges ; un résultat final a été accompli qui est le suivant : le développement d une application android qui permet la localisation d un mobile par longitude et latitude, cellule GSM, et l identification de l operateur mobile ainsi que le fournisseur d accès tout en regroupant ces paramètres en un seul objet. Ce projet m a permis d appliquer mes connaissances en programmation et en langage Java et d en développer une application qui se révèle aujourd hui d intérêt général au vu de l augmentation des marchés des applications sur les différentes plateformes des mobiles. Comme d'autres applications Android, mon application peut être aisément améliorée. En effet, grâce à son aspect ouvert, Android offre l'opportunité de créer des logiciels mobiles innovants et révolutionnaires en encourageant les développeurs à puiser dans leur imagination et à mobiliser toutes leurs compétences pour un meilleur de cette plateforme. 19

20 Annexes Annexe 1: Application qui affiche les coordonnées GPS import android.app.activity; import android.content.context; import android.location.criteria; import android.location.location; import android.location.locationlistener; import android.location.locationmanager; import android.os.bundle; import android.view.menu; import android.widget.textview; import android.widget.toast; public class MainActivity extends Activity implements LocationListener{ LocationManager locationmanager ; String provider; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); // Getting LocationManager object locationmanager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); // Creating an empty criteria object Criteria criteria = new Criteria(); // Getting the name of the provider that meets the criteria provider = locationmanager.getbestprovider(criteria, false); if(provider!=null &&!provider.equals("")){ // Get the location from the given provider Location location = locationmanager.getlastknownlocation(provider); locationmanager.requestlocationupdates(provider, 20000, 1, this); if(location!=null) onlocationchanged(location); else Toast.makeText(getBaseContext(), "Location can't be retrieved", Toast.LENGTH_SHORT).show(); else{ Toast.makeText(getBaseContext(), "No Provider Found", Toast.LENGTH_SHORT).show(); 20

21 public boolean oncreateoptionsmenu(menu menu) { getmenuinflater().inflate(r.menu.activity_main, menu); return true; public void onlocationchanged(location location) { // Getting reference to TextView tv_longitude TextView tvlongitude = (TextView)findViewById(R.id.tv_longitude); // Getting reference to TextView tv_latitude TextView tvlatitude = (TextView)findViewById(R.id.tv_latitude); // Setting Current Longitude tvlongitude.settext("longitude:" + location.getlongitude()); // Setting Current Latitude tvlatitude.settext("latitude:" + location.getlatitude() ); public void onproviderdisabled(string provider) { // TODO Auto-generated method stub public void onproviderenabled(string provider) { // TODO Auto-generated method stub public void onstatuschanged(string provider, int status, Bundle extras) { // TODO Auto-generated method stub 21

22 Annexe 2: Application qui affiche la location par GSM et l opérateur import android.app.activity; import android.content.context; import android.os.bundle; import android.telephony.telephonymanager; import android.telephony.gsm.gsmcelllocation; import android.widget.textview; public class AndroidTelephonyManager extends Activity { public class OpenCellID { String mcc; //Mobile Country Code String mnc; //mobile network code String cellid; //Cell ID String lac; //Location Area Code String operator; public void setmcc(string value){ mcc = value; public void setmnc(string value){ mnc = value; public void setcallid(int value){ cellid = String.valueOf(value); public void setcalllac(int value){ lac = String.valueOf(value); public void setoperator(string value){ operator = value; /** Called when the activity is first created. */ public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); TextView textmcc = (TextView)findViewById(R.id.mcc); TextView textmnc = (TextView)findViewById(R.id.mnc); TextView textcid = (TextView)findViewById(R.id.cid); TextView textlac = (TextView)findViewById(R.id.lac); TextView textop1 = (TextView)findViewById(R.id.op1); //retrieve a reference to an instance of TelephonyManager 22

23 TelephonyManager telephonymanager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); GsmCellLocation celllocation = (GsmCellLocation)telephonyManager.getCellLocation(); String networkoperator = telephonymanager.getnetworkoperator(); String mcc = networkoperator.substring(0, 3); String mnc = networkoperator.substring(3); textmcc.settext("mcc: " + mcc); textmnc.settext("mnc: " + mnc); String op1 = telephonymanager.getsimoperatorname(); textop1.settext("operator: " + op1); int cid = celllocation.getcid(); int lac = celllocation.getlac(); textcid.settext("gsm cell id: " + String.valueOf(cid)); textlac.settext("gsm location area code: " + String.valueOf(lac)); 23

24 Annexe 3: Application qui affiche l ISP import java.io.ioexception; import java.io.inputstream; import java.io.inputstreamreader; import java.io.linenumberreader; import java.net.httpurlconnection; import java.net.url; import java.net.urlconnection; import java.util.regex.matcher; import java.util.regex.pattern; import android.app.activity; import android.os.asynctask; import android.os.bundle; import android.view.view; import android.view.view.onclicklistener; import android.widget.button; import android.widget.textview; public class MainActivity extends Activity implements OnClickListener { Button button; TextView outputtext; public static final String URL = " /** Called when the activity is first created. */ public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); findviewsbyid(); button.setonclicklistener(this); private void findviewsbyid() { button = (Button) findviewbyid(r.id.button); outputtext = (TextView) findviewbyid(r.id.outputtxt); public void onclick(view view) { GetXMLTask task = new GetXMLTask(); task.execute(new String[] { URL ); private class GetXMLTask extends AsyncTask<String, Void, String> { protected String doinbackground(string... urls) { String output = null; for (String url : urls) { output = getoutputfromurl(url); return output; 24

25 private String getoutputfromurl(string url) { StringBuffer output = new StringBuffer(""); int x =1; try { InputStream stream = gethttpconnection(url); LineNumberReader lnr = new LineNumberReader(new InputStreamReader(stream)); String line = ""; int lineno; for (lineno = 1; lineno < 90; lineno++) { if (lineno == x) { line = lnr.readline(); //output.append(line); Pattern p = Pattern.compile(">(.*?)<"); Matcher m = p.matcher(line); if (m.find()) { output.append(m.group(1)); // => "isp" else lnr.readline(); catch (IOException e1) { e1.printstacktrace(); return output.tostring(); // Makes HttpURLConnection and returns InputStream private InputStream gethttpconnection(string urlstring) throws IOException { InputStream stream = null; URL url = new URL(urlString); URLConnection connection = url.openconnection(); try { HttpURLConnection httpconnection = (HttpURLConnection) connection; httpconnection.setrequestmethod("get"); httpconnection.connect(); if (httpconnection.getresponsecode() == HttpURLConnection.HTTP_OK) { stream = httpconnection.getinputstream(); catch (Exception ex) { ex.printstacktrace(); return stream; protected void onpostexecute(string output) { outputtext.settext(output); 25

26 Annexe 4: Application qui groupe tous les paramètres de localisation et d identification du fournisseur en un seul objet import java.io.ioexception; import java.io.inputstream; import java.io.inputstreamreader; import java.io.linenumberreader; import java.net.httpurlconnection; import java.net.url; import java.net.urlconnection; import java.util.regex.matcher; import java.util.regex.pattern; import android.content.context; import android.location.location; import android.location.locationlistener; import android.location.locationmanager; import android.os.asynctask; import android.os.bundle; import android.telephony.telephonymanager; import android.telephony.gsm.gsmcelllocation; import android.view.view; public class LocationMobileUser implements LocationListener { //Context mcontext; Context gcontext; boolean gps_enabled=false; boolean network_enabled=false; public LocationMobileUser(Context gcontext){ //this.mcontext = mcontext; this.gcontext = gcontext; public static final String URL = " public void XML (View view) { GetXMLTask task = new GetXMLTask(); task.execute(new String[] { URL ); public class GetXMLTask extends AsyncTask<String, Void, String> { protected String doinbackground(string... urls) { String output = null; for (String url : urls) { output = getoutputfromurl(url); return output; public String getoutputfromurl(string url) { StringBuffer output = new StringBuffer(""); int x =1; //String StartDelemiter=">"; 26

27 //String EndDelemiter="<"; try { InputStream stream = gethttpconnection(url); LineNumberReader lnr = new LineNumberReader(new InputStreamReader(stream)); String line = ""; int lineno; for (lineno = 1; lineno < 90; lineno++) { if (lineno == x) { line = lnr.readline(); //output.append(line); Pattern p = Pattern.compile(">(.*?)<"); Matcher m = p.matcher(line); if (m.find()) { output.append(m.group(1)); // => "isp" else lnr.readline(); catch (IOException e1) { e1.printstacktrace(); return output.tostring(); // Makes HttpURLConnection and returns InputStream public InputStream gethttpconnection(string urlstring) throws IOException { InputStream stream = null; URL url = new URL(urlString); URLConnection connection = url.openconnection(); try { HttpURLConnection httpconnection = (HttpURLConnection) connection; httpconnection.setrequestmethod("get"); httpconnection.connect(); if (httpconnection.getresponsecode() == HttpURLConnection.HTTP_OK) { stream = httpconnection.getinputstream(); catch (Exception ex) { ex.printstacktrace(); return stream; public String getsimoperator() { TelephonyManager telephonymanager = (TelephonyManager)gContext.getSystemService(Context.TELEPHONY_SERVICE); 27

28 String operator = telephonymanager.getsimoperatorname(); return operator; public GsmCellLocation getcelllocation() { //String Context=Context.Telephony_SERVICE; TelephonyManager telephonymanager = (TelephonyManager)gContext.getSystemService(Context.TELEPHONY_SERVICE); GsmCellLocation CellLocation = (GsmCellLocation)telephonyManager.getCellLocation(); return CellLocation; public Location getlocation(){ String provider = null; LocationManager locationmanager; Location gps_loc=null; String context = Context.LOCATION_SERVICE; locationmanager = (LocationManager)gContext.getSystemService(context); gps_loc=locationmanager.getlastknownlocation(locationmanager.gps_provider); try{gps_enabled=locationmanager.isproviderenabled(locationmanager.gps_provider);catc h(exception ex){ try{network_enabled=locationmanager.isproviderenabled(locationmanager.network_provide R);catch(Exception ex){ if(gps_enabled && gps_loc!= null){ provider = LocationManager.GPS_PROVIDER; else{ provider = LocationManager.NETWORK_PROVIDER; Location location = locationmanager.getlastknownlocation(provider); locationmanager.requestlocationupdates(provider, 20000, 1, this); return location; public String getprovider(){ String provider = null; if(gps_enabled){ provider = LocationManager.GPS_PROVIDER; else{ provider = LocationManager.NETWORK_PROVIDER; return provider; public String CellLacLocation(GsmCellLocation CellLocation){ String cidlacstring; if (CellLocation!= null) { 28

29 int cid = CellLocation.getCid(); int lac = CellLocation.getLac(); cidlacstring = "CellID:" + cid + "\nlac:" + lac; else { cidlacstring="no Cell Location Available"; return cidlacstring; public String updatewithnewlocation(location location) { String latlongstring; if (location!= null){ double lat = location.getlatitude(); double lng = location.getlongitude(); latlongstring = "Latitude:" + lat + "\nlongitude:" + lng; else{ latlongstring = "No Location available"; return latlongstring; public void onlocationchanged(location arg0) { // TODO Auto-generated method stub public void onproviderdisabled(string arg0) { // TODO Auto-generated method stub public void onproviderenabled(string arg0) { // TODO Auto-generated method stub public void onstatuschanged(string arg0, int arg1, Bundle arg2) { // TODO Auto-generated method stub 29

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

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

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

Développement sous Android

Développement sous Android Développement sous Android Chapitres traités Les fournisseurs de contenu (Content Provider) Pour cette dernière étude de l'environnement Android, nous allons en profiter pour découvrir plein de fonctionnalités

Plus en détail

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

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

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

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

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

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

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

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

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

De Java à Android version 0.1

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

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

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

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

Serveur d'archivage 2007 Installation et utilisation de la BD exist

Serveur d'archivage 2007 Installation et utilisation de la BD exist Type du document Procédure d'installation Auteur(s) Eric Bouladier Date de création 26/02/20007 Domaine de diffusion tous Validé par Equipe Versions Date Auteur(s) Modifications V1.00 26/02/2007 Eric Bouladier

Plus en détail

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites Java Licence Professionnelle 2009-2010 Cours 7 : Classes et méthodes abstraites 1 Java Classes et méthodes abstraites - Le mécanisme des classes abstraites permet de définir des comportements (méthodes)

Plus en détail

Android en action. Abdelkader Lahmadi Université de Lorraine - 2013

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

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

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

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe

Plus en détail

Cartographie et audit du réseau GSM avec des outils Open Source

Cartographie et audit du réseau GSM avec des outils Open Source Cartographie et audit du réseau GSM avec des outils Open Source Toulouse Hacker Space Factory 25-27 mai 2012, Toulouse Introduction Les réseaux mobiles millions de citoyens sont le quotidien de et reposent

Plus en détail

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres

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

Android et le Cloud Computing

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

Plus en détail

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. RMI Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. Méthode proche de RPC. Outils et classes qui rendent l'implantation d'appels de méthodes d'objets distants aussi simples

Plus en détail

[Projet S9] Rédacteurs & Contributeurs Entité Rédacteurs Contributeurs Imededdine HOSNI Olivier MARTY. Validation du document Nom Date Visa

[Projet S9] Rédacteurs & Contributeurs Entité Rédacteurs Contributeurs Imededdine HOSNI Olivier MARTY. Validation du document Nom Date Visa [Projet S9] Rédacteurs & Contributeurs Entité Rédacteurs Contributeurs Imededdine HOSNI Olivier MARTY Organisme ou entreprise Validation du document Nom Date Visa Amel LIMAM Organisme ou entreprise Approbation

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

Généralités sur le Langage Java et éléments syntaxiques.

Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...

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

Maîtriser le menu contextuel dans un OfficeBean

Maîtriser le menu contextuel dans un OfficeBean Maîtriser le menu contextuel dans un OfficeBean Diffusé Par Le Projet Documentation d'openoffice.org Version 1.0 Aurélie Schröder Université de Genève Division informatique AurelieSch@netcourrier.com Table

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

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture API04 Contribution Apache Hadoop: Présentation et application dans le domaine des Data Warehouses Introduction Cette publication a pour but de présenter le framework Java libre Apache Hadoop, permettant

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40 Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr

Plus en détail

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application

Plus en détail

TP1. Outils Java Eléments de correction

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

Plus en détail

Java Licence professionnelle CISII, 2009-2010

Java Licence professionnelle CISII, 2009-2010 Java Licence professionnelle CISII, 2009-2010 Cours 6 : le paquetage (package) Cours inspiré des cours de Richard Grin, Antoine Tabbone et Hazel Everett 1 Définition - Les classes Java sont regroupées

Plus en détail

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s) Propriétés du Document Source du Document SDK_accords.odt Titre du Document SDK Python et Java pour le développement de services ACCORD Module(s) PyaccordsSDK, JaccordsSDK Responsable Prologue Auteur(s)

Plus en détail

Programmation par les Objets en Java

Programmation par les Objets en Java Programmation par les Objets en Java Najib TOUNSI Les classes en Java (TD 3) I. Notion de classe I.1 Classe, champs, méthodes, instanciation, this, private vs. public. Créer une classe Point (coordonnée

Plus en détail

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java Info0604 Programmation multi-threadée Cours 5 Programmation multi-threadée en Java Pierre Delisle Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique 18 février 2015 Plan

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

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T> Page 1 sur 5 TP3 Lectures préalables : l Java_II l tutorial Interfaces Thèmes du TP : l la classe Object l Vector l Stack Une pile d'objects Les éléments de la classe Pile sont maintenant des instances

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

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

Tutoriel Android. Pour démarrer la programmation d'applications Android

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

Plus en détail

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères FORMATION PcVue Mise en œuvre de WEBVUE Journées de formation au logiciel de supervision PcVue 8.1 Lieu : Lycée Pablo Neruda Saint Martin d hères Centre ressource Génie Electrique Intervenant : Enseignant

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

Auto-évaluation Programmation en Java

Auto-évaluation Programmation en Java Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

Plus en détail

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ DE PROGRAMMATION ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,

Plus en détail

La base de données XML exist. A. Belaïd

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

Plus en détail

Environnements de développement (intégrés)

Environnements de développement (intégrés) Environnements de développement (intégrés) Tests unitaires, outils de couverture de code Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure

Plus en détail

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet TP Composants Java ME - Java EE Vous allez, dans ce TP, construire une architecture client serveur, plus précisément MIDlet cliente, servlet serveur. Pour cela, on va d'abord installer la partie serveur

Plus en détail

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12 GTK+ GLADE Page 1 sur 12 SOMMAIRE INTRO 3 Présentation de GTK+ 3 Présentation de GLADE 3 GTK+ 4 Installation 4 Les Widgets 4 Le système de hiérarchie 5 Les signaux 6 GLADE 7 Installation 7 L interface

Plus en détail

ECLIPSE ET PDT (Php development tools)

ECLIPSE ET PDT (Php development tools) ECLIPSE ET PDT (Php development tools) Eclipse Eclipse est un IDE (Integrated Development Environment)).C estun projet de la Fondation Eclipse visant à développer tout un environnement de développement

Plus en détail

7 Développement d une application de MapReduce

7 Développement d une application de MapReduce 7 Développement d une application de MapReduce Ecrire un programme d Hadoop demande un processus : écrire une fonction map, une fonction reduce et tester localement. Ecrire ensuite un programme pour lancer

Plus en détail

BTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

BTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais BTS S.I.O. 2012-2013 PHP OBJET Module SLAM4 Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais Table des matières 1 But... 3 2 Les bases :... 3 3 Utilisation d'une classe : Instanciation...3

Plus en détail

1. Installation d'un serveur d'application JBoss:

1. Installation d'un serveur d'application JBoss: EPITA Ala Eddine BEN SALEM App-Ing2 J2EE T.P. 4 EJB3, Serveur d'application JBoss 1. Installation d'un serveur d'application JBoss: télécharger l'archive du serveur JBoss à l'adresse: http://sourceforge.net/projects/jboss/files/jboss/jboss-5.0.0.ga/jboss-5.0.0.ga.zip/download

Plus en détail

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Polymorphisme, la classe Object, les package et la visibilité en Java... 1 Polymorphisme, la classe Object, les package et la visibilité en Java. Polymorphisme, la classe Object, les package et la visibilité en Java.... 1 Polymorphisme.... 1 Le DownCast... 4 La Classe Object....

Plus en détail

Héritage presque multiple en Java (1/2)

Héritage presque multiple en Java (1/2) Héritage presque multiple en Java (1/2) Utiliser deux classes ou plus dans la définition d'une nouvelle classe peut se faire par composition. class Etudiant{ int numero; Diplome d; float passeexamen(examen

Plus en détail

Développement web et mobile

Développement web et mobile Etudiant Tuteur Maître de stage Bilal BENLARBI Pierre CLAIRET Eddy MAINPAIN IUT d Orléans Département informatique Licence professionnelle réseaux et télécommunications spécialité développement web et

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

Remote Method Invocation Les classes implémentant Serializable

Remote Method Invocation Les classes implémentant Serializable Parallélisme Architecture Eric Goubault Commissariat à l Energie Atomique Saclay Classe qui implémente la méthode distante (serveur): - dont les méthodes renvoient un objet serializable - ou plus généralement

Plus en détail

DÉVELOPPEMENT ANDROID

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

Plus en détail

SECURIDAY 2013 Cyber War

SECURIDAY 2013 Cyber War Club de la Sécurité Informatique à l INSAT Dans le cadre de la 3ème édition de la journée nationale de la sécurité informatique SECURIDAY 2013 Cyber War SECURINETS Présente Formateurs: 1. Emna BEY 2. Manel

Plus en détail

Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets

Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets Licence Professionnelle CISII, 2009-2010 Cours 2 : Classes et Objets 1 Classes et Objets Objectifs des LOO : - Manipuler des objets - Découper les programmes suivant les types des objets manipulés - Regrouper

Plus en détail

Construire des plug-ins pour SAS Management Console SAS 9.1

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

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

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) CLASSE RACINE Object ancêtre de toutes les classes RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) définit donc des méthodes héritées par toutes

Plus en détail

Projet de programmation (IK3) : TP n 1 Correction

Projet de programmation (IK3) : TP n 1 Correction Projet de programmation (IK3) : TP n 1 Correction Semaine du 20 septembre 2010 1 Entrées/sorties, types de bases et structures de contrôle Tests et types de bases Tests et types de bases (entiers) public

Plus en détail

Documentation CAS à destination des éditeurs

Documentation CAS à destination des éditeurs Documentation CAS à destination des éditeurs Sommaire Préambule... 1 Présentation de CAS...2 Intérêt... 2 Fonctionnement de base...2 Synoptique des échanges (1ère connexion)... 2 Synoptique des échanges

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

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ; CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe

Plus en détail

Tutoriel d installation de Hibernate avec Eclipse

Tutoriel d installation de Hibernate avec Eclipse Tutoriel d installation de Hibernate avec Eclipse Table des matières 1. Création de la base de données... 4 2. Installation de Hibernate Synchronizer... 5 3. Utilisation de Hibernate... 6 3.1 Création

Plus en détail

Développement sous Android

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

Plus en détail

Module Architecture des systèmes mobiles : Android première partie - 2015 Didier FERMENT - UPJV

Module Architecture des systèmes mobiles : Android première partie - 2015 Didier FERMENT - UPJV Module Architecture des systèmes mobiles : Android première partie - 2015 Didier FERMENT - UPJV Plan 1ére partie : Introduction Première Activité : layout classe Activity manifeste développement avec un

Plus en détail

Notes de cours Practical BigData

Notes de cours Practical BigData Notes de cours Practical BigData Nguyen-Nhut DOAN 15 janvier 2015 Introduction Ces notes personnelles traduisent la deuxième partie du cours INF553 de l Ecole Polytechnique sur les bases de données et

Plus en détail

Un ordonnanceur stupide

Un ordonnanceur stupide Un ordonnanceur simple Université Paris Sud L objet des exercices qui suivent est de créer un ordonanceur implantant l algorithme du tourniquet ( round-robin scheduler ). La technique utilisée pour élire

Plus en détail

Cours 1: Java et les objets

Cours 1: Java et les objets Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/

Plus en détail

Programmation Android L3 informatique

Programmation Android L3 informatique Programmation Android L3 informatique Étienne Payet Département de mathématiques et d informatique Ces transparents sont mis à disposition selon les termes de la Licence Creative Commons Paternité - Pas

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting IUT Bordeaux 1 2005-2006 Département Informatique Licence Professionnelle ~ SI TD Objets distribués n 3 : Windows XP et Visual Studio.NET Introduction à.net Remoting Partie 1 : l'analyseur de performances

Plus en détail

APPLICATIONS JAVA. 1. Android. Développement d'activités Java sous Android. Android Partie I. L'architecture du système Android. Application Android

APPLICATIONS JAVA. 1. Android. Développement d'activités Java sous Android. Android Partie I. L'architecture du système Android. Application Android Applications Java sous Android IvMad, 2011-2014 2 APPLICATIONS JAVA Android Partie I 1. Android Développement d'activités Java sous Android L'objectif principal de ce cours est de découvrir la programmation

Plus en détail

Projet de développement

Projet de développement Projet de développement Introduction à Eclipse Philippe Collet Licence 3 MIAGE S6 2012-2013 http://miageprojet2.unice.fr/index.php?title=user:philippecollet/projet_de_développement_2012-2013 Plan r Application

Plus en détail

Introduction à Eclipse

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

Plus en détail

Développement Android. J.-F. Couchot

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é............................................

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

Pour plus de détails concernant le protocole TCP conférez vous à la présentation des protocoles Internet enseignée pendant.

Pour plus de détails concernant le protocole TCP conférez vous à la présentation des protocoles Internet enseignée pendant. Chapitre 7 Le mode de communication en connexion est, a priori, supporté par le protocole TCP. Ce protocole fournit une communication fiable; les données sont transmises comme chaînes d octets. Avant de

Plus en détail

Chapitre 2. Classes et objets

Chapitre 2. Classes et objets Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons

Plus en détail

Corrigé des exercices sur les références

Corrigé des exercices sur les références Corrigé des exercices sur les références Exercice 3.1.1 dessin Pour cet exercice, vous allez dessiner des structures de données au moyen de petits schémas analogues à ceux du cours, comportant la pile

Plus en détail

Annexe Android Studio

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»

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

Remote Method Invocation en Java (RMI)

Remote Method Invocation en Java (RMI) Remote Method Invocation en Java (RMI) Modélisation et construction des applications réparties (Module M-4102C) J. Christian Attiogbé Fevrier 2015 J. Christian Attiogbé (Fevrier 2015) Remote Method Invocation

Plus en détail

Applet pour visualiser les variables «automate» notifiées

Applet pour visualiser les variables «automate» notifiées Applet pour visualiser les variables «automate» notifiées Sommaire 1. Introduction...2 2. Lecture de variables «automate» notifiées...2 2.1. IHM servant au test :...2 2.2. Codage de l'applet :...2 3. Codage

Plus en détail

Le GéoPortail du Jura http://geo.jura.ch. Présentation des fonctionnalités de la version mobile

Le GéoPortail du Jura http://geo.jura.ch. Présentation des fonctionnalités de la version mobile Le GéoPortail du Jura http://geo.jura.ch Présentation des fonctionnalités de la version mobile Le GéoPortail se décline en deux versions : Une version normale (ordinateur de bureau) Une version mobile

Plus en détail

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement des objets d'une classe Utilisation d'une classe Droit

Plus en détail

Vodafone Mobile Connect

Vodafone Mobile Connect Vodafone Mobile Connect Manuel d installation rapide Important Installez le logiciel avant d utiliser la carte de données intégrée. Assurez-vous que la carte de données intégrée est activée. Si nécessaire,

Plus en détail