![]() |
Un exercice à l'apprentissage d'Android Le Tachymètre |
- La version 1 révision 0 de ce "Tachymètre" - --ooOoo--
En dehors du problème de précision qu'il s'agira de tenter d'améliorer par la suite, l'inconvénient majeur de la version d'essai est l'impossibilité d'interrompre l'application sur certains évènements extérieurs. Il est donc maintenant question de trouver une solution pour palier à ce problème grâce à l'utilisation de la classe "service" pour lancer une activité d'arrière-plan. |
![]() |
Je vais donc m'attacher à ce problème d'interruptibilité en toute priorité : on doit pouvoir, en particulier, téléphoner avec un tachymètre GPS toujours actif.
Caractéristiques de l'application "Tachymètre" :
Cette application se réduit à deux composants :
L'activité (2) doit donc tourner en permanence tant qu'elle n'est pas arrêtée. Travaillant en arrière-plan, elle ne peut pas avoir accès à l'écran d'affichage et Android ne sera jamais amené à la tuer ou à l'interrompre sauf erreur majeure.
L'application (1), l'activité-mère, gère l'affichage et l'ordonnancement de l'application. Elle pourra être arrêtée à loisir à condition qu'aucun synchronisme ne la lie à l'activité (2).
À cela, 2 impératifs :
A - L'activité (1) de gestion et d'affichage (nom de l'activité "TachyMetre") : | Source ICI |
L'écran d'affichage de l'application vue de l'utilisateur se présente comme suit :
La principale fonction d'un tachymètre est de fournir la vitesse instantanée durant un déplacement sur un parcours.
La présente application se propose de
fournir, à partir d'une capture GPS, un certain nombre d'informations
supplémentaires. Les principales sont :
Les vitesses sont exprimées en
kilomètres par heure.
Les distances sont exprimées en
kilomètres.
La durée du parcours est exprimée en
heures, minutes et secondes.
L'affichage des trois vitesses est assurée de manière numérique et avec des aiguilles plus faciles à lire.
Cependant, un parcours peut être interrompu plus ou moins longtemps pour de diverses raisons comme, par exemple, le temps d'un repas, un arrêt imprévu, etc... L'application prend donc en compte des tronçons successifs de parcours.
Le temps d'un tronçon étant non négligeable, le téléphone ne peut en aucune façon être bloqué par l'application « Tachymètre ». Celle_ci prend donc en compte des interruptions d'affichage sans interrompre la capture du parcours pour, par exemple, téléphoner, consulter un annuaire, exécuter une autre application ou tout simplement éteindre l'affichage de l'écran pour économiser la batterie.
D'autres informations moins
importantes, mais utiles éventuellement, sont affichées :
![]() à pieds, |
![]() en bateau |
![]() en voiture |
![]() en avion |
Enfin, la trajectoire est sauvegardée dans un fichier sur carte mémoire. Si cette dernière n'est pas montée, la sauvegarde est effectuée en mémoire interne.
Le parcours est sauvegardé au format « kml ». Il est donc directement affichable sous Google Earth version téléphone ou PC.
L'écran d'affichage se compose des éléments suivants :
1° - Les boutons :
Ils permettent de contrôler l'application. Ils sont de forme carrée, blancs quand ils sont actifs, gris quand ils ne le sont pas :
2° - L'échelle de graduation :
Elle permet de choisir le domaine d'utilisation du tachymètre en touchant les zones suivantes :
• la zone « 0-20 km/h » correspond au domaine pédestre. La capture des points s'effectue toutes les 2 secondes.
3° - Les informations principales :
Elles sont affichées sous forme numérique et avec des aiguilles :
Si une vitesse est supérieure à la graduation maximale affichée, son aiguille est fixée sur la graduation maximale mais les informations numériques restent valables.
4° - Les informations accessoires :
Elles parlent d'elles-mêmes.
À noter cependant que l'altitude n'est prise en compte que dans le domaine aéronautique, en planeur par exemple, pour visualiser les variations de hauteur dans les spirales en ascendances et les transits.
Dans les autres domaines, elle est à zéro mais le fichier est paramétré pour rester au niveau du sol de lieu.
5° - Exemple d'affichage sous Google Earth :
À remarquer, dans un trajet pédestre, les variations de trajectoire dues à l'imprécision des mesure à 3, 4 mètres près amplifiée par des difficultés d'accessibilité aux satellites à cause des immeubles de la ville. Il n'y a cependant pas d'ambiguité sur le trajet.
B - L'activité (2) de collecte des géolocalisations (nom de l'activité "TachyGPS") : | Source ICI |
Cette activité a pour fonction la capture des points de géolocalisation et la transmission dans un conteneur, les "Shared Preferences", des informations à afficher dans l'activité principale (1). Sa durée de vie est celle d'un tronçon de trajectoire délimité par un toucher du bouton "Pause" et celui d'un bouton "Reprise". Elle fonctionne en arrière-plan grâce à la classe "Service". L'activité est donc déclarée
public class TachyGPS extends Service
Le package "android.location" permet d'acquérir les informations du GPS. À ce niveau de développement, seules la longitude, la latitude, l'altitude et la précision sont acquises.
J'ai essayé dans le source d'atténuer les variations de la vitesse en faisant une moyenne de proche en proche des vitesses instantanées de plusieurs points (de 1 jusqu'à 5 points). Les résultats n'ont pas été concluants pour le domaine pédestre.
B - Conclusions sur l'application "Tachymètre" : |
Informatiquement, au fur et à mesure de l'avancement dans l'apprentissage, l'application ne pause aucun problème majeur. Son fonctionnement est tout à fait correct.
1° -
Les plus :
1° -
Les moins :
C - Installation de l'application "Tachymètre" sur le téléphone Android : |
La rubrique "Téléchargement/Installation" donne la marche à suivre pour l'installation de la dernière version de l'application.
--ooOoo--