So ermitteln Sie IDs oder Namen von vorinstallierten System-Drawables (Bitmaps) aus dem Speicherauszug

Ich analysiere die Speichernutzung unserer App und finde das seltsamDrawables, der ständig ein paar Megabyte Haufen "frisst". Hier sind einige Screenshots vonMATTE:

Dominatorbaum mit 2 ziemlich großen Bitmaps

Pfad zu den GC-Wurzeln für eine der obigen Bitmaps

Diese Bitmaps werden immer in Heap-Dumps von meinem Telefon angezeigt (Samsung Galaxy Nexus, OS 4.1.1), egal wie lange oder wie intensiv ich unsere App benutze.

Ich habe bereits versucht, die Quelle dieser Bitmaps mit MAT zu durchsuchen - ohne Glück. Alle nützlichen Informationen, die ich finden konnte, warenwidth undheight von Bitmaps sind es beide 512x512:

Unsere App enthält jedoch keine einzelnen 512x512-Drawables. Ich gehe davon aus, dass dies einige "System" -Zeichnungen sind. Aber was genau? Warum sie so groß?

Ich habe mir auch den Quellcode von angeschautandroid.content.res.Resources klasse, suche verwendung vonsPreloadedDrawables Feld - auch ohne Glück. Alles, was ich aus dem Speicherauszug bekomme, istkey vonsPreloadedDrawables Array, aber ich kann den Dateinamen oder die Ressourcen-ID anhand dieses Schlüssels nicht ermitteln.

Meine Fragen sind also:

Wie kann ich die Namen oder IDs dieser Bitmaps ermitteln??

Wofür werden riesige Bitmaps geladen und warum bleiben sie immer im Speicher?

Aktualisieren:

Ich habe einen Weg gefundenSchauen Sie sich diese Bitmaps aus dem Speicherauszug an. Diese zwei Bitmaps sind einfache Verläufe, einer schwarz, der andere weiß. Ich nehme an, das sind Ressourcen fürHolo.Light undHolo.Dark ICS-Themen. Aber meine zweite Frage ist immer noch aktuell: Warum bleiben diese Bitmaps immer im Speicher? Gibt es eine Möglichkeit, sie hochzuladen oder zu recyceln?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage