서버에서 데이터를 약 10-12KB 요청 (onResume에서 서버로부터 데이터를 받기 시작하는 스레드가 있습니다)하고 표 형식으로 그릴 수있는 응용 프로그램이 있습니다. 보기에. 각보기 행은 5 TextView
및 2 Drawable
으로 구성됩니다.안드로이드에서 메모리 부족 2.3.2
이제 응용 프로그램은 2.2 및 이전 버전의 OS에서 완벽하게 작동하지만 onCreate 메소드의 메모리 부족 오류 (2.3.2)에서 충돌합니다 (레이아웃을 R.main에서 설정하는 중). 오류를 다시 발생시키는 방법은 기기를 계속 회전시켜 (약 20-25 회) 앱이 세로 모드에서 가로 모드로 전환되도록 유지하는 것입니다. DDMS 출력을 살펴본 결과 패턴이 보입니다. 나는 꽤 빨리 세로 및 가로 모드 사이를 전환하면 ... 시스템은 GC 메시지의 많은을 출력 단지 충돌하기 전에 같은
02-09 12:20:08.617: DEBUG/dalvikvm(109): GC_EXPLICIT freed 426K, 47% free 6201K/11655K, external 4752K/5934K, paused 122ms
그러나 같은 메시지를 보여주는 ... GC를 실행하려고
02-09 12:20:12.875: DEBUG/dalvikvm(184): GC_EXTERNAL_ALLOC freed 112K, 52% free 3022K/6215K, external 5127K/5136K, paused 110ms 02-09 12:20:12.933: DEBUG/dalvikvm(28163): GC_EXTERNAL_ALLOC freed 108K, 34% free 7894K/11847K, external 20252K/20560K, paused 155ms 02-09 12:20:13.007: INFO/dalvikvm-heap(28163): Clamp target GC heap from 32.031MB to
32.000MB 02-09 12:20:13.007: DEBUG/dalvikvm(28163): GC_FOR_MALLOC freed 2K, 34% free 7891K/11847K, external 20254K/20560K, paused 47ms 02-09 12:20:13.074: DEBUG/dalvikvm(28163): GC_EXTERNAL_ALLOC freed 0K, 34% free ....
더 많은 그런 선. 그 다음 충돌합니다.
하나의 OS에서 충돌이 발생하는 이유를 이해할 수 없습니다. 내 장치는 삼성 Nexus S입니다. 어떤 아이디어입니까? 힙 덤프에서 MAT 도구를 실행하고 메인 활동 클래스의 5-6 인스턴스를 유지 된 메모리로 모두 보았습니다. 메모리가 가비지 수집되지 않아야합니까? 이 응용 프로그램은) 풍경 모드로 세로로 전환 에 유지되도록 는, 유증 (20 ~ 25 주위 번) 회전 계속에
감사합니다. 난 그냥 안드로이드를 시도 : configChanges = "오리 엔테이션 | keyboardHidden"옵션을 문서에 주어진. 오리엔테이션을 변경 한 후에도 활동의 인스턴스가 하나만 표시됩니다. 가로 모드에 대해 정의 된 특정 레이아웃이 없기 때문에, 내 potrait 모드 레이아웃을 가로로 자동 확장하므로 개발자는 내 응용 프로그램에서 괜찮습니다. – prashant
내 이전 주석에 추가하려면 언젠가는이 옵션에 대해 읽었습니다.하지만 구성 변경시 UI를 다시 가로 모드로 다시 작성해야한다고 생각했습니다. 그래서 더 많은 코드 줄을 추가하는 것에 회의적이었습니다. . 외관상으로는 안드로이드는 액티비티를 죽이지 않지만 정의 된 레이아웃에 따라 화면을 다시 칠하고 구성 요소를 레이아웃합니다. – prashant