IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Outils de débugage, quel IDE ?


Sujet :

Android

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Septembre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Septembre 2013
    Messages : 12
    Par défaut Outils de débugage, quel IDE ?
    Hello,

    Je suis débutant en programmation Android, et je compte m'y mettre pour réaliser quelques applications. Je fais des tutos, je progresse, je rage contre le Java (venant du C++..), mais mon principal souci actuel se trouve au niveau des outils.

    J'ai commencé sous Eclipse, puis Aptana, avant de passer sur Android Studio. Dans les 3 cas, je me suis retrouvé confronté à quelques problèmes et j'espère que vous pourrez me donner quelques solutions pour réduire le temps perdu :

    -Debugger : J'utilise beaucoup les breakpoints pour faire du pas à pas sur certains blocks : Android Studio met un temps fou à afficher le contexte en mode pas à pas. Ca peut durer jusqu'à 5 secondes par step alors que le contexte ne change pas. Y-a-t-il un moyen de faire du pas à pas plus rapidement ? Je m'y prend mal ? mon PC est-il la cause ? J'en viendrais presque à ne plus utiliser de breakpoints pour gagner du temps. Et je parle de breakpoints simples (pas de conditionnel ou de data breakpoins, je ne sais même pas si il y en a!)

    -Log : Pour le log, je n'ai pas l'impression que ce soit un problème de config, mais Logcat me logge des centaines de lignes à l'execution, si bien que j'en suis à mettre une clé dans mes log pour pouvoir filtrer. Quand je crashe, il faut aller retrouver la dernière ligne ou l'application a crashé, car le log continue à tourner même après un crash. J'ai beau essayer de filtrer .v, .i, .d, impossible d'avoir un log cohérent et clair. Le log m'annonce aussi des erreurs, qui n'ont absolument aucun impact sur l'application. Il y a d'autres alternatives à logcat pour récupérer le contexte d'un crash ?

    -Lenteur de l'émulateur : J'utilise AVD, comme beaucoup je suppose. D'une part l'émulateur met un sacré temps à se lancer, mais il est surtout très lent à l'execution en debug. Pour l'instant je fais des appli toutes betes, des formulaires, j'ai peur pour la suite. L'émulateur prend aussi beaucoup de mémoire, est il possible que j'émule un appareil trop puissant pour mon PC ?

    Ce sont les 3 premiers problèmes qui me plombent un peu la programmation. Est ce que je m'y prends mal ? Est ce que tous les IDE Android sont des usines à gaz ? Est ce que j'ai mal configuré le logiciel ? d'autres IDE revolutionnaires ?

    Ca ne se voit peut être pas dans mon post mais je suis vraiment motivé pour travailler sur Android. J'essaye juste d'optimiser un peu les outils utilisés parceque pour le moment, j'ai vraiment l'impression de passer plus de temps à attendre que le logiciel réponde que de l'utiliser.

    Merci pour vos réponses

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Par défaut
    Citation Envoyé par Xavi_bgsec Voir le message
    Hello,

    -Lenteur de l'émulateur : J'utilise AVD, comme beaucoup je suppose. D'une part l'émulateur met un sacré temps à se lancer, mais il est surtout très lent à l'execution en debug. Pour l'instant je fais des appli toutes betes, des formulaires, j'ai peur pour la suite. L'émulateur prend aussi beaucoup de mémoire, est il possible que j'émule un appareil trop puissant pour mon PC ?
    C'est vrai que l'émulateur est un peu lent, mais cela reste tout à fait acceptable. A prioiri, le point commun dans la liste de tes problèmes semble être ton pc.

    config perso: core i7, 12 Go de ram, debian wheezy 7.0 64 bits, eclipse 4.3

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Septembre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Septembre 2013
    Messages : 12
    Par défaut
    Mon PC n'est pas une foudre de guerre, mais concernant Visual Studio ou pour des jeux vidéos récents, il n'y a pas de problèmes. C'est justement la différence qui est assez frappante.

    Android Studio et AVD sollicitent peut être beaucoup la RAM ? (si l'emulateur réserve un slot de Ram correspondant à l'appareil émulé ?) ou bien beaucoup d'accès disque ?(vu l'explorer de projet)

  4. #4
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    Android Studio, je ne sais pas, mais l'IDE sur lequel il est basé (IntelliJ IDEA) demande moins de ressources qu'Eclipse, donc je suppute qu'Android Studio aussi.

    En mode debug, l'application est plus lente. Ca, c'est normal (demander à un langage de garder des objets en mémoire, d'inspecter le code et de faire attention aux optimisations JIT, je pense que ça ralentit tout les langages). De mon coté, je n'ai pas une aussi grosse lenteur (sauf sur du parsing massif de JSON/XML).

    Pour les logs : bienvenu dans le monde d'Android. Tu n'es pas le seul à utiliser Dalvik, et quand tu n'es pas le seul à utiliser une ressource, tu as les traces des autres. C'est pour cette raison (entre autre) que le premier paramètre du Log est un tag. Tu peux aussi filtrer par niveau de log.
    Après, cela dépend des terminaux. Les Samsungs ont la très mauvaise habitude de sortir des kilomètres de log totalement inutile par exemple.

    Pour l'émulateur, le créer avec l'architecture armeabi est plus rapide. Il y a une autre solution à base de machine virtuelle qui fait pas mal parler d'elle en ce moment : GenyMotion. Je l'utilise et à part une instabilité notable vis-à-vis d'ADB sous Linux, pas grand chose à signaler. Le problème que j'ai avec est que les images sont plus rapides que les terminaux réels. L'image du Nexus S est plus rapide que le mien x)

    Après, vu que tu viens du C++, tu peux peut-être t'intéresser au NDK. Google préconise de faire plutôt les applications en Java mais bon... j'ai quelques connaissances qui se sont amusées à faire des jeux en C++ pour Android avec un léger wrapper en Java, et ça a l'air de bien fonctionner.
    Par contre, je le dis de suite, je n'ai jamais approché le NDK. Je sais qu'il existe, je sais pour quelle raison, mais sans plus.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Septembre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Septembre 2013
    Messages : 12
    Par défaut
    Merci pour la réponse.

    Bien entendu, le debug ralentit l'application. Sur n'importe quel environnement. Mais je ne me souviens pas avoir vu d'IDE aussi lent depuis un moment, à tel point que je me demande si c'est normal ou pas. Le 'confort' de programmation est très important, surtout quand c'est pour des projets perso.

    Le log ne sert donc à rien en l'état ? Je pense que je vais bricoler un log perso en dehors de logcat si j'ai vraiment besoin de quelque chose d'utile. J'ai beau filtrer les niveau de log, aucun filtre ne répond à ce que je voudrais voir.Un log trop bavard, c'est jamais bon

    Je vais m'intéresser à Armeabi et Genymotion.

    Et evidemment, si il y a moyen de faire du C++, je vais m'y intéresser. J'ai quand même quelques réticences à traduire du code en Java mais ça ne coute rien de regarder.

    Globalement, je reste quand même un peu déçu des outils qui sont offert pour la programmation su rmobile. Ca passera peut être avec le temps.

  6. #6
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    Le temps de réponse de l'IDE me surprends, vraiment.
    J'ai les lenteurs normales dues au debug, mais l'IDE est toujours très fluide. Il faudra que je teste sérieusement Android Studio un de ces quatre matins...
    Sous IntelliJ IDEA, je n'ai jamais constaté ce problème, donc cela me surprends.

    Concernant les Logs, non, ils ne servent absolument pas à rien. C'est juste qu'il faut s'habituer à avoir du bruit. Si tu n'en veux pas, tu peux, par exemple, tous les faire précéder de "monapplication". Ainsi, un filtre là-dessus ne te montrera que les tiens.
    Dans Android Studio, regarde dans les options, sous "live templates", crée t'en correspondants à Log.w/d/i/v/e (et wtf si tu veux) avec un template du style Log.d($TAG$.$APPEND$, $END$); avec $TAG$ ayant le nom de ton projet en valeur par défaut et coche "skip if defined". $APPEND$ est optionnelle... au cas où tu voudrais rajouter un truc après. Enfin, tu vois l'idée.

    Le mieux serait de juste insérer une constante en TAG... et ce n'est pas très compliqué suite à ça

    Ainsi, en faisant logw suivi de l'appui sur tab, tu auras directement un Log.w("MonProjet.maMethode", #position curseur#);
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Septembre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Septembre 2013
    Messages : 12
    Par défaut
    Je vais essayer d'utiliser Intellij pour voir si il y a une difference. Ou alors je m'y suis mal pris, ce qui est possible aussi.

    Pour les logs, je pourrais m'en sortir sans logcat. J'ai déja essayé de faire une fonction de log filtrable sous logcat. Ca marchait bien, mais à ce tarif la je prefère encore coder moi meme un log perso.

    J'espère que mes prochains sujet concerneront des questions de code la prochaine fois

  8. #8
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Citation Envoyé par Xavi_bgsec Voir le message

    Le log ne sert donc à rien en l'état ? Je pense que je vais bricoler un log perso en dehors de logcat si j'ai vraiment besoin de quelque chose d'utile..
    Pour les logs tu défini un TAG qui permet d'isoler tes message et ensuite éventuellement un filtre sur la sévérité du Log.

    Je ne sais pas ce qu'il en ai dans android studio mais dans Eclipse par défaut tu as deux option de visualisation des log :
    Tous et ceux propre à ton application , ce qui aide pas mal.
    Si tu sélectionne ton application et "error" en filtre tu ne verras que les exception lié à ton application.

    Bref c'est à mon avis juste un problème de configuration / compréhension de l'outil.

    En mode débuggage effectivement l'IDE est un peu plus lent qu'en mode normal mais rien de choquant chez moi , les breakpoint sont réactif.
    En mode développement normal je vois pas de différence entre visual et Eclipse en terme de performance (Core i5 , 8Go de ram).

    L'émulateur est merdique , c'est un fait. Comparé à l'émulateur IOS par exemple, il est ridicule. Mais il à le mérite d'être multi plateforme. Je pense honnetement qu'il faut développé avec un téléphone et ne garder les émulateur que pour des test très particulier (résolution à la con par exemple).
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre habitué
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Septembre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Septembre 2013
    Messages : 12
    Par défaut
    Merci pour les précisions. Je vais approfondir le log pour voir si effectivement je l'ai mal compris, ou si je me suis braqué trop vite avec.

    Et je vais utiliser mon téléphone directement pour les tests, ça pourrait me faciliter la vie.

  10. #10
    Membre habitué
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Septembre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Septembre 2013
    Messages : 12
    Par défaut
    Je confirme que ça passe beaucoup mieux avec un téléphone directement branché.

    Par contre ça me confirme aussi que mon interface est complètement flinguée (pas adaptée du tout à la vue paysage et la vue 'saisie'). Du coup je me demande si c'est intéressant de faire un linearlayout pour un formulaire, car je ne peux pas me permettre d'étirer mon formulaire à l'extreme comme ça..

    Ca fera surement l'objet d'un autre topic si je m'y retrouve vraiment pas.

  11. #11
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par défaut
    Tu peux mettre ton LinearLayout dans une ScrollView, comme ça ton formulaire pourra s'étendre ou tu peux utiliser une ListView qui est plus ou moins la combinaison des deux (tu utilise du XML dans le premier cas et du Java dans le deuxième cas).

    Sinon Android studio est encore en Alpha ou Beta, il n'est pas conseillé pour un projet professionnel car pas stable. Si tu débutes sur Android, ce n'est pas vraiment le bon IDE pour toi.

    Eclipse est assez lourd (le démarrer avec eclipse -clean dans la console peux aider) mais c'est celui que j'utilise au travail car je connais un bon paquet de raccourcis (refactoring, génération de code) qui me font gagner énormément de temps. Mais j'ai découvert que InteliJ,
    que je te conseille,
    qui à l'air plus léger sur lequel on peut dans la version community (gratuite) développer des appli Android. Il semble que je peux utiliser le mapping de raccourci d'eclipse (en esperant qu'ils y soient tous) et qu'on peut importer un projet eclipse (reste à vérifier que l'import marche aussi avec les projet android).

    Sinon, l'émulateur est vraiment lourd, il vaux mieux tester les appli sur un vrai téléphone. Par contre, il faut savoir qu'a la longue (ou bout de peut-être 3, 4 mois) le connecteur micro-USB s'abime, ça peut être problématique. Donc il vaut mieux utiliser un ancien téléphone (pas trop vieux quand même il faut au moins qu'il ait ICS).

  12. #12
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Par contre, il faut savoir qu'a la longue (ou bout de peut-être 3, 4 mois) le connecteur micro-USB s'abime
    J'ai un nexus S qui à deux ans , que je branche et débranche tous les jours sans souçis
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  13. #13
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    Pareil.
    Bon, les chutes sur le connecteur alors qu'il est branché tendent à diminuer fortement sa durée de vie par contre...

    Pour répondre aux points sur IDEA :

    Citation Envoyé par atha2
    Il semble que je peux utiliser le mapping de raccourci d'eclipse (en esperant qu'ils y soient tous) et qu'on peut importer un projet eclipse (reste à vérifier que l'import marche aussi avec les projet android).
    Il y a bien un mapping Eclipse, qui me semble être proche des raccourcis d'Eclipse normaux. Par contre, il est possible qu'il y ai certains conflit sous Linux sur d'autres fonctionnalités propres à IDEA (typiquement un raccourci mappé sur ctrl + alt +F1... ça surprend quand on est pas réveillé...).

    Concernant l'import de projet, il fonctionne assez bien, avec un bémol : les dépendances inter-projet. IDEA ne les gère pas de la même manière qu'Eclipse, donc il faut parfois faire mumuse à re-créer les dépendances à la main, ce qui est totalement rebutant quand on entame la prise en main. Par contre, il ne modifie pas les fichiers d'Eclipse (ou seulement à la demande), ne cassant pas le projet.

    Concernant l'émulateur, nous l'avons presque totalement laissé tombé où je bosse au profit de GenyMotion, qui démarre en moins de 30 secondes (généralement 15-20) et qui est très rapide à l'utilisation. Solution demandant une inscription, mais au panel restreint, par contre.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  14. #14
    Membre habitué
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Septembre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Septembre 2013
    Messages : 12
    Par défaut
    Tu peux mettre ton LinearLayout dans une ScrollView, comme ça ton formulaire pourra s'étendre ou tu peux utiliser une ListView qui est plus ou moins la combinaison des deux (tu utilise du XML dans le premier cas et du Java dans le deuxième cas).
    J'ai utilisé un scrollview mais il se trouve que j'avais une listview dans mon layout, et donc des problèmes d'interface (et j'ai pas envie de bidouiller).
    Il faut que je fasse un affichage alternatif en mode paysage,je ne sais pas encore trop comment procéder (autre activity ? switch de View ?). Enfin comme je disais je ne veux pas faire dériver le topic la dessus, je créerais un topic pour expliquer mieux mon problème.

    Sinon Android studio est encore en Alpha ou Beta, il n'est pas conseillé pour un projet professionnel car pas stable. Si tu débutes sur Android, ce n'est pas vraiment le bon IDE pour toi.
    Je suis encore loin du projet professionnel je te rassure. Visiblement ça me suffit et jusqu'à maintenant je le préfère à Eclipse et Aptana. A voirp our les autres solutions citées.

    Sinon, l'émulateur est vraiment lourd, il vaux mieux tester les appli sur un vrai téléphone. Par contre, il faut savoir qu'a la longue (ou bout de peut-être 3, 4 mois) le connecteur micro-USB s'abime, ça peut être problématique. Donc il vaut mieux utiliser un ancien téléphone (pas trop vieux quand même il faut au moins qu'il ait ICS).
    C'est par expérience que tu dis ça ou il y a des statistiques qui le prouvent ? Ca me semble assez étrange qu'un connecteur micro USB puisse s'abimer comme ça, c'est quand même fait pour (recharge, transfert de fichiers etc..). Après effectivement si le téléphone fait des cascades ça peut réduire sa durée de vie mais je le pense plus en sécurité connecté à mon PC que dans ma poche

Discussions similaires

  1. Quel IDE utilisez-vous pour développer en C ou C++ ? (De 2004 à 1014)
    Par tut dans le forum Choisir un environnement de développement
    Réponses: 90
    Dernier message: 14/09/2015, 12h32
  2. Réponses: 2
    Dernier message: 16/07/2012, 11h21
  3. [JSP]Quel IDE/editor pour JSP
    Par auboulot dans le forum EDI et Outils pour Java
    Réponses: 2
    Dernier message: 14/04/2005, 12h28
  4. Le lecteur c: est dans quel IDE?
    Par byte dans le forum Windows
    Réponses: 5
    Dernier message: 01/03/2005, 10h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo