Stage de Maxime Bourgeois - IUT Charlemagne Nancy - [8/04/13 au 14/06/13]
Important : cette page est réservée au suivi du stage, merci de ne pas la modifier
Informations générales pour les stagiaires
Pour toute information concernant ce stage :
Sujet
Documents de travail
Stage (avril - juin 2013)
Avril
- 8, arrivée
- 8,9,10,15, diverses présentations des services, du travail de documentaliste et du VO
- 9-12, études et testes de divers application de réalité augmantée comme :
-
- Touristique : Le château-fort de Cherbourg
- Astronomique : Pocket Universe, Sun Seeker
- Carte : ArroundMe, Le Bar Guide, Bionic Eye
- Localisation : DishPointer (satellites ), Panoramascope (sommets)
- Photos : Layar
- Webcam : C3picasso.com, Ge.ecomagination.com
- Mesure : AugMeasure(distance), Theodolite(boussole etc...), Peak.ar(sommet de montage)
- Publicitaire : SnapShop Showroom
- Jeux : Fairy Trails
- 15-19, études sur les façons de faire un fondu entre plsuieurs images, élaboration d'un premier programme inspiré des méthodes de fondu utilisé en javascript. Cette méthode consiste à modifier la transparance de l'image vu par l'utilisateur, pour faire apparaitre l'image en dessous petit à petit jusqu'à la voir complètement. Pour cela j'ai utiliser la classe "View" d'Android qui permet d'utiliser la classe "Canvas". Le Canvas permet de dessiner sur une vue comme l'objet Graphics en java et contient une méthode invalidate() qui permet d'éxécuter le contenu de la méthode pour déssiner en continu. Pour modifier la transparence de l'image j'ai utilisé le paramètre alpha qui fais parti de l'objet "Paint". Le paramètre alpha est également contenu pour chaque pixel de l'image(argb).
- 22-26, étude des différentes façons de faire un morphing d'images et élaboration d'une ébauche de programme.
Mai
- 29-3, élaboration du programme de fondu, dont l'algorithme est : * Parcour de l'image pixel par pixel. * Pour chaque pixel on décompose ça valeur celon la norme rgb * On compare les valeur rouge, vert, bleu du pixel a modifier par rapport à la valeur auquel on veux arriver et on augmante ou diminu cette valeur. * Pour finir on dessine l'image et le programme recommence tant que tous les pixels ne sont pas identiques à ceux auquel on veut arriver.
Début de l'optimisation du programme qui met entre 900ms et 1000ms pour le calul d'une image. Elboration d'un programme contenant deux threads(non fonctionnels car les données auquel j'accéde sont des fois traiter en même temps, ce qui pose problème). Elaboration d'un programme où l'image est redissener à chaque fois avec simplements la moitié des ces pixels modifier. Le programme met maintenant environs 300ms pour le calcul d'une image.
- 6-10, optimisation du programme de fondu, mis en place d'un tableau d'entier contenant le contenu de chaque pixel de l'image à traiter pour optimiser les performances, création de variables quand les données sont utilisées plus d'une fois dans la même méthode ou dans la class.
- 13-17, recherche d'outils permettant de tester les performances d'un programme java pour ensuite l'optimiser au mieux. J'ai trouver 3 programme qui permettent d'effectuer ce genre de test, Jrat(Java Runtime Analysis Toolkit), VisualVM et TPTP (Eclipse Test & Performance Tools Platform). Ce genre de programme permet de voir le temps d'éxécution de chaque méthode, l'utilisation CPU, RAM, Threads..de chaque programme Java, ce qui ne pas permis d'ajuster finement chaque ligne de mon programme autre qu'en faisant des tests à la main.
Études des différentes façons de créer des threads dans le système Android. Les thread sont indispensables lors de calcules lourd pour ne pas bloquer le thread principal de l'application (ici la class "MainActicity"). J'ai découvert que Android pocédais différents systèmes de thread, les threads simple, les handlers (pour comuniquer) et les
AsyncTasks. Ici le plus adapter est un thread simple dans la class principal cependant il est impossible de modifier l'affichage a partir d'un thread.
Juin
- 11, Pré-soutenance
- 20, Soutenance
Sauvegardes
- Vous avez accès à un serveur SVN sauvegardé quotidiennement (identifiants donnés au début du stage)
- svn://quiwi2.strasbg.fr/projets
Liens
Versions testables
Testé sur ...
Documentation
- Rapport de stage (pdf)
- Diaporama de la soutenance de stage (pdf (N.B. draft))
- Démo vidéo éventuelle
Informations/travaux divers
Travail post stage éventuel
Liste des améliorations à envisager
Bugs connus