Syntaxe du langage [2]
Variable On les retrouve dans la quasi-totalitรฉ des langages de programmation. Une variable est un รฉlรฉment qui stocke des informations de toute sorte en mรฉmoire : des chiffres, des rรฉsultats de calcul, des tableaux, des renseignements fournis par l’utilisateurโฆ Vous ne pourrez pas programmer sans variables. Ce dernier est donc indispensable. Pour cela, il faut les dรฉclarer. Une dรฉclaration de variable se fait comme ceci : <Type de la variable><Nom de la variable> ; Cette opรฉration se termine toujours par un point-virgule ยซ ; ยป (comme toutes les instructions de ce langage). Ensuite, on l’initialise en entrant une valeur. En Java, nous avons deux types de variables :
๏ถ des variables de type simple ou ยซ primitif ยป ;
๏ถ des variables de type complexe ou des ยซ objets ยป.
Ce qu’on appelle des types simples ou types primitifs, en Java, ce sont tout bonnement des nombres entiers, des nombres rรฉels, des boolรฉens ou encore des caractรจres.
1. Les variables de types numรฉriques
Le type byte (1 octet) peut contenir les entiers entre -128 et +127.
Le type short (2 octets) contient les entiers compris entre -32768 et +32767.
Le type int (4 octets) va de -2*109 ร 2*109 (2 et 9 zรฉros derriรจreโฆ ce qui fait dรฉjร un joli nombre).
Le type long (8 octets) peut aller de โ9ร1018 ร 9ร1018 (encore plus grosโฆ).
Le type float (4 octets) est utilisรฉ pour les nombres avec une virgule flottante.
Le type double (8 octets) est identique ร float, si ce n’est qu’il contient plus de chiffres derriรจre la virgule et qu’il n’a pas de suffixe.
Des variables stockant un caractรจre Le type char contient un caractรจre stockรฉ entre apostrophes (ยซ ‘ ‘ ยป),
Des variables de type boolรฉen Le type boolean, lui, ne peut contenir que deux valeurs : true (vrai) ou false (faux), sans guillemets (ces valeurs sont natives dans le langage, il les comprend directement et sait les interprรฉter).
Le type String Le type String permet de gรฉrer les chaรฎnes de caractรจres, c’est-ร -dire le stockage de texte. Il s’agit d’une variable d’un type plus complexe que l’on appelle objet.
Opรฉrateurs Les opรฉrateurs arithmรฉtiques sont ceux que l’on apprend ร l’รฉcole primaireโฆ ou presque. Les opรฉrateurs sont des symboles qui permettent de manipuler des variables, c’est-ร -dire effectuer des opรฉrations, les รฉvaluer, … On distingue plusieurs types d’opรฉrateurs :
๏ท ยซ + ยป : permet d’additionner deux variables numรฉriques (mais aussi de concatรฉner des chaรฎnes de caractรจres ; ne vous inquiรฉtez pas, on aura l’occasion d’y revenir).
๏ท ยซ – ยป : permet de soustraire deux variables numรฉriques.
๏ท ยซ * ยป : permet de multiplier deux variables numรฉriques.
๏ท ยซ / ยป : permet de diviser deux variables numรฉriques (mais je crois que vous aviez devinรฉ).
๏ท ยซ % ยป : permet de renvoyer le reste de la division entiรจre de deux variables de type numรฉrique ; cet opรฉrateur s’appelle le modulo.
Android Runtime (ART) [12]
ย ย ย ย ย ย ย ย ร partir de la version 5.0 sortie en 2014, l’environnement d’exรฉcution ART (Android RunTime) remplace la machine virtuelle Dalvik. ART utilise la compilation par avance (Ahead of time compilation).Pendant le processus de dรฉploiement dโune application sur une tablette, le code dโapplication est traduit en code machine. Il en rรฉsulte un code compilรฉ environ 30 % plus grand, mais permet une execution plus rapide au lancement de lโapplication. Cet environnement d’exรฉcution plus performant a รฉtรฉ dรฉveloppรฉ par Google pour pallier le potentiel limitรฉ de Dalvik, crรฉรฉ en 2007. Avec ART, contrairement ร la machine virtuelle java, les fichiers .apk ne sont plus lancรฉs directement, mais dรฉcompressรฉs et lancรฉs avec de nouvelles bibliothรจques et API ; les applications prennent ainsi plus de place (+20 %), mais les gains en performance et en autonomie des batteries sont consรฉquents (+20 ร 30 %). Cela permet dโรฉconomiser aussi la vie de la batterie puisque la compilation ne se fait quโune seule fois, lors du premier dรฉmarrage de lโapplication. Lโoutil ยซ dex2oat ยป prend le fichier .dex crรฉe par lโIDE Android et le compile dans un format exรฉcutable (format ELF). Ce fichier contient le code .dex, le code compilรฉ natif et les mรฉtadonnรฉes. Conserver le code .dex permet aux outils existants de continuer ร fonctionner. Le ยซ Garbage Collector ยป ART a รฉtรฉ optimise pour rรฉduire les dรฉlais pendant lesquels lโapplication se fige.
Un point sur les vocabulaires
ย ย ย ย ย ย ย La topomรฉtrie qui groupe lโensemble des mesures et des calculs propres ร lโรฉtablissement des plans est lโart de reprรฉsenter sur un plan la configuration dโun terrain, en utilisant uniquement des mesures gรฉomรฉtriques rรฉguliรจres (pas de croquis, pas de dessin). Le mot topo dรฉsigne le lieu et le mot mรฉtrie dรฉsigne mesure. Elle constitue lโรฉlรฉment fondamental de la topographie. La gรฉodรฉsie qui รฉtudie les formes de la terre et permet de dรฉterminer les coordonnes gรฉographiques ou rectangulaires dโun certain nombre de points servant de canevas pour les levรฉs topographiques. Un canevas est un ensemble discret de points judicieusement rรฉpartis sur la surface ร lever, dont les positions relatives sont dรฉterminรฉes avec une prรฉcision au moins รฉgale ร celle que l4operateur attend du levรฉ. Ces points servent dโappui au lever des dรฉtails, implantations, etc. Le canevas sโexprime par les coordonnรฉes de ces points dans un mรชme systรจme. Afin de dรฉcrire le terrain, on dispose de tout un panel de techniques et mรฉthodes. Chaque lever de dรฉtails doit sโaccompagner dโun croquis de levรฉ aussi prรฉcis, soignรฉ et descriptif que possible. Ce croquis est dโune aide prรฉcieuse, voire indispensable, lors de lโรฉtablissement du plan dรฉfinitif. Le lever de dรฉtails est lโensemble des opรฉrations intervenant dans un lever topographique et consistant ร dรฉterminer ร partir des points du canevas dโensemble, polygonal ou de dรฉtails, la position des diffรฉrents objets dโorigine naturelle ou artificielle existant sur le terrain. Le levรฉ, nom donne au document rรฉsultant dโun lever, est destinรฉ, รฉventuellement aprรจs traitement numรฉrique, ร lโรฉtablissement de plans graphiques ou numรฉriques Un plan est une reprรฉsentation graphique dโune portion restreinte de la terre obtenue par projection orthogonale sur une surface plane. Les dรฉtails y sont reprรฉsentรฉs ร lโรฉchelle. Une carte est une reprรฉsentation conventionnellement rรฉduite d’une certaine portion de terrain ร petite รฉchelle
Mรฉthodes GNSS
ย ย ย ย ย ย ย ย Au cours des derniers siรจcles, les mรฉthodes dโacquisition de donnรฉes gรฉographiques ont connu une forte mutation, aussi bien au niveau de leur facilitรฉ de mise en ลuvre quโau niveau de la qualitรฉ des donnรฉes produites. Les instruments de mesure se sont perfectionnรฉs de maniรจre constante aux cours du temps. En effet, pendant longtemps on travailla exclusivement sur la base de levรฉs sur le terrain. C’est prรฉcisรฉment ici que les nouveaux dรฉveloppements technologiques ont rรฉvolutionnรฉ les mรฉthodes dโacquisition de donnรฉes avec la gรฉnรฉralisation de l’utilisation opรฉrationnelle des levรฉs GPS ร partir des annรฉes 2000. En effet, pour lever un point avec une prรฉcision centimรฉtrique en utilisant un thรฉodolite, nous avions besoin d’une รฉquipe de 4 techniciens pendant 1 journรฉe pour rattacher un chantier local au systรจme gรฉodรฉsique national. Suite ร l’introduction des levรฉs diffรฉrentiels GPS, nous pouvions rรฉgler cette tรขche avec deux techniciens en quelques heures en posant une base offrant une orientation absolue ร proximitรฉ de la zone ร relever. Dans ce contexte en pleine mutation oรน de nouvelles constellations de satellites se mettent en place pour complรฉter la constellation GPS et rendre l’utilisation de tels systรจmes encore plus disponible et plus fiable (GLONASS, GALILEO, COMPASS,โฆ), nous nous proposons de faire le point sur les techniques de lever GNSS. Le sigle GNSS (Global Navigation Satellite System) est le nom gรฉnรฉrique des systรจmes de navigation satellitaires fournissant une couverture globale de gรฉo positionnement (Duquenne et al. 2005). Lโobjectif de ce systรจme est de donner la gรฉolocalisation dโun mobile ainsi que sa vitesse en tout lieu du globe et dans un rรฉfรฉrentiel global. Les premiers crรฉateurs dโun tel systรจme sont les militaires amรฉricains (GPS : Global Positioning System) suivis de trรจs prรจs par les russes (GLONASS : GLObal nAvigation Satellite System). Depuis 2000, le systรจme GPS est devenu accessible aux populations civiles avec une prรฉcision mรฉtrique, ce qui a permis ร la gรฉolocalisation GPS de se dรฉmocratiser. A lโheure actuelle les services utilisant ces systรจmes sont trรจs nombreux et varies avec parmi les exemples les plus connus la geonavigation automobile et la randonnรฉe. Le GNSS, comme tous les systรจmes basรฉs sur des satellites, se compose de trois segments : le segment spatial (les satellites a proprement parlรฉ), le segment contrรดle (les stations au sol qui contrรดlent le bon รฉtat de marche des satellites) et le segment utilisateur (lโopรฉrateur qui cherche ร se geolocaliser avec son matรฉriel). Cette technologie est รฉgalement largement utilisรฉe dans les dispositifs expรฉrimentaux ร diffรฉrents niveaux, nรฉcessitant diverses รฉchelles de prรฉcision et devant rรฉpondre ร diffรฉrentes contraintes :
๏ถ gรฉolocalisation dโhabitats, dโespรจces patrimoniales, dโessences de fruitiers (prรฉcision mรฉtrique) ;
๏ถ dรฉfinition du contour dโun dispositif expรฉrimental (prรฉcision centimรฉtrique) ;
๏ถ gรฉonavigation appliquรฉe ร lโagriculture de prรฉcisionโฆ (prรฉcision centimรฉtrique dโun objet en mouvement).
Le GNSS prรฉsente de nombreux avantages par rapport aux mรฉthodes topographiques conventionnelles :
๏ถ L’inter visibilitรฉ entre points n’est pas requis.
๏ถ peut รชtre utilisรฉ ร toute heure du jour ou de la nuit.
๏ถ Il fournit des rรฉsultats de prรฉcision.
๏ถ Il permet de traiter un volume de travail plus important en moins de temps et avec moins de personnel.
Cependant, pour utiliser le GPS, il faut que l’antenne GPS puisse capter les signaux รฉmis par au moins 4 satellites. Des obstacles tels que des bรขtiments รฉlevรฉs ou des arbres peuvent entraver la rรฉception de ces signaux. Le GPS est donc inopรฉrant en intรฉrieur. Il est รฉgalement difficile d’utiliser le GPS en centre-ville ou dans des zones boisรฉes. Du fait de ces limitations, il peut รชtre plus rentable, pour certains types d’applications, de mettre en ลuvre une station totale optique voire de combiner un instrument de ce type au GPS.
Les gabarits [14]
ย ย ย ย ย ย ย Un gabarit, ou layout ou encore mise en page est une extension de la classe ViewGroup. Il sโagit en fait dโun conteneur qui aide ร positionner les objets, quโil sโagisse de vues ou dโautres gabarits au sein de votre interface. Vous pouvez imbriquer des gabarits les uns dans les autres, ce qui vous permettra de crรฉer des mises en forme รฉvoluรฉes. Dans la suite de ce livre, nous parlerons ainsi de gabarit parent et de gabarit enfant (ou plus gรฉnรฉralement dโรฉlรฉments enfants voire simplement dโenfants), le gabarit enfant รฉtant inclus dans le gabarit parent. Comme nous lโavons dit plus haut, vous pouvez dรฉcrire vos interfaces utilisateur soit par une dรฉclaration XML, soit directement dans le code dโune activitรฉ en utilisant les classes adรฉquates. Dans les deux cas, vous pouvez utiliser diffรฉrents types. En fonction du type choisi, les vues et les gabarits seront disposรฉs diffรฉremment :
๏ท LinearLayout : permet dโaligner de gauche ร droite ou de haut en bas les รฉlรฉments qui y seront incorporรฉs. En modifiant la propriรฉtรฉ orientation vous pourrez signaler au gabarit dans quel sens afficher ses enfants : avec la valeur horizontal, lโaffichage sera de gauche ร droite alors que la valeur vertical affichera de haut en bas ;
๏ท RelativeLayout : ses enfants sont positionnรฉs les uns par rapport aux autres, le premier enfant servant de rรฉfรฉrence aux autres ;
๏ท FrameLayout : cโest le plus basique des gabarits. Chaque enfant est positionnรฉ dans le coin en haut ร gauche de lโรฉcran et affichรฉ par-dessus les enfants prรฉcรฉdents, les cachant en partie ou complรจtement. Ce gabarit est principalement utilisรฉ pour lโaffichage dโun รฉlรฉment (par exemple, un cadre dans lequel on veut charger des images) ;
๏ท TableLayout : permet de positionner vos vues en lignes et colonnes ร lโinstar dโun tableau.
๏ท GridLayout: disposition matricielle avec N colonnes et un nombre infini de lignes
Chaque gabarit possรจde des attributs spรฉcifiques, et dโautres communs ร tous les types de gabarits. Parmi les propriรฉtรฉs communes, vous trouverez les propriรฉtรฉs layout_weight et layout_height. Celles-ci permettent de spรฉcifier le comportement du remplissage en largeur et en hauteur des gabarits et peuvent contenir une taille (en pixels ou dpi) ou les valeurs constantes suivantes : fill_parent et wrap_content. La valeur fill_parent spรฉcifie que le gabarit doit prendre toute la place disponible sur la largeur/hauteur. Par exemple, si le gabarit est inclus dans un autre gabarit โ parent (lโรฉcran รฉtant lui-mรชme un gabarit) โ et si le gabarit parent possรจde une largeur de 100 pixels, le gabarit enfant aura donc une largeur de 100 pixels. Si ce gabarit est le gabarit de base โ le plus haut parent โ de notre รฉcran, alors ce dernier prend toute la largeur de lโรฉcran. Si vous souhaitez afficher le gabarit tel quel, vous pouvez spรฉcifier la valeur wrap_content. Dans ce cas, le gabarit ne prendra que la place qui lui est nรฉcessaire en largeur/hauteur.
LES BASES DE DONNEES SQLITE [12]
ย ย ย ย ย ย ย ย ย Une application Android a besoin de stocker des donnรฉes permanentes. Cependant si le besoin de stockage devient plus complexe les donnรฉes ร sauvegarder ne peuvent se modรฉliser aussi simplement que sous la forme dโune paire clรฉ/valeur, il faudra donc envisager dโutiliser une vรฉritable base de donnรฉes. Une base de donnรฉes est un ensemble structurรฉ et organisรฉ permettant de stocker des grandes quantitรฉs de donnรฉes informatiques brutes. SQLite est une bibliothรจque รฉcrite en C qui propose un moteur de base de donnรฉes relationnelle accessible par le langage SQL. Contrairement aux serveurs de bases de donnรฉes traditionnels, comme MySQL ou PostgreSQL, sa particularitรฉ est de ne pas reproduire le schรฉma habituel client-serveur mais d’รชtre directement intรฉgrรฉe aux programmes. L’intรฉgralitรฉ de la base de donnรฉes (dรฉclarations, tables, index et donnรฉes) est stockรฉe dans un fichier indรฉpendant de la plateforme. SQLite est le moteur de base de donnรฉes le plus utilisรฉ au monde, grรขce ร son utilisation dans de nombreux logiciels grand public comme Firefox, Skype, Google Gears, dans certains produits d’Apple, d’Adobe et de McAfee et dans les bibliothรจques standards de nombreux langages comme PHP ou Python. De par son extrรชme lรฉgรจretรฉ, il est รฉgalement trรจs populaire sur les systรจmes embarquรฉs, notamment sur la plupart des smartphones modernes : l’iPhone ainsi que les systรจmes d’exploitation mobiles Symbian et Android l’utilisent comme base de donnรฉes embarquรฉe.
|
Table des matiรจres
Remerciements
Liste des figures
Liste des organigrammes
Liste des tableaux
Liste des acronymes
Introduction
PARTIE I : LE LANGAGE JAVA ET LโUNIVERS ANDROID
CHAPITRE I : PRESENTATION DU LANGAGE JAVA
I. INTRODUCTION GENERALE
1. Historique [1]
2. Dรฉfinition [11]
3. Environnement JAVA [2]
4. Syntaxe du langage [2]
4.1. Variable
4.1.1. Les variables de types numรฉriques
4.1.2. Des variables stockant un caractรจre
4.1.3. Des variables de type boolรฉen
4.1.4. Le type String
4.2. Opรฉrateurs
II. PROGRAMMATION ORIENTEE-OBJET [2]
1. Classe et Objet
1.1. Classe
1.2. Objet
2. Conditions et boucles [10]
2.1. Conditions
2.1.1. La structure ifโฆelse
2.1.2. La structure switch
2.2. Boucles
2.2.1. La boucle While
2.2.2. La boucle DoโฆWhile
2.2.3. La boucle For
CHAPITRE II : LโUNIVERS ANDROID
I. HISTORIQUE ET DEVELOPPEMENT [3]
La philosophie et les avantages d’Android
1. Open-source
2. Gratuit (ou presque)
3. Facile ร dรฉvelopper
4. Facile ร vendre
5. Flexible
6. Ingรฉnieux
II. HISTORIQUES DES VERSIONS [12]
III. CONCEPTS DE BASES [9]
1. Architecture dโAndroid
2. Android et la plateforme java [12]
3. Android Runtime (ART) [12]
PARTIE II : NOTION DE TOPOGRAPHIE
CHAPITRE III : ASPECTS THEORIQUES
I. GENERALITES [5]
1. Topographie
2. Un point sur les vocabulaires
II. METHODE DE COLLECTE DE DONNEES SUR TERRAIN [10]
1. Appareils modernes
1.1. Mise en station
1.2. Visรฉs et relevรฉs
2. Mรฉthodes GNSS
III. FAUTES ET ERREURS [6]
1. Les fautes
2. Les erreurs
2.1. Les erreurs systรฉmatiques
2.2. Les erreurs accidentelles
2.3. Distinction entre fautes et erreurs
IV. LES DIFFERENTS TYPES DE COMPENSATION [6]
1. Compensation proportionnelle
2. Compensation pondรฉrรฉe
3. Compensation par les moindres carrรฉs
V. CARNET DE TERRAIN [5]
1. Carnet de levรฉ numรฉrique
2. Elรฉments basiques de carnet de terrain
VI. NOTION DE CALCULS DE COORDONNEES [9]
1. Le gisement
2. Points rayonnรฉs
CHAPITRE II : OBJECTIFS DE NOS RECHERCHES
I. EXPOSITIONS ET ORIGINES [9]
II. PROBLEMES DES TRAVAUX TOPOGRAPHIQUES
III. LโAPPLICATION, SOLUTIONS DE TERRAIN POUR LA TOPOGRAPHIE
1. Collecter
2. Partager
3. Livrer
PARTIE III : CONCEPTION ET PRESENTATION DE LโAPPLICATION
CHAPITRE V : LES BASES DE LA PROGRAMMATION ANDROID
I. POURQUOI LA PROGRAMMATION ANDROID [7]
II. ANDROID STUDIO [7]
III. STRUCTURE DE PROJET ANDROID [13]
IV. CONCEPTS DE LโAPPLICATION ANDROID [8]
1. Les activitรฉs
1.1. Quโest-ce quโune activitรฉ
1.2. Cycle de vie dโune activitรฉ
2. Les vues
2.1. Les vues basiques
2.2. Les widgets les plus utilisรฉs
2.2.1. Text view
2.2.2. Button
2.2.3. Checkbox
2.2.4. Radio Button et Radio Group
2.3. Les gabarits [14]
3. Les ressources
V. LES BASES DE DONNEES SQLITE [12]
1. Historique
2. Types de donnรฉes
CHAPITRE VI : PRESENTATION DE LโAPPLICATION
I. CONCEPT DE LโAPPLICATION
II. PHASE DโINITIALISATION
1. Installation de lโapplication
2. Dรฉmarrage de lโapplication
3. Organigramme de lโapplication
III. MENU DE LโAPPLICATION
1. Menu Record
1.1. Gestionnaire des sessions
1.2. Gestionnaire des points connus
1.3. Ajouter Station / Reference / Mesure
1.4. Lโonglet rรฉsultat
2. Menu Outils
2.1. Courriel
2.2. Boussole
2.3. Crรฉdits
3. Menu Quitter
Conclusion
Bibliographie
Webographie
Annexe
Tรฉlรฉcharger le rapport complet