2011-01-24 3 views
0

listView (이미지 및 일부 텍스트 포함)를 표시하는 응용 프로그램을 작성하고 있습니다. 내 어댑터를 작성,보기 recyle 및 viewholder 사용하여, 모두 좋은 (하지만 아주 부드럽게) 일하고있다.android garbage collector 정보

그냥 목록보기가 표시되어 LogCat에서 수 천 가지 개체를 gc (12000 ~ 3 초마다)에서 볼 수 있습니다. 너무 나빠 보이지 않습니다.

enter image description here

가장 gced 개체 또는 GC의 로그 (또는 통계) 어떤 종류의 클래스 무엇인지 알 수있는 방법이 있나요? 왜 내 응용 프로그램이 즉시 gced 된 새로운 객체를 스팸하고 있는지 이해할 수 있습니까?

답변

1

아직 대답 할 수 없기 때문에 나는 새로운 대답을 추가합니다 :-( 모두 당신이 당신의 어댑터 내부에서 무엇을 하느냐에 달렸습니다. 당신은 XML 데이터를 가지고 있습니다. 당신은 파싱을합니까? DOM을 구문 분석해야하는 경우 어댑터 외부에서 수행하거나 결과를 캐싱해야합니다. 또한 모든 열거 형 (예 : for (String x : xarray))은 많은 가비지를 생성합니다. 문자열 연산과 동일합니다. (StringBuilder 사용을 고려하십시오.) 함수 로컬 변수를 사용하지 말고 더 많은 전역 범위에 넣으십시오 (가비지가 아닌 경우) 비트 맵을 표시할까요? 어댑터 내부에 비트 맵 객체를 만든 다음 ImageView에 할당합니까? 천천히 그리고 많은 쓰레기도.

나는 공통적 인 모든 쓰레기와 느린 UI 경험 함정을 짐작한다. 누군가? ;)

감사합니다, 올리버

1

이는 대개 앱 또는 앱으로 데이터를 다운로드하는 경우 발생합니다. 그렇지 않다면 우리가 볼 수 있도록 실행중인 코드를 제공해야합니다.

한편, 귀하의 무응답에 대한 무언가를하십시오.

+0

예 표시되는 모든 데이터가 다운로드됩니다. 내 ArrayAdapter는 내가 얻은 XML 파일의 빌드 인 목록에서 작동합니다. 그러나 나는 XML의 URL이 캐시 된 이미지에 대해서만 한 번만 얻는다고 확신한다. – jpprade