나는 인터넷에서 음악을 스트리밍하는 앱을 만들고 있습니다 ... 내 앱은 많은 일을하며 이렇게 구성되어 있습니다. 탭보기가 있고 모든보기가 매번 메모리에 할당되므로 탭을 통해 탐색합니다. 이전 상태 (모든 탭에서 노래, 인터넷 뉴스 등의 정보를 찾을 수있는 웹보기도 열 수 있음)를 찾습니다. 메모리 작업이 늘어나고 사용자 친화적 인 응용 프로그램이됩니다.주의를 기울인 후 안드로이드 가이드 다음 메모리 누수를 피하기 위해, 나는 힙 직업을 보려고했는데 내 애플은 최대 3.5MB의 메모리를 할당하고 할당 된 힙 크기는 4.5 - 4.6MB임을 발견했다 ... 나는 에뮬레이터에서 작업하고있다. 그들은별로 생각하지 않지만 때로는 내 앱이 LogCat에서 다시 시작되어 이상한 메시지가 표시됩니다.Android 성장 힙 조각 경우
Grow heap (frag case) to 3.373 for 19764-byte allocation
무엇입니까? 에뮬레이터 문제? 또는 다른 것? 너무 많은 메모리를 사용하고 있습니까?
어떤 도움 : 최대 힙 크기는 장치에 따라 달라
오 답변 해 주셔서 감사합니다 ^^ 왜 나쁜 것이 아니겠습니까? 이런 일이 생기면 내 앱이 종료됩니다 ...이게 나쁘다고 생각합니다 ... 내 잘못입니까? 또 다른 메시지를받습니다. heapworker가 쐐기로 고정되었습니다 : 13129ms가 Landroid/media/MediaPlayer 내부에서 보냈습니다 .finalize() V ...이게 무엇인지 아십니까? – Erenwoid
예, 앱이 종료되면 문제가 발생합니다. 나는 ~ 4MB의 힙을 여러 웹 페이지에 사용하는 것이 나쁘지는 않다는 것을 의미한다. 'HeapWorker'문제에 대해 너무 많이 알지 못합니다. 일반적으로 할당 된 메모리를 추적하고 사용되지 않는 객체에 대해 가비지 수집기를 실행합니다. 내 생각 엔 스레드 중 하나가 모든 CPU를 사용하고 있으며'MediaPlayer'에'finalize()'를 실행할 시간이 주어지지 않았습니다.이 함수는 13 초가 걸리지 않아야합니다. –