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[modifier]

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[modifier]

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[modifier]

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[modifier]

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[modifier]

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[modifier]

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.

6. MISE EN OEUVRE (pas gagné car affreusement compliqué, avec des versions dans tous les sens)[modifier]

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

vérifier adb
adb devices

installer gradle et vérifier
apt install gradle
gradle -v

CREER STRUCTURE DU PROJET

C'est automatique avec gradle...

se mettre sur le bon répertoire et créer l'arborescence (sans les fichiers .*)

MyGPSApp/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── mygpsapp/
│   │   │           └── GPSService.java
│   │   │           └── MainActivity.java
│   │   ├── res/
│   │   │   └── layout/
│   │   │       └── activity_main.xml
│   └── build.gradle
└── gradle/
    └── wrapper/




Alimenter le fichier gradle :
nano build.gradle

dependencies {
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.squareup.okhttp3:okhttp:4.9.1'  // Pour envoyer des requêtes HTTP
}

Puis créer les 2 fichiers Java dans maygpsapp
...
créer le fichier AndroidManifest.xml dans le répertoire main


CONNEXION DU TEL
brancher en USB, mode transfert de fichiers en mode developpeur

trouver le tel,
adb devices
renvoie,
List of devices attached
0A291JEC214033	device