안드로이드의 메모리 관리 방식은 이렇습니다.

메모리가 가득 차 있으나 비어있으나 소모하는 전력은 같다. 그러므로 메모리에다가 미리미리 정보를 채워놓으면 좀 더 효율적으로 자원을 활용할 수 있겠지? 그러니 자주 사용하는 어플리케이션을 Pre-load하자.

대강 이런 식입니다.
그래서 항상 쓰다보면 메모리가 반토막나있는거구요


그렇다고 해서 램이 부족해지는 것도 아니고, 시스템이 느려지는 것도 아닙니다. 올라가는 어플리케이션은 오직 빠른 로딩을 위해 최소한의 정보만을 가지고 로드되며, 사용자가 대상 어플을 실행하기 전까지 Freezing(CPU 점유율 0) 상태입니다. 그리고 메모리가 부족해지면 즉시 메모리에서 언로드 되어서 바로바로 메모리를 확보하죠.

그러므로 task kill로 Pre-load된 어플리케이션 강제로 죽이는 건 매우 좋지않습니다. task kill로 어플을 죽이는 순간

1. task kill을 위한 cpu load로 추가 전력 소모
2. task kill 도중 메모리에서 추가 전력 소모
3. task kill 이후 다시 Pre-load를 위해 cpu 사용
4. Pre-load로 인한 메모리 사용으로 전력 소모
5. 강제적인 task kill로 인해 잦은 I/O Error 발생.

같은 역효과가 발생하기 때문입니다.

고로 task kill은 어플리케이션 사용 도중 문제가 발생하여 정상 종료가 안된다던가, 멀티태스킹 코드가 뭐같이 짜여져서 종료가 안되는 일부 어플에 한정해서 사용하는 걸 추천합니다.

배터리 수명도 늘고, 오류가 적게 발생하는 걸 체험하실 수 있을겁니다.

Posted by Edgestorm
: