Pracuję nad aplikacją do przesyłania strumieniowego muzyki z Internetu ... Moja aplikacja robi wiele rzeczy i jest zorganizowana w następujący sposób: Mam widok kart i każdy widok jest przydzielany w pamięci, więc za każdym razem Przeglądam karty, aby znaleźć ponownie poprzedni status (każda zakładka może również otworzyć przeglądarkę internetową, aby znaleźć informacje o utworach, wiadomościach itp. W Internecie). Wszystko to zwiększa pamięć, ale czyni aplikację bardzo przyjazną dla użytkownika ... Po zwrocie uwagi Aby uniknąć wycieków pamięci zgodnie z przewodnikiem Androida, próbowałem spojrzeć na zajęcie sterty i odkryłem, że moja aplikacja przydziela maksymalnie 3,5 MB pamięci, a przydzielony rozmiar sterty to 4,5 - 4,6 MB ... Pracuję nad emulatorem. Nie są one tak bardzo myślę, ale czasami moja aplikacja jest restartowana, tworząc w LogCat dziwną wiadomość, taką jak:Android rosną stertę skrzyń frag
Grow heap (frag case) to 3.373 for 19764-byte allocation
Co to jest? problem emulatora? albo coś innego? Czy używam za dużo pamięci?
Z góry dziękuję za wszelką pomoc :)
o dzięki za odpowiedź^^ dlaczego to nie jest złe? Moja aplikacja wychodzi, kiedy to się dzieje ... Myślę, że to jest złe ... moja wina? Otrzymuję kolejną wiadomość: robot budowlany jest zaklinowany: 13129 ms wydane w Landroid/media/MediaPlayer; .finalize() V ... Czy wiesz, co to jest? – Erenwoid
Tak, jeśli twoja aplikacja wychodzi, to jest źle. Chodzi mi o to, że użycie tylko ~ 4MB sterty dla wielu stron internetowych nie jest złe. Nie wiem zbyt wiele o kwestii 'HeapWorker'. Zwykle śledzi przydzieloną pamięć i uruchamia garbage collector na nieużywanych obiektach. Domyślam się, że jeden z twoich wątków używa całego procesora, a "MediaPlayer" nie ma czasu na uruchomienie 'finalize()', która jest funkcją, która zdecydowanie nie powinna zająć 13 sekund. –