본문 바로가기

메모리 관리

[ Android ] 메모리 누스 (memory leak) 발생 원인!! 이미지 버튼만 4개를 만든 페이지에서 계속 메모리 누수가 발생하여... 4~5번 실행하면 실행이 되지 않고오버 플로우가 발생!!!! 메모리가 누수되었을 경우 확인 부분 1. 전역변수나 클래스로 불러온 bitmap을 recycle함수로 초기화 시켰는지 확인2. Context는 되도록 applicationContext를 사용하도록3. 바로 이걸 하세요!!/* * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * .. 더보기
[ Android ] Wallpaper 개발 중 Map 클래스 사용 시 Map클래스를 이용하여 이벤트를 주거나 정보를 저장해 놓고~ Wallpaper에 움직임을 많이 주는데요. Map클래스를 세 개 사용하고(한 Map에 최대 1200개 까지 들어가 있음), 홈 화면에 Wallpaper를 실행 시켜 놓은 상태에서 미리보기를 실행 했을 경우 메모리가 쌓인 것을 볼 수가 있었습니다. 11-02 16:27:06.074: D/DEBUG1(1411): onSurfaceCreated : com.google.android.gles_jni.EGLConfigImpl@40b0ca70 11-02 16:27:06.074: D/DEBUG(1411): 0 Heap Size onSurfaceCreated : 4798824 11-02 16:27:06.273: D/DEBUG(1411): 210003 -> .. 더보기
[Android] java.lang.OutOfMemoryError: bitmap size exceeds VM budget 이건 한정된 메모리를 초과 했을 때 뜨는 오류 입니다. 먼저 , 전에 제가 적은 블로그 내용을 확인해보고, 그래도 안될 시에는 이 방법을 해보세요. http://gogorchg.tistory.com/entry/Android-BitmapFactory%EC%97%90-%EB%AC%B8%EC%A0%9C%EC%A0%90 Bitmap이 차지하는 메모리가 급속하게 줄어듭니다. Bitmap bitmap; BitmapFactory.Options option = new BitmapFactory.Options(); option.inSampleSize = 1; option.inPurgeable = true; option.inDither = true; bitmap = BitmapFactory.decodeResource(mRe.. 더보기
[Android] Opengl 텍스쳐 변경 시!!! 제가 하루 동안 갑자기 발생한 Memory over flow 때문에... 원래 제출 해야하는 날보다 하루 미루게 되었던 대 사건의 원인을 적어볼까 합니다. - 테스트 폰 : HTC 디자이어 HD, Sky Vega X - 문제: LiveWallpaper의 설정을 여러 번 바꾼 후에, 갑자기 핸드폰이 멈춰버리는 대 사건이!-0- - 원인: 거의 5시간을 걸쳐 디버깅 하고, 구글리을 해서 알아낸 결과! heap memory가 사라지지 않고, 계속 쌓이는 것이었습니다. 처음 Bitmap의 초기화를 잘 못했나 해서 받아들인 Bitmap에 전부 초기화를 했습니다. [Bitmap 초기화 방법] gl.glGenTextures(textures.length , textures, 0); gl.glBindTexture(GL1.. 더보기