largeheap
Android에서 largeHeap 속성은 애플리케이션의 AndroidManifest.xml 파일에서 true 또는 false로 설정할 수 있다.
true로 설정하면 애플리케이션 프로세스에 대해 더 큰 메모리를 요청한다.
시스템에서 제공하는 기본 힙 크기보다 더 많은 메모리가 필요한 메모리 앱에 좋다.
기본적으로 각 Android 앱에는 힙 크기라고 하는 사용 가능한 메모리 양이 제한되어 있다.
기본 힙 크기는 Android 버전 및 기기에 따라 다르지만 일반적으로 16~128MB 범위인데 크기 제한을 초과하면 성능 문제가 발생하거나 충돌할 수도 있다.
largeHeap 속성을 true로 설정하면 애플리케이션 프로세스에 사용할 수 있는 메모리(힙) 크기가 증가하여 이러한 문제를 방지할 수 있다.
근데 더 큰 힙 크기를 요청하면 가비지 수집 시간 연장 등의 이슈로 인해 앱이 무거워지는 단점이 있다.
그래서 일단 돌리려고 막 쓰기보단 메모리 사용을 최적화하고 메모리 누수를 방지하는게 중요하다.
그걸 어떻게하는지 이제부터 알아보자.
memory release 방법
사용하지 않는 리소스 해제
비트맵이나 기타 큰 개체와 같은 리소스가 더 이상 필요하지 않으면 적절하게 해제하자.
Bitmap.recycle()과 같은 메서드를 사용하거나 참조를 null로 설정하여 수행할 수 있다.
메모리 릭 방지
object가 제대로 해제되지 않고 이게 여전히 메모리에 유지될 때 메모리 누수가 발생한다.
object 가 적절하게 해제되는지 확인하는 것이 중요하다.
메모리 프로파일링 도구 사용
Android Studio 또는 기타 타사 라이브러리에서 제공하는 메모리 프로파일링 도구를 쓸 수 있다.
리팩토링
적절한 알고리즘과 데이터 구조를 사용해서 쓸데없는 메모리 사용 막자.
'개발 > Android Studio' 카테고리의 다른 글
[Android Studio] IPC, RPC 차이점 (0) | 2023.03.13 |
---|---|
[Android Studio] parcel, marshalling 이란 (0) | 2023.03.06 |
[Android Studio] Service 란, Service 생명주기 (0) | 2023.03.03 |
[Android Studio] Activity란, Activity생명주기 (0) | 2023.03.03 |
[Android studio] 어플리케이션 간 100MB 이상 데이터 옮기는 법 (0) | 2023.02.23 |