Ogromny bajt [] w mojej aplikacji po HPROF

Od czasu do czasu, szczególnie przy wdrażaniu nowych funkcji w mojej aplikacji, używam DDMS + HPROF do analizy pamięci i wykorzystania sterty. Ponieważ wydaje się, że aplikacja nie ma żadnych problemów z wydajnością ANR i wszystko działa płynnie, początkowo nie przejmowałem się tym - ale teraz, jak widzę, jest to w przybliżeniu zawsze ten sam rozmiar, zastanawiam się, co do cholery może to zrobić być.

Za każdym razem, gdy uruchamiam HPROF, sprawdzamPodejrzani o wyciek patka. Zawsze jest cośandroid.graphics.Bitmap instancja, która zajmuje około 25% całej używanej sterty.

Chciałem dowiedzieć się trochę więcej o tym, więc otworzyłemdrzewo dominującei zobaczyłem to:

Zasadniczo jest ogromnybyte[] instancja, która zachowuje dużo kupy, inigdy zostaje zwolniony. Wedługto, Skopiowałem wartość tegobyte[], wrzuciłem to do.data plik, otwarty w Gimp, i jest wynik:

W zasadzie wygląda to tak„alpha (0)” część obrazu PNG. Biorąc pod uwagę następujące fakty:

Wszystkie moje pliki obrazów mają rozmiar <8KTylko niektóre z nich to PNG - pozostałe, które udało mi się przekonwertować na JPG, zrobiłemBez względu na to, czy dodam kolejne zdjęcia, rozmiar tegobyte[] zawsze był taki sam od początku aplikacji (4 miesiące temu)Aby go zdebugować, próbowałem go usunąćkażdy plik obrazu zdrawable idrawable-xxx foldery i uruchom aplikację bez żadnych zasobów do rysowania ibyte[] wciąż tam byłUsunąłem prawie wszystkie układy i pozwoliłem tylko na podstawową funkcjonalność i ten sam rezultatwDrzewo dominatora, klasa root toandroid.graphics.Bitmap

Każdy wie, co to jestbyte[] a jeśli powinienem coś zrobić, aby to uwolnić?

Każda pomoc doceniona!

questionAnswers(1)

yourAnswerToTheQuestion