Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
cours:plim:projet16_17:gr18:gr18 [2016/10/24 23:27] tgrillo |
cours:plim:projet16_17:gr18:gr18 [2017/02/19 16:34] (Version actuelle) tgrillo [RENDU FINAL] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Projet Groupe 1 ====== | + | ====== Projet Groupe 18 ====== |
==== Présentation du projet ==== | ==== Présentation du projet ==== | ||
Ligne 11: | Ligne 11: | ||
=== Présentation === | === Présentation === | ||
- | ___ActivityWatcher___ consiste à récupérer la durée d’utilisation de chaque application sur | + | __ActivityWatcher__ consiste à récupérer la durée d’utilisation de chaque application sur |
le téléphone et de produire un rapport hebdomadaire sous forme de barres de progressions | le téléphone et de produire un rapport hebdomadaire sous forme de barres de progressions | ||
les une au dessous des autres. | les une au dessous des autres. | ||
Ligne 38: | Ligne 38: | ||
==== Matériel disponbile ==== | ==== Matériel disponbile ==== | ||
- | * HTC one m8 | + | __HTC one m8__ |
* Caractéristiques techniques : | * Caractéristiques techniques : | ||
* http://www.gsmarena.com/htc_one_(m8)-6074.php | * http://www.gsmarena.com/htc_one_(m8)-6074.php | ||
Ligne 45: | Ligne 45: | ||
* WLAN Wi-Fi 802.11 a/b/g/n/ac, dual-band, Wi-Fi Direct, DLNA, hotspot ; | * WLAN Wi-Fi 802.11 a/b/g/n/ac, dual-band, Wi-Fi Direct, DLNA, hotspot ; | ||
* Bluetooth v4.0, A2DP, aptX | * Bluetooth v4.0, A2DP, aptX | ||
- | * GPS Yes, with A-GPS, GLONASS | + | * GPS, with A-GPS, GLONASS |
- | * NFC Yes (market/operator dependent) | + | * NFC (market/operator dependent) |
- | * Infrared port Yes | + | * Infrared port |
* Radio Stereo FM radio, RDS | * Radio Stereo FM radio, RDS | ||
* USB microUSB v2.0 (MHL TV-out), USB Host | * USB microUSB v2.0 (MHL TV-out), USB Host | ||
- | * ASUS ZenPhone | + | |
+ | |||
+ | __ASUS ZenPhone__ | ||
* Caractéristiques techniques : | * Caractéristiques techniques : | ||
* https://www.asus.com/fr/Phone/ZenFone_2_ZE551ML/ | * https://www.asus.com/fr/Phone/ZenFone_2_ZE551ML/ | ||
Ligne 59: | Ligne 61: | ||
* 4G | * 4G | ||
* GPS: GPS/GLONASS/QZSS/SBAS/BDS | * GPS: GPS/GLONASS/QZSS/SBAS/BDS | ||
- | * NFC: Yes | + | * NFC |
* Intel® Atom™ Quad Core Z3580 (2.3GHz) | * Intel® Atom™ Quad Core Z3580 (2.3GHz) | ||
* 4GB LPDDR3 RAM | * 4GB LPDDR3 RAM | ||
- | ==== Ressouces utilisées dans le Projet ==== | + | ==== Environnement de développement ==== |
- | * Pour ce projets nous utiliserons exclusivement les données d'utilisation des applications. | ||
* Android | * Android | ||
- | * Environnement de logiciel : Android | + | * Android Studio 2.2 |
- | * Version OS : | + | |
* https://developer.android.com/reference/android/app/usage/package-summary.html | * https://developer.android.com/reference/android/app/usage/package-summary.html | ||
- | * Xamarin | + | * https://developer.android.com/guide/topics/location/strategies.html |
- | * Environnement de logiciel : Cross développement (multiplatformes) | + | |
- | * https://developer.xamarin.com/samples/monodroid/android5.0%5CAppUsageStatistics/ | + | ==== Ressouces utilisées ==== |
- | * Faisable ! Nous disposons d'au moins deux technologies dans lesquelles ce type de développement est possible. Par ailleurs des applications proposant ce type de service existent déjà. A nous de nous démarquer afin de proposer une expérience différente. | + | * Données d'utilisation de l'API Android |
+ | * Echantillonnage GPS | ||
+ | |||
+ | |||
+ | ==== Faisabilité ==== | ||
+ | A l'heure actuelle, l'intégralité des smartphones est équipée de puces GPS plus ou moins performantes. | ||
+ | Le SDK android est probablement l'environnement le plus documenté et l'algorithme K-Means dispose de nombreuses implémentations qui ont fait leurs preuves. | ||
+ | |||
+ | Nous avons fait nos choix en matière de technologies afin d'optimiser nos chances de réussite dans l'objectif que nous nous sommes fixé. | ||
+ | |||
+ | Nos recherches dans ce qui existe dèjà dans ce domaine nous ont conforté dans l'idée que notre projet est non seulement faisable, mais aussi innovant. | ||
+ | |||
+ | |||
+ | ==== Algorithme ==== | ||
+ | |||
+ | Le travaille à effectuer sur les données récupérées relève de la classification. Nous devrons pouvoir détecter d'une part quelles sont les zones dans lesquelles le téléphone est le plus solicité. Nous devons détecter quels sont les crénaux horaires les plus critiques et quels sont les applications les plus utilisées. | ||
+ | |||
+ | Pour cela nous avons choisi l'algorithme K-Means, pour des raisons de facilité à mettre en oeuvre, de documentation et d'efficacité. | ||
+ | |||
+ | |||
+ | ====== RENDU FINAL ====== | ||
+ | |||
+ | == Téléchargement == | ||
+ | |||
+ | Vous trouvez [[https://www.dropbox.com/s/o5fbbowgbrh0tuv/ActivityWatcher.rar?dl=0|içi]] une archive RAR contenant les sources ainsi que les exécutables. | ||
+ | |||
+ | == Application == | ||
+ | Le code source de l'application se trouve dans le répertoire ActivityWatcher. C'est une application Android, donc le projet doit être importé dans Android Studio. | ||
+ | |||
+ | Dans l'archive vous trouverez également le .apk de l'application installable directement grâce à la commande : | ||
+ | adb install -l activitywatcher.apk | ||
+ | |||
+ | Note sur l'application : | ||
+ | Celle-ci peut fonctionner hors connexion grâce à la base de donnée locale du téléphone qui fait tampon. Après expérimentation, il suffit replacer le smartphone et le serveur sur le même réseau local en veillant à ce que la configuration soit correcte, puis, de sélectionner le jour de l'expérimentation dans la liste pour que l'application lance une synchronisation avec le serveur. | ||
+ | |||
+ | == Serveur == | ||
+ | |||
+ | Le backend de notre application qui reçois, traite, et renvoie les données a été réalisé en JEE grâce au framework spring-boot. | ||
+ | Le code source du serveur est disponible dans le répertoire ActivityWatcherBackend. | ||
+ | L'effort a été fait de changer de type de base de données, pour permettre une exécution simplifier. La base de données mySQL est donc remplacée par un homologue embarqué : H2. | ||
+ | |||
+ | Il s'agit d'un projet Gradle, importable très simplement dans IntelliJ en tant que projet Gradle. Il faudra effectuer une synchronisation dans le volet Gradle, pour qu'il se charge de télécharger les dépendances. | ||
+ | |||
+ | Vous trouverez le .jar du server, directement exécutable grâce à la ligne suivante : | ||
+ | |||
+ | java -jar activitywatcher-backend-1.0.0.jar | ||
+ | |||
+ | == HOW TO == | ||
+ | |||
+ | Voici comment installer notre application : | ||
+ | |||
+ | __Déployer le backend__ | ||
+ | * Executer activitywatcher-backend-1.0.0.jar sur l'ordinateur hôte : | ||
+ | * java -jar activitywatcher-backend-1.0.0.jar | ||
+ | |||
+ | __Déployer l'application__ | ||
+ | * adb install -l activitywatcher.apk | ||
+ | * Au lancement donner toutes les autorisations nécessaires au fonctionnement de l'appli (elle les demandes elle même !) | ||
+ | * Déplier le menu drawer sur la gauche et appuyer sur paramètres pour afficher la popup de configuration du serveur. | ||
+ | * Entrer l'adresse IP de l'ordinateur hôte du serveur et le port 8080. | ||
+ | * L'application est prête à être utilisée. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
- | ==== | ||