많은 양의 메모리 를 사용하고 유지 해야 한다면 그렇습니다.android:largeHeap="true"
. 하지만 사용한다면 다른 앱이 포 그라운드에있을 때마다 메모리에서 앱을 플러시 할 준비가되어 있어야합니다.
"준비하십시오"란 가능성을 고려하여 설계해야 함을 의미합니다. 그러면 사용자 onStop()
와 onResume()
방법이 가능한 한 효율적으로 작성되는 동시에 모든 관련 상태가 저장되고 사용자에게 매끄러운 모양을 제공하는 방식으로 복원됩니다.
이 매개 변수와 관련된 세 가지 메소드 ( maxMemory()
,, getMemoryClass()
)가 getLargeMemoryClass()
있습니다.
대부분의 장치에서는 maxMemory()
다음과 유사한 값을 나타냅니다.getMemoryClass()
에서은 기본적으로 나타내지 만 후자는 메가 바이트로 표시되고 전자는 바이트로 표시됩니다.
largeHeap
매개 변수 를 사용하면 maxMemory()
장치 별 상위 레벨로 증가하지만 getMemoryClass()
동일하게 유지됩니다.
getMemoryClass()
힙 크기를 제한하지는 않지만 실행중인 특정 장치의 제한 내에서 앱이 편안 하고 호환 가능 하게 작동하도록 하려면 사용해야 하는 힙의 양을 알려줍니다 .
maxMemory()
반대로 는 힙 크기를 제한하므로 값을 늘려 추가 힙에 액세스하고 해당 값을 늘 largeHeap
립니다. 그러나 증가 된 힙의 양은 여전히 제한되어 있으며 해당 제한은 기기별로 다르므로 앱에서 사용할 수있는 힙의 양은 앱이 실행되는 기기의 리소스에 따라 달라집니다. 그래서 사용largeHeap
앱을 사용한다고해서 모든주의를 포기하고 뷔페 식 뷔페를 즐기라는 초대장이 아닙니다.
앱은 largeHeap
메서드를 호출하여 매개 변수 를 사용하여 특정 기기에서 사용할 수있는 메모리 양을 정확히 파악할 수 있습니다 getLargeMemoryClass()
. 반환되는 값은 MB 단위입니다.
이 이전 게시물에는 largeHeap
여러 특정 Android 기기에서 사용 여부에 관계없이 사용할 수있는 힙의 양에 대한 여러 예와 함께 매개 변수에 있습니다.
Android에서 애플리케이션 힙 크기 감지
이 매개 변수가 true로 설정된 내 앱을 배포하지 않았습니다. 그러나 개발 중에 만 실행되는 최적화 관련 매개 변수 집합을 컴파일하기 위해 내 앱 중 하나에 메모리 집약적 인 코드가 있습니다. largeHeap
이 코드를 실행하는 동안 메모리 부족 오류를 방지하기 위해 개발 중에 만 매개 변수를 추가합니다 . 하지만 앱을 배포하기 전에 매개 변수 (및 코드)를 제거합니다.