본문 바로가기

Android/Android 지식3

Android의 효과적인 메모리 관리 안드로이드의 메모리 관리 방법에 대해 설명하려 합니다. 잘못된 부분이나 이해가지 않는 부분이 있다면 댓글 꼭 달아주세요! 안드로이드는 페이징 기법을 사용합니다. 페이징에 대해서는 설명이 잘 되어있는 글이 많기 때문에 페이징에 대한 설명은 넘어가겠습니다. 안드로이드는 사용 가능한 메모리가 있다면 메모리를 낭비하고 있다고 보고 사용 가능한 메모리를 최대한 사용하려고 합니다. 앱이 닫힌 후에도 앱을 메모리에 보관하여 사용자가 앱으로 빠르게 다시 전환할 수 있게 하는 등 사용 가능한 메모리를 최대한 사용하기 때문에 메모리 관리를 알고 올바르게 사용하는 것이 중요합니다. zRAM Android는 zRAM을 활용합니다. zRAM 이란? RAM의 파티션(램의 일부분)으로 스왑 공간으로 사용됩니다. 페이지를 zRAM에.. 2023. 11. 13.
Android 런타임(ART), Dalvik 기능까지 제대로 알아보기 ART와 Dalvik을 비교하고 특징에 대해 공부하면서 어떤 문제 때문에 ART를 도입하고 ART에서 새로운 기능을 도입하였는지 알 수 있었습니다. ART와 Dalvik 설명에 앞서서 DEX파일과 AOT 컴파일러와 JIT 컴파일러에 대해 가볍게 알아보겠습니다. DEX 파일 Android에서 DEX 파일은 "Dalvik Executable" 파일을 의미합니다. 이 파일 형식은 자바 바이트코드(.class 파일)를 Dalvik 가상 머신이나 Android Runtime (ART)에서 실행할 수 있는 형태로 변환한 것입니다. 안드로이드 환경에서 동작되도록 최적화되어 있습니다. AOT(Ahead Of Time) , JIT(Just In Time) JIT 컴파일러가 바이트 코드를 런타임에 기계어로 바꾼다면 AOT.. 2023. 11. 9.
viewModelScope는 어떤 쓰레드를 사용할까? viewModelScope의 내부는 다음과 같다. return을 하면서 Dispatchers.Main을 넘겨주는데 이를 통해 Main 쓰레드를 사용하는 것을 알 수 있다. --- 추가 viewModelScope는 Retrofit을 이용하기 위해 IO 쓰레드로 바꾸지 않아도 된다. Retrofit을 만든 square에서 kotlinExtensions를 지원해주기 때문인데 Call을 내부적으로 호출하게 된다. 내부적으로 이미 통신을 해서 responseBody를 알려준 뒤 enqueue로 결과 값을 활용하고 있는 상황 2022. 7. 6.