2009-09-04 6 views
7

J'aimerais pouvoir mesurer les fonctionnalités de notre application qui sont utilisées. Par exemple, combien certaines fenêtres sont ouvertes, certains contrôles sont cliqués. Je peux imaginer un outil qui mesure cela et envoie un rapport à un serveur Web, qui peut ensuite le traiter pour en créer des données significativesY at-il une bibliothèque C++ ou Qt disponible pour mesurer l'utilisation des fonctionnalités d'une application?

+0

Comme SadSido a dit, probablement non. Nous avons recherché, puis roulé les nôtres, consistant essentiellement en un hook de message Windows (consignation des actions de l'utilisateur telles que "bouton X cliqué"), des instructions de journalisation pour les fonctionnalités pertinentes et un ensemble de scripts Python pour filtrer, formater et agger le résultats. – peterchen

Répondre

6

Première question: devriez-vous le faire? Les gens n'aiment pas quand leurs logiciels téléphones à la maison sans leur consentement. Mais en supposant qu'ils sont d'accord avec cela:

C'est techniquement possible, avec deux approches: automatique ou manuelle. Bien sûr, compte tenu de votre question, je suppose que vous utilisez Qt.

automatique:

  • donner un nom propre à tous les QObject que vous voulez tracer
  • installer un filtre d'événement sur votre application pour attraper tous les ChildEvent sur des objets qui sont créés et détruits.
  • à partir du ChildEvent, vous pouvez extraire le object's name
  • puis vous pouvez déjà vous connecter à quelle fréquence cet objet est créé. Vous pouvez également utiliser la possibilité d'ajouter un écouteur d'événement à cet objet spécifique, pour être informé quand il est affiché ou masqué ou suivre un autre type d'utilisation
  • tout journal dans un fichier journal

Manuel:

  • Ajoutez des instructions de journal à la partie pertinente de votre code que vous souhaitez suivre.

final:

  • envoyer le fichier journal sur une base régulière
+0

Et n'oubliez pas de garder un œil sur la taille de votre fichier journal. "L'espace disque est insuffisant" Les erreurs peuvent être très gênantes. – pmr

+1

C'est un outil précieux pour les bêtas publiques - juste pour voir la couverture des fonctionnalités que vous avez vraiment atteint. – peterchen

+0

Je doute que cette question était de le faire sans le consentement de l'utilisateur. Après tout, il existe généralement des lois concernant la collecte et la conservation des données et au moins en Europe, vous ne pouvez pas suivre l'utilisateur sans le savoir (sauf pour les pages Web où il est essentiellement impossible de prouver que vos interactions sont suivies ...) . – Joey

1

Je suppose que votre réponse est "Non". Je ne pense pas qu'il existe de telles bibliothèques.

Je pense également que la meilleure solution ici est la journalisation, ce qui signifie que vous devez introduire manuellement certaines fonctions de journal dans vos fonctions principales du programme et renvoyer le fichier journal. Quand il s'agit de la journalisation, vous pouvez envisager d'utiliser la programmation orientée aspect (et sont tels outils pour C++), cela peut simplifier votre tâche ...

Questions connexes