Franckdroid Posté(e) 1 décembre 2011 Share Posté(e) 1 décembre 2011 (modifié) Bonjour, J'ai récemment mis mon application sur android market et j'ai eu des retours d'utilisateurs comme quoi l' application aurait des lags ou latence. Pourtant j'ai testé sur un galaxy s2 et Xperia mini pro , L'application répond parfaitement sans aucun soucis de latence. Il s'agit de l'application HipHop Maker Lite ,si parmis vous quelques personnes pourrait tester et me dire s'il y a bien ce probleme. je vous en remercie Comment Pourrais-je tester/voir sur Eclipse si il y a des lags? Merci Modifié 1 décembre 2011 par Franckdroid Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
kanchi Posté(e) 2 décembre 2011 Share Posté(e) 2 décembre 2011 (modifié) bonjour, fais attention, tes 2 téléphones sont des 2.3 (profitant du concurent garrbage collector) avec 512Mo de RAM (ce qui est conséquent). des problèmes de latence (pour peut que ton application ne soit pas lourde niveau CPU), dont du a des action de garbage collector. Android 2.3 a amélioré la situation, en déclenchant de petit garbage collector qui n'interrompent pas le fonctionnement de ton application la question qu'il faut te poser est : est ce que je fais trop de new, en particulier quand un utilisateur fait du bouton smasher. Je ne connais pas ton implementation, donc je ne peux pas vraiment t'aider, mais si tu connais quelqu'un avec un telephone 2.2 ou plus bas, tu peux essayer de voir ce que ca donne, c'est la piste que je viserais. concernant eclipse, j'ai peur qu'il n'y ait pas grand chose ( peut être sur l'émulateur, si ca fonctionne bien? ) Modifié 2 décembre 2011 par kanchi Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Franckdroid Posté(e) 2 décembre 2011 Auteur Share Posté(e) 2 décembre 2011 (modifié) Merci de ta réponse kanchi. J'avais pas du tout penser a ce probleme de garbage collector. Il est vrai que jai beaucoup de New a la suite , chaque bouton de mon application lance un son...donc en réaliter qui ne libere jamais la mémoire a ce que j'ai compris. ne serait-il pas interessant dans ce cas de mettre un system.gc() a la fin de chaque "sous fonction " de bouton? Dans l émulateur lorsque je vais faire une action de boutons dans mon application , il met en orange dans le LogCat " Write blocked for 119ms,1 dalayed writes.." Je vais essayer comme tu la proposer de trouver un android sous version 2.2 ou inferieur. Merci . Modifié 3 décembre 2011 par Franckdroid Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
kanchi Posté(e) 3 décembre 2011 Share Posté(e) 3 décembre 2011 Forcer un gc n'est pas forcement la bonne solution, ton application a vocation a avoir un son constant si l'utilisateur s'en sert en tapant comme un bourin essaye plutot d'initoaliser tout tes son au demarrage ( bouffant plein de ram, mais ton application en a BESOIN), et de declencher les sons sans faire un new. Je ne sais pas comment tu declenche tes son (si tu veux mettre le bout de code je taiderais potentiellement) mais il vaut mieux initialiser et utilisier ( voir recycler) plutot que faire des new au milieu Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Franckdroid Posté(e) 3 décembre 2011 Auteur Share Posté(e) 3 décembre 2011 Mauvaise idée pour le system.gc donc. Je vais tenter d'initaliser tout sa. Voici un bout de code , tout les boutons sont lancés de cette maniere Merci pour ton Aide:) Button.OnClickListener buttonPlay1OnClickListener = new Button.OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); float curVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC); float maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC); float leftVolume = curVolume/maxVolume; float rightVolume = curVolume/maxVolume; int priority = 0; int no_loop = 0; float normal_playback_rate = 1f; soundPool.play(soundID1, leftVolume, rightVolume, priority, no_loop, normal_playback_rate); } }; Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
kanchi Posté(e) 5 décembre 2011 Share Posté(e) 5 décembre 2011 je ne vois rien de particulièrement mauvais dans ton implémentation (j'aurais remplacé la portion de code : AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); float curVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC); float maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC); par des variables statique, quitte a les mettre à jour quand un utilisateur clique sur le bouton "volume down" ou "up". dans ton constructeur de :SoundPool (int maxStreams, int streamType, int srcQuality) tu as mis quoi en maxstream? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Franckdroid Posté(e) 5 décembre 2011 Auteur Share Posté(e) 5 décembre 2011 En Maxstreams j'ai mis à 100 (c'est un peu beaucoup non?) .Pense tu que cela peu poser probleme pour le garbage collector ? Je l'ai mis a 100 car enfaite le maxstreams correspond au nombre max de fois que l'on peut jouer simultanement , excedé ce maxstreams il y a un ordre de priorité qui s'établie et qui annule un son precedemment jouer. Je l'ai mis a 100 car je ne souhaitai pas qu'il y est d'ordre de priorité. Merci beaucoup.:) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
kanchi Posté(e) 6 décembre 2011 Share Posté(e) 6 décembre 2011 je t'aurais bien proposé de mettre une valeur plus petite, même si je ne sais pas si c'est vraiment ça le problème :/ j'ai un Motorola cliq qui traine, il faut que je le retrouve et que je teste ton application dessus... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Franckdroid Posté(e) 6 décembre 2011 Auteur Share Posté(e) 6 décembre 2011 Je mettrais une valeur inferieur pour plus de sureté mais je doute que ce soit sa le probleme :mellow: Mallheuresment De mon coté je n'ai trouver personne ayant une 2.1 ou inferieur .. Ca m'aiderai éormement si tu pouvais remettre la main dessus , ce serai super on serai fixé. Un grand merci ) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.