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:41] tgrillo [Projet Groupe 1] |
cours:plim:projet16_17:gr18:gr18 [2017/02/19 16:34] (Version actuelle) tgrillo [RENDU FINAL] |
||
---|---|---|---|
Ligne 65: | Ligne 65: | ||
* 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. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
- | ==== | ||