0
전체 힙 크기에서 얼마나 많은 메모리가 Java로 장치를 가지고 있는지 확인하는 좋은 방법이 있습니까? 어도비 에어로 작성된 내 앱은 기본 자바 확장 프로그램을 사용하여 SD 카드에서 여러 이미지를로드합니다.안드로이드 힙 크기 확인
public boolean checkBitmapFitsInMemory(long bmpwidth,long bmpheight, int bmpdensity){
long reqsize=bmpwidth*bmpheight*bmpdensity;
long allocNativeHeap = Debug.getNativeHeapAllocatedSize();
final long heapPad=(long)Math.max(4*1024*1024,Runtime.getRuntime().maxMemory()*0.1);
if ((reqsize + allocNativeHeap + heapPad) >= Runtime.getRuntime().maxMemory())
{
return false;
}
return true;
}
그러나, 내 갤럭시 S2에 완전히 무시 것 같다 : 비트 맵이 메모리에로드 할 수 있는지 확인하기 위해이 코드 조각을 발견했다. 앱이 두 부분으로 구성되어 있기 때문일 수 있습니다. 하나는 Java이고 두 번째는 어도비 에어입니다. 응용 프로그램 메모리에 이미지를로드하기 전에 확인해야하는 다른 메모리 값이 있습니까? 감사합니다. 실행중인 응용 프로그램에서 사용할 수 Runtime.getRuntime().freeMemory()
반환 메모리 리소스를 호출
감사합니다. 방금 로그에서 freeMemory()를 확인했는데 이해가되지 않습니다. 로드 된 이미지마다 달라 지지만 때로는 커지고 있습니다! 첫 번째 이미지를로드하기 전에 1070032, 20 이미지로드 후 1698688입니다. 실망 스럽습니다. – Fossor
그러나 이것은 사실 일 수 있습니다. 응용 프로그램이 메모리를 사용하는 유일한 응용 프로그램이 아닌가? – Fildor
내 경우에는 실용적이지 않습니다. OS가 메모리에로드 된 다음 이미지로 내 앱을 종료 할 것임을 알아야합니다. – Fossor