반응형
인터넷 서핑 중에 좋은 자료가 있어 소개합니다.
http://www.androidcentral.com/fine-tuning-minfree-settings-improving-androids-multi-tasking |
위의 자료의 내용에 몇 가지 덧붙이자면,
안드로이드의 Low memory killer는 Kernel에 구현되어 있으며,
Application을 6가지 타입으로 분류하여 동작하고 있습니다.
FOREGROUND_APP This is the process running the current foreground app. We'd really rather not kill it! Value set in /system/rootdir/init.rc on startup. VISIBLE_APP This is a process only hosting activities that are visible to the user, so we'd prefer they don't disappear. Value set in /system/rootdir/init.rc on startup. SECONDARY_SERVER This is a process holding a secondary server -- killing it will not have much of an impact as far as the user is concerned. Value set in /system/rootdir/init.rc on startup. HIDDEN_APP This is a process only hosting activities that are not visible, so it can be killed without any disruption. Value set in /system/rootdir/init.rc on startup. CONTENT_PROVIDER This is a process with a content provider that does not have any clients attached to it. If it did have any clients, its adjustment would be the one for the highest-priority of those processes. EMPTY_APP This is a process without anything currently running in it. Definitely the first to go! Value set in system/rootdir/init.rc on startup. This value is initalized in the constructor, careful when refering to this static variable externally. |
Low memory killer는 안드로이드의 가용 RAM이 설정된 Threshold 이하로 떨어지게 되면 위의 분류별로 Application을 Kill 하도록 설정되어 있습니다. Threshold 값은 단말 모델별로 혹은 안드로이드 버전 별로 각각 다르게 설정되어 있으며 이 값은 다음과 같은 명령어로 확인할 수 있습니다.(2.0.1 버전에서 위의 타입별 Threshold 값)
$ cat /sys/module/lowmemorykiller/parameters/minfree
2048,3072,6144,7168,8192,8192 $ _ |
위 값은 4KB 페이지 단위로 표현된 것을 보여준 것이고, 4번째 값인 7168이 HIDDNE_APP 의 Threshold에 해당합니다. 가용 RAM이 7168 * 4K = 29M로 줄어들어야 HIDDEN_APP을 Kill 하도록 설정되어 있습니다.
모토로이(XT720)의 2.1버전에는 Threshold가 아래와 같이 증가했습니다.
$ cat /sys/module/lowmemorykiller/parameters/minfree
3072,4068,9216,10752,12288,12288 $ _ |
4번째 값을 보면 10752이고, 가용 RAM이 10752 * 4K = 44M로 줄어들면 HIDDEN_APP을 Kill하도록 되어 있습니다. 이 때문에 XT720이 2.0.1에서 2.1로 업그레이드 되면서 Background Application 이 자주 kill되는 문제가 발생했었습니다.
반응형
'Mobile > Android' 카테고리의 다른 글
맥(Mac) 에서 Android Studio 로 Android 개발하기 (0) | 2015.03.25 |
---|---|
맥(Mac) 에서 Eclipse 로 Android 개발하기 (1) | 2015.03.25 |
안드로이드 소스 다운로드 (0) | 2013.06.18 |
Activity Lifecycle (0) | 2013.06.14 |
UI Thread와 Handler (0) | 2010.08.17 |
한글 계정에서 안드로이드 AVD 실행 시 발생하는 Error 해결 방법 (0) | 2010.06.30 |
Android NDK 설치 (0) | 2010.04.19 |
Android Emulator 한글 설정 (1) | 2010.04.05 |
Command 에서 안드로이드 가상 머신(AVD) 생성하기 (0) | 2010.04.02 |
Android Emulator Scaling(크기 조정) (0) | 2010.03.22 |