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

Composants graphiques Android Discussion :

Mémoire non restitué après ImageView


Sujet :

Composants graphiques Android

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Mémoire non restitué après ImageView
    Bonjour à tous.

    Je developpe actuellement une application sous Android Studio et voici mon problème :

    Une des activités possède de nombreuses ImageView, lorsque cette activité est créée la mémoire s'emballe un peu mais rien d'inquiétant je pense. Le problème survient surtout lorsque l'on rechange d'activité (pour revenir à l'activité principale par exemple), en effet la mémoire n'est pas restituée. Un peu comme si l'application avait chargée les Images en mémoire et n'avait pas libéré la place ensuite. Et cela est vraiment embêtant car par la suite cela fait ramer l'application.

    Voici un screen shot de la mémoire du téléphone :

    Nom : Capture d’écran 2015-08-21 à 00.14.44.png
Affichages : 74
Taille : 38,1 Ko

    de 0 à 10 secondes : l'application s'ouvre sur l'activité principale
    de 10 à 20 secondes : je suis sur l'activité contenant de nombreux ImageView
    de 20 secondes à 45 secondes : je suis de nouveau sur l'activité principale

    Pour information les ImageView sont positionnés comme suit :
    <ScrollView>
    <TableLayout>
    <TableRow>
    <ImageView>
    <ImageView>
    <ImageView>
    </TableRow>
    <TableRow>
    <ImageView>
    <ImageView>
    <ImageView>
    </TableRow>
    </TableLayout>
    </ScrollView>

    Connaissez-vous une solution à mon problème ?

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Les images des ImageView ont bien toutes les résolutions ?

    Ensuite, il y a probablement un problème de contexte conservé en mémoire. Il faudrait voir le code.
    Mieux:
    Regarder quelles images sont encore en mémoire, et qui maintient des références vers ces images.

    Sous eclipse l'utilitaire mémoire permettait d'avoir un graphe avec en tête les objets ayant le plus de mémoire en référence directement ou indirectement. Je ne sais pas sous Android Studio.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Detail
    Bonjour Nicroman,

    Qu'entends-tu par : les images ont-elles toutes les résolutions ?
    Mes images sont placés dans le dossier drawables et sont en png, font 250x250 pour une taille environ de 40Ko

    Je n'arrive pas à trouver les infos dont tu parles sous Android Studio, grâce à Android Device Monitor je peux accéder à un Allocation Tracker, j'obtiens alors un tableau de ce style mais je ne comprend pas à quoi cela correspond.
    Pièce jointe 186105

    Sinon j'ai également accès à un onglet Heap qui me donne :
    Pièce jointe 186106

    La ligne surlignée et celle qui augmente fortement lorsque j'ouvre mon activité contenant toutes mes images view.

    Sinon pour ce qui ait du code je peux pas tout poster il est assez dense mais en gros dans le .java :
    Je charge de layout
    Puis pour chaque image je fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    // larg et marg sont des int
     
    TableRow.LayoutParams layoutParams = new TableRow.LayoutParams(larg, larg);
     
    monImage1 = (ImageView) findViewById(R.id.monImage1);
            monImage1.setPadding(marg, marg, marg, marg);
            monImage1.setLayoutParams(layoutParams);
            monImage1.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    //MON ACTION
                }
            });
    Pour le layout c'est comme dis précedement avec comme argument dans les ImageView :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <ImageView
          android:id="@+id/monImage1"
          android:src="@drawable/monImage1"
    />

Discussions similaires

  1. Libération de mémoire non réservée (operator=)
    Par 84mickael dans le forum C++
    Réponses: 7
    Dernier message: 27/05/2006, 13h30
  2. [VB.NET 2005]Composants non 'resetés' après un close
    Par NicolasJolet dans le forum Windows Forms
    Réponses: 3
    Dernier message: 15/03/2006, 11h23
  3. [SERVICE INTERACTIF] Form non utilisable apres logoff/logon
    Par Spart64 dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 05/03/2006, 13h32
  4. Réponses: 5
    Dernier message: 13/02/2006, 13h59
  5. [PHP/CSS] liens vus->non vus apres une MAJ
    Par epoz dans le forum Langage
    Réponses: 2
    Dernier message: 13/12/2005, 15h08

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