Créer une appli native sur Android pour un traçage GPS

De Wiki de Mémoire Vive
Aller à la navigation Aller à la recherche

Développement d’un Service GPS Android sous Linux avec Interface de Contrôle

Ce projet vise à développer une application Android fonctionnant en arrière-plan pour récupérer la position GPS et l’envoyer à une base de données InfluxDB, tout en offrant une interface utilisateur permettant de démarrer et arrêter le service. Le développement se fait sous Linux, sans Android Studio, en utilisant des outils en ligne de commande tels que Gradle, ADB et l’Android SDK.

1. Configuration de l’Environnement

L’installation des outils nécessaires commence par la mise en place d’un JDK, suivi du téléchargement et de la configuration du SDK Android. Les outils de compilation et d’interaction avec les appareils Android sont ensuite installés via des commandes adaptées. La configuration des variables d’environnement garantit l’accès aux outils depuis le terminal.

2. Création du Projet

Le projet est structuré manuellement en définissant une architecture de fichiers claire. L’application est conçue pour inclure un service Android qui tourne en arrière-plan et une activité principale servant d’interface utilisateur. La configuration du projet est réalisée à travers Gradle pour gérer les dépendances et spécifier les paramètres de compilation.

3. Développement de l’Application

L’application repose sur un service en arrière-plan capable de récupérer la position GPS de l’appareil à intervalles réguliers. Ces données sont ensuite envoyées à une base de données InfluxDB via une requête HTTP. Une gestion efficace des ressources est mise en place pour garantir la stabilité du service et limiter la consommation d’énergie.

Une interface utilisateur est développée pour permettre à l’utilisateur de contrôler le service GPS. Deux boutons sont intégrés pour démarrer et arrêter le service à la demande. L’application gère également les permissions requises pour l’accès à la localisation.

4. Compilation et Déploiement

Une fois le développement terminé, l’application est compilée avec Gradle et installée sur un appareil Android via ADB. Des commandes permettent de vérifier l’état du service et de s’assurer que les données sont correctement transmises à la base de données.

5. Perspectives et Améliorations

Ce projet peut être enrichi par l’ajout d’une notification pour indiquer que le service est actif, d’un historique des positions pour un suivi plus détaillé, ou encore d’un contrôle distant via une API REST ou un système MQTT. Il offre ainsi une base solide pour toute application nécessitant une gestion de la localisation en arrière-plan.

MISE EN OEUVRE

apt update
apt install default-jdk
java -version

export ANDROID_HOME=/usr/lib/android-sdk
export PATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH

echo 'export ANDROID_HOME=/usr/lib/android-sdk' >> ~/.bashrc
echo 'export PATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH' >> ~/.bashrc

Vérifier,
echo $ANDROID_HOME
which adb

télécharger les outils de ligne de commande (nécessaire hors android studio)
https://developer.android.com/studio?hl=fr#command-tools

mkdir -p /usr/lib/android-sdk/cmdline-tools

déplacer le zip, et decompresser,
mv commandlinetools-linux-*.zip /usr/lib/android-sdk/cmdline-tools/
cd /usr/lib/android-sdk/cmdline-tools/
unzip commandlinetools-linux-*.zip
mv cmdline-tools latest

on s'occupe des Path,
echo 'export ANDROID_HOME=/usr/lib/android-sdk' >> ~/.bashrc
echo 'export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

on vérife,
which sdkmanager
sdkmanager --list

Maintenant , sdkmanager devrait être bien configuré.