Der Hintergrundprozess für Android-Caches nimmt kontinuierlich zu

7

In meiner Android-Anwendung namens "PriceDekho" nimmt der Cache-Hintergrundprozess zu viel Platz in Anspruch. Zuerst, wenn ich die Anwendung starte, dauert die Anwendung etwa 30MB (ich denke, es ist OK), aber das Problem ist, wenn ich die Anwendungsseiten surfe, dann steigt diese Größe kontinuierlich bis zu (200 MB). Diese Anwendung "Cache Hintergrund Prozess" variiert auch mit der mobilen RAM-Größe. Wenn die mobile RAM-Größe 2 GB beträgt, reicht diese Anwendung "Cache-Hintergrund-Prozess" Größe bis zu 500 bis 700 MB.

Meine Anwendung hat nur 5 bis 6 Bildschirme. Ich muss nur die zwischengespeicherte Hintergrundgröße stabilisieren.

Wie kann ich die Cachegröße der Anwendung löschen? Bitte helfen.

    
Manish Agrawal 22.03.2015, 11:21
quelle

2 Antworten

6

Es klingt wie Speicherlecks, die der Garbage Collector nicht entfernen kann. Zum Beispiel, wenn Sie einen Verweis auf Context von einer Nicht-Kontext-Klasse benötigen, die dort nie veröffentlicht wird. Die meiste Zeit wird Android Studio darauf hinweisen, aber Sie können versuchen, LeakCanary zu verwenden und nach ihnen zu suchen.

Fügen Sie die Abhängigkeit

hinzu %Vor%

und verwende es in deiner Application -Klasse. Erstellen Sie einen, wenn Sie ihn noch nicht haben.

%Vor%     
Murat K. 04.08.2017 14:19
quelle
0

Der Cache-Hintergrund-Prozess hängt sicherlich von der RAM-Größe ab, da das System mehr Daten zwischenspeichern kann, wenn mehr Speicher verfügbar ist.

Jedoch kann das zunehmende Muster der Speicherbelegung durch die Anwendung entweder auf Speicherlecks oder auf riesige Objekte zurückzuführen sein, die im Hintergrund erzeugt werden. Der Garbage Collector ist kein Allwetter-Freund und neigt dazu, Speicherlecks aufgrund programmatischer Fehler zu ignorieren.

Da für die Überprüfung kein Code zur Verfügung steht, sind einige triviale Fragen zu stellen:

  • Gibt es viel Bildbearbeitung mit Bitmaps? Wenn ja, werden diese Bitmaps wiederverwendet?
  • Benutzt Ihre Anwendung den Kontext mit Bedacht, das heißt, die Verwendung des Anwendungskontexts zu vermeiden, sofern nicht erforderlich?
  • Sind die Listener nicht registriert, falls vorhanden?

    Wie oben angedeutet, wird LeakCanary in diesem Fall sicher viel nützlicher sein als der Android Monitor.

Sumeet 11.08.2017 05:25
quelle