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