2013-04-01 4 views
0

한 페이지에 7 개의 슬라이더가있는 안드로이드 응용 프로그램을 개발 중입니다. 즉, 7 개의 질문이 있고 각 질문에 해당하는 슬라이더가 있습니다. 사용자는 각 슬라이더에서 포인터를 밀어 질문에 답할 수 있습니다. S3에서이 페이지가 충돌합니다. 이 섹션에서는 고해상도 이미지를 사용하고 있습니다.안드로이드 - S3의 메모리 부족 문제

S3의 힙 크기가 작기 때문입니까? 이 문제를 해결할 수 있습니까? 이 문제를 해결할 방법이 있습니까? 이 프레임에서는 품질이 떨어지는 이미지를 사용해야합니까 (바람직하지 않습니다)?

+1

로그 캣 pls는 나를 위해 일한 이미지 뷰의 이미지를 설정하려면 아래의 방법을 사용 ???? –

+0

화면의 스냅 샷을 게시 할 수 있습니까? 한 화면에 관련 이미지가있는 7 가지 질문을 모두 표시합니다. – Raghunandan

답변

0

this 링크에서 가져온이

public Bitmap ShrinkBitmap(String file, int width, int height){ 

      BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options(); 
       bmpFactoryOptions.inJustDecodeBounds = true; 
       Bitmap bitmap = BitmapFactory.decodeFile(file, bmpFactoryOptions); 

       int heightRatio = (int)Math.ceil(bmpFactoryOptions.outHeight/(float)height); 
       int widthRatio = (int)Math.ceil(bmpFactoryOptions.outWidth/(float)width); 

       if (heightRatio > 1 || widthRatio > 1) 
       { 
       if (heightRatio > widthRatio) 
       { 
        bmpFactoryOptions.inSampleSize = heightRatio; 
       } else { 
        bmpFactoryOptions.inSampleSize = widthRatio; 
       } 
       } 

       bmpFactoryOptions.inJustDecodeBounds = false; 
       bitmap = BitmapFactory.decodeFile(file, bmpFactoryOptions); 
      return bitmap; 
      } 
+0

http://www.youtube.com/watch?v=_CruQY55HOk. 비디오의 녀석은 System.gc();을 사용하는 것에 대한 경고를줍니다. – Raghunandan

+0

죄송합니다. 비디오 스트리밍 속도가 느려서 비디오를 볼 수 없지만 system.gc()를 사용했지만 아무런 문제가 발생하지 않았습니다. –

+0

@ Auto-Droid 링크 확인 http://stackoverflow.com/ 질문/2414105/왜 - 그것 - 나쁜 - 연습 - 투 - 콜 시스템 - gc. – Raghunandan

0

당신은 loading Bitmaps Efficiently입니까?

예 다음 AndroidManifest를 파일에 <application> 태그에

android:largeHeap="true" 

를 사용하여 힙 크기를 증가하려고 할 수 있습니다.

경고 :

  • 큰 힙 크기가 더 이상 GC (가비지 컬렉션) 시간을 의미한다.
  • 앱 힙 크기를 크게하면 다른 앱의 속도가 크게 느려지고 사용자는 앱에 문제가 있음을 곧 알게됩니다.
  • 메모리 오류가 발생했기 때문에이 옵션을 사용하지 마십시오.
+0

http://www.youtube.com/watch?v=_CruQY55HOk. 힙 메모리가 많을수록 가비지 수집 빈도가 높아집니다. 비디오의 녀석은 큰 힙 사용에 대해 큰 경고를줍니다. – Raghunandan

+0

빠른 응답을 보내 주셔서 감사합니다. 내가 먼저 알아야 할 것은, 고해상도 이미지로 S3에서이 문제를 해결할 수 있습니까? –

+0

@Raghunandan 알아요.하지만 더 이상 사용할 수있는 옵션이 없기 때문에 앱을 실행해야하는 경우 사용할 수 있습니다. –

0

http://developer.android.com/training/displaying-bitmaps/load-bitmap.html.

비트 맵을 효율적으로로드하십시오. 축소 된 버전을 메모리에로드하십시오.를 참조하십시오.

사용하지 않을 때는 비트 맵을 재활용하십시오.

http://www.youtube.com/watch?v=_CruQY55HOk. 이야기는 메모리 관리에 관한 것입니다. 메모리 누수가 발생하면 MAT Analyzer를 사용하여 문제를 찾아 해결할 수 있습니다. 이 비디오에서는 힙 분석과 MAT Analyzer 사용에 대해서도 설명합니다.

관련 문제