2013-01-07 3 views
0

난 그냥 펄스와 같은 응용 프로그램이 있고 그것의 베타 단계에 https://play.google.com/store/apps/details?id=com.braindigit.nepal.khabarAndroid에서 메모리 누수를 추적하는 방법은 무엇입니까?

은 내가 LinearLayoutNewsCategoryHolder라는 이름의이 레이아웃에 내가 동적으로 추가하고 CategoryViewHorizontalListView 들어있는 다른 레이아웃 이름 CategoryView .This을 제거하고 보유 메인 레이아웃이 기타 views. 탐색을 위해 추가로 ActionbarSherlock Tab을 구현했으며 NewsCategoryHolder 탭을 클릭 할 때마다 해당보기를 모두 제거한 다음 CategoryView을 추가합니다. 각 CategoryView에는 서버 또는 데이터베이스에서 데이터를로드하는 고유 한 AsyncTask이 있습니다. 그리고 CategoryView을 추가하거나 제거 할 때마다 뷰를 모두 제거하고 해당 어댑터를 null로 지정하고 심지어 Context까지 null로 유지합니다. 하지만 Tab에서 Tab으로 이동하면 응용 프로그램의 메모리가 증가합니다. 내 응용 프로그램에서 일부 메모리가 유출되는 경우입니다. MAT 및 기타 분석기에 대한 모든 자습서, 링크 및 비디오를 보았지만 응용 프로그램에서 메모리를 소비하는 정확한 부분이나 GC에서 오브젝트 refrences를 수집 할 수 없었던 부분을 정확히 지적 할 수 없었습니다.

메모리 사용량이 많은 위치를 찾고 싶지만 그렇게 할 수 없습니다. * .hprof http://news.braindigit.com/saved/android3201806337409456011.hprof 파일이 첨부되어 있으며 분석에 도움이 필요하며 응용 프로그램 패키지 이름은 com.braindigit.nepal.khabar입니다.

+0

기재된 기술을 사용하여 해결 될 수있다 [링크] (http://stackoverflow.com/questions/ 12681709/android-memory-leak-inputmethodmanager-bitmap)이 이유는 무엇인지 모르겠습니다. – laaptu

답변

0

메모리 사용량이 많은 주된 이유는 내가 MAT보다 레이아웃 및 다양한 문장에서 다양한보기를 제거한 것보다 더 많이 발생했습니다. 주로 주류 인 asset 폴더의 글꼴을 사용하고있는 것으로 나타났습니다.

headingText.setTypeface(Typeface.createFromAsset(context.getAssets(), DataHolder.FONT_PATH)); 

그렇게함으로써이 어쩌면 Context가 참조되고 또는 TypeFace이 참조하고 내 응용 프로그램의 모든 메모리 누수 문제를 해결 코드 줄을 제거 나누었다 결코 garbage collected을 없었다되고있다.

은 또한이 문제는 내 문제가 비슷하다 I 찾았는지 등 다른 클래스 뷰를 제거한 후 여기 Typeface memory leak

관련 문제