본문 바로가기

IT/스마트폰

안드로이드 - 메모리 관리 / Auto Memory Manager 설정


저번에 배터리 관리, 메모리 관리 어플에 대해 썼다.
안드로이드 - 메모리 관리 - 배터리 관리


프로요(Android 2.2)는 메모리 관리를 자체적으로 한다고 한다.

방식은 각 작업마다 한계 메모리를 정해놓고 그 이하에서는 작동하지 않는(?)이 아니라 종료시키는 것인데

그냥 예를 들자

작업군(어플들)은 6가지로 분류한다.

- Foreground App
현재 작업 또는 작동중인 앱, 여기에는 안드로이드 시스템과 전화기능도 포함됨

- Visible App
화면에 보이는 앱 (투명창, 입력기 등)

- Secondary Server
백그라운드에서 작동중인 앱, 여기에는 서비스, 홈 어플들도 포함됨.

- Hidden App
백그라운드에서 작동중인 앱

- Content Provider
정보 제공 앱, 여기에는 달력, 시계 등이 포함됨

- Empty App
종료 혹은 작동중이지 않은 앱


내 폰의 경우 이 각각의 값이 아래와 같다.
6 / 8 / 16 / 20 / 22 / 24
즉, 이미 작동중이지 않은 또는 작업을 끝내고 종료된 앱이더라도 메모리가 24MByte 이하가 되지 않으면 메모리에 그대로 두고 있다가(물론 종료되기 전과는 차지하는 메모리 용량이 줄어있겠지만, 그리고 다시 그 작업을 하려고 앱을 열면 빠르게 열리겠죠) 지정한 메모리 이하로 내려가면  해당 앱에서 메모리를 돌려받는 형식이다

이 값 이대로는 극한에 가까이 가면 거의 모두를 종료하게 될 것 같은 분위기이다.

폰에 따라 이 여유 메모리가 얼마 이하로 떨어지면 속도가 느려지는 경우가 있을 수 있다. 40MByte 이하에서는 내 폰이 이상하게 느리다 싶으면 저 값을 조정해줄 필요가 있다. 그렇지 않더라도 기본값은 너무 낮지 않은가?

그 기능을 하는 것이 저번 글에서 소개한 '메모리 관리자' 앱이다.

앞의 3개는 값이 낮을 필요가 있겠다.
그 다음 2개 중 Hidden은 멀티태스킹을 한다면 낮아야겠지만, 그렇지 않다면 좀 올려야 할 것 같다.
Content Provider 은 자신이 사용하는 앱에서 저 자원(정보)을 사용한다면 낮아도 되지만 그렇지 않다면 좀 높여야 하지 않을까?

마지막 Empty 의 경우에는 멀티태스킹(앱을 종료하지 않고 오가는 작업)이 아닌 여러 앱을 사용하는 경우라면 낮아야겠지만 그렇지 않다면 높여야 할 것 같은데....


내 폰에서의 AMM 의 설정값들도 적어보자
Default          6 /  8 /  16 /  20 /  22 /  24
Mild             6 /  8 /  16 /  20 /  32 /  40
Aggressive   6 / 12 /  16 /  82 /  89 /  97


내가 설정한 값은 일단 Aggressive를 선택 후 앞의 3개 값은 그대로 두고 뒤의 3개 값을 조금 낮추었음
6 / 12 / 16
55 : 이 값은 40~45 정도로 할 생각이었으나, 멀티태스킹을 하는 일이 거의 없어서 일단 조금 더 올렸다
40 : 이 값은 처음에는 75 정도로 할 생각이었으나, 어떤 앱이 어떤 정보제공자를 필요로 하는지를 몰라서 더 낮추고...
      홈의 아이콘과 위젯 속도가 느려서 이렇게까지 낮춤. 앞의 Back보다 낮으니 이상한가?
70 : 이것은 90 정도로 하려다가 조금 더 내렸다.


설정 들어가는 법
메뉴 버튼->  Advanced
값 설정
Apply 누름

메모리 확보 작업에도 배터리 소모가 있을 것을 생각해야 하고 ...

사용자들의 폰과 습관에 맞추어 설정할 일이다.



Auto Memory Manager 다운로드


이요한 님의 댓글을 읽고

1. 그룹별로 관리합니다.

2. 남은 메모리가 해당 그룹에서 설정한 값보다 작으면 해당 그룹의 프로세스를 메모리에서 내보냅니다.

Aggressive의 기본으로 설정되어 있는 값(기기마다 다를 수 있지만, 제 기기에서)으로 설명드리려했는데 댓글에 40이라는 숫자가 나왔으니 제가 설정해서 사용했던 값(현재는 다르게 설정했음)으로 설명드리겠습니다.

- Foreground App (6)
- Visible App (12)
- Secondary Server (16)
- Hidden App (55)
- Content Provider (40)
- Empty App (75)


남은 메모리를 설정에 따라 최소 1분에서 1시간 간격으로 체크합니다. 체크할 그 시기에 사용가능 메모리가

1) 73이 남았다.
Empty 그룹의 어플을 메모리에서 내보내겠죠.

2) 38이 남았다.
empty, content, Hidden 3 그룹의 어플을 메모리에서 내보내겠죠

3) 52가 남았다
empty, hidden 그룹의 어플을 메모리에서 내보내겠죠.

4) 45가 남았다 (위에 없는 값으로도 예를 들어봅니다)
empty, hidden 그룹의 어플을 메모리에서 내보내겠죠.

5) 80이 남았다.
아무 작업도 하지 않는다.


즉, 그룹별로 관리하지만, 위의 설정값이 해당 그룹에 나누어준 할당메모리가 아니라 전체 남은 메모리(사용가능한 메모리)가 얼마 이하이면 해당그룹에 속한 어플을 메모리에서 내보내느냐를 설정한 값입니다.


내보낸다는 것을 종료로 쓰는 것이 더 이해하기 쉬울지 모르겠지만, 어플이 종료되더라도 메모리를 일부 차지할 수 있습니다. 그리고, empty그룹이 종료된 프로그램 그룹이기도 하구요.

그래서 내보낸다는 말을 썼습니다. 다른 말로 하면 메모리를 비운다 정도 되겠습니다.