내 안드로이드 애플리케이션 크기는 기기에서 5MB 밖에되지 않지만 애플리케이션을 실행할 때 약 12-18MB와 같은 RAM을 많이 사용합니다 (기타 ics 기기에서 더 많이 사용함). 내 응용 프로그램이 많은 RAM을 사용하는 이유에 대한 설명을 찾으려고 노력 중입니다, 나는 또한 구문 분석에서 푸시 서비스를 사용합니다. 내 응용 프로그램이 이미지 집약적인데 가능한 이유 일 수 있습니다. 내 응용 프로그램의 RAM 소비를 어떻게 줄일 수 있습니까?거대한 덩어리의 RAM을 사용하는 Android 애플리케이션
1
A
답변
5
이유는 앱이 이미지를 많이 사용하기 때문일 수 있습니다. 대체로 이미지는 디스크보다 RAM에서 훨씬 많은 메모리를 차지합니다. 이미지의 메모리 사용량을 확인하려면 다음 공식을 사용하십시오.
For ARGB images: memory(in bytes) = width * height * 4
이것은 ARGB 이미지에 픽셀 당 4 개의 채널이 있기 때문입니다.
For RGB images: memory(in bytes) = width * height * 3
RGB 이미지에는 픽셀 당 3 개의 채널이 있기 때문입니다.
메모리를 적게 사용하려면 이미지 크기를 줄이거 나 필요하지 않은 이미지에서 알파 채널을 제거하십시오.
3
장치의 5MB에는 압축 된 데이터가 많이 포함되어 있습니다. JPG 또는 PNG로 압축 된 이미지와 같은 것들은 앱이 실행 중일 때 큰 비트 맵으로 디코드됩니다.
예를 들어, 300kB PNG는 때때로 메모리의 6MB 비트 맵으로 바뀔 수 있습니다.
ICS에서 하드웨어 가속을 위해 이미지를 복사하기 때문에 더 많은 메모리가 사용됩니다.
RAM 소비를 줄이려면 더 작은 크기 (압축하지 말 것)를 사용하고, 사용중인보기 수를 줄이고 메모리 누수가 없는지 확인하십시오.