안드로이드 OS의 태스크 관리 (개발자가 아닌 사용자 입장에서)

아융.. 잉여짓 좀 해봤어요.

http://android.nextapp.com/site/systempanel/doc/taskmanagement 에 있는 글 입니다. 발번역 이라지요. ㅎㅎㅎㅎ

===================================================
Please read this section FIRST. There are a great many misconceptions about how Android works with regard to starting and stopping applications.
이 섹션을 먼저 읽어주세요. 안드로이드가 어플리케이션의 시작과 중단과 관련하여 어떻게 동작하는가에 대해 상당히 많은 오해가 있습니다.

How to Use a Task Manager
테스크 관리자 사용법


Android was designed from the ground up as an operating system (OS) for mobile devices. Its built-in application and memory-management systems were engineered with battery life as one of the most critical concerns.
안드로이드는 모바일 디바이스용 운영체제(OS)로 설계되었습니다. 내장된 어플리케이션 및 메모리 관리 시스템은 가장 중요한 고려사항 중 하나인 배터리 수명 - 혹은 사용시간 - 을 위해 적절히 설계되었습니다.

The Android OS does not work like a desktop operating system. On a desktop OS, like Windows, Mac OS X, or Ubuntu Linux, the user is responsible for closing programs in order to keep a reasonable amount of memory available. On Android, this is not the case. The OS itself automatically removes programs from memory as memory is needed. The OS may also preload applications into memory which it thinks might soon be needed.
안드로이드 OS는 일반 데스크탑 OS와는 다르게 동작합니다. 데스크탑 OS에서 적절한 양의 가용 메모리 유지를 위해, 실행중인 프로그램을 종료시키는 것은 사용자의 몫입니다. 하지만 안드로이에서는 이와 달리 메모리가 필요하다면 OS 스스로 현재 메모리에 로드된 프로그램을 자동 제거 합니다. 또한 안드로이드는 곧 사용될 것으로 예상되는 어플리케이션을 OS 스스로 미리 메모리에 올릴 수도 있습니다.

Having lots of available empty memory is not a good thing. It takes the same amount of power to hold "nothing" in memory as it does to hold actual data. So, like every other operating system in use today, Android does its best to keep as much important/likely-to-be-used information in memory as possible.
많은 양의 비사용(emtpy) 메모리는 좋은 것이 아닙니다. 비사용 메모리 영역 역시 "아무것도없다" 라는 정보를 유지하는데있어 사용 메모리 영역과 같은 양의 전력을 소모합니다. 그래서 오늘날의 다른 OS와 마찬가지로, 안드로이드도 중요하거나 곧 사용될 법한 정보를 가능한 많이 메모리에 상주시켜 둡니다.

As such, using the task manager feature of SystemPanel to constantly clear memory by killing all apps is strongly NOT RECOMMENDED. This also applies to any other task killer / management program. Generally speaking, you should only "End" applications if you see one which is not working correctly. The "End All" feature can be used if your phone/device is performing poorly and you are uncertain of the cause.
이러한 연유로, SystemPanel의 태스크 관리자 기능을 이용해 지속적으로 모든 어플리케이션을 종료하여 메모리를 정리하는 것은 진심으로 권하고 싶지 않습니다. 이것은 다른 모든 태스크 킬러 / 관리자 어플리케이션에도 똑같이 적용되는 사항입니다. 엄밀히 말하면 사용자는 어플리케이션이 비정상적으로 작동한다고 생각될 때만 해당 어플리케이션을 "종료" 하여야 합니다. "모두 종료" 기능은 사용자의 폰이나 장치가 엉망으로 작동하고 그 원인을 알수 없을 때에만 사용하여야 합니다.

Process Types
프로세스 종류


The SystemPanel process listing groups applications into three categories: "Active", "Inactive", and "Internal":
SystemPanel은 어플리케이션을 "Active"와 "Inactive" 그리고 "Internal"의 세가지 범주로 그룹핑하여 처리합니다.

    * Active applications are actually running at the present time on the device. An active application may be running in the background and not have any information currently displayed on the screen.
    "Active" 어플리케이션은 실제로 현재 장치에서 동작중인 어플리케이션입니다. 이 어플리케이션은 백그라운드에서는 실제로 동작하고 있지만 스크린상에는 아무 정보도 표시하지 않을 수도 있습니다(역주: 오해의 소지가 있을까봐... 스크린상에 뭘 표시하던 안하던 현재 동작중이면 Active 란 뜻입니다).
   
    * Inactive applications have been preloaded into memory, but are not actually using up any system resources. Such applications will not consume any battery power whatsoever. The memory used by these applications can be immediately reclaimed should other applications require it. As such, there is no need to manually remove these applications, as you will see no tangible benefit from doing so. As of Android 2.2/Froyo, you may see few-to-no applications in this state. This is normal.
    "Inactive" 어플리케이션은 메모리상에 미리 올려진, 하지만 시스템 자원은 전혀 사용하지 않는 어플리케이션을 뜻합니다. 이러한 어플리케이션은 뭐가 되었건 배터리 전력을 전혀 사용하지 않습니다(역주: '추가적인 배터리 전력'이라고 이해하시면 될 듯 합니다. 메모리 영역은 어플리케이션 코드가 올라와 있던 안 올라와 있던 일정 전력을 소모하니깐요). 이런 어플리케이션이 차지하고 있는 메모리 영역은 다른 어플리케이션에서 필요로 할경우 즉시 반환됩니다. 그렇게 때문이 이러한 어플리케이션을 수동으로 메모리에서 제거해야 할 필요가 없습니다. 제거한다고 해서 뭔가 즉각적인 이익이 있는 것도 아닙니다. 이 상태의 어플리케이션은 안드로이드 2.2/프로요에서는 적거나 없을 수 있습니다. 정상적인 현상입니다.
   
    * Internal applications are those which are part of the Android operating system itself. Some of these applications may be terminated manually, but they will be immediately restarted afterward by the OS.
    "Internal" 어플리케이션은 안드로이드 OS 자체의 일부분입니다. 이중 어떤 어플리케이션들은 수동으로 메모리에서 제거될 경우, OS에 의해 즉시 재시작 됩니다.

=========================================================

Why Automatic Task Killing is a Bad Idea
왜 자동 태스크 제거가 나쁜 생각인가.


Many products on the Android Market which include task management functionality support a feature known as "automatic task killing". Such programs will automatically kill running tasks at regular intervals, typically on the premise of extending battery life or saving memory.
많은 태스크 관리 기능을 갖춘 많은 안드로이드 어플리케이션이 "자동 태스크 제거"라는 기능을 지원합니다. 이러한 프로그램은 배터리 수명 - 사용시간 -을 늘려 주거나 메모리를 절약할 수 있다는 전제하에 주기적으로 동작중인 태스크를 제거합니다.

The problem with automatic task killing is that it does not provide any benefit.
자동 태스크 제거 기능의 문제는 그것이 아무런 이득도 제공해주지 않는다는 것입니다.

As previously discussed in the Task Mangement Section, the Android operating system knows how to manage memory. It automatically loads processes into memory and unloads them as required. Android will strive to always use as much of your device's memory as possible, and this is a good thing: empty memory is wasted memory. Do not be concerned if your device does not show much memory available. If the application you are using requires more memory, other (background) applications will automatically be removed from memory.
앞서 태스크 관리 섹션에서 이야기 한 것과 같이 안드로이드 OS는 메모리 관리를 어떻게해야 할지 알고 있습니다. 안드로이드는 필요에 따라 자동으로 프로세스를 메모리상에 올리거나 내립니다. 안드로이드는 항상 사용자 장치의 메모리를 가능한 많이 사용하려고 합니다. 사용자 장치에 가용 메모리가 충분해 보이지 않는다고 해도 문제될 것은 없습니다. 사용자가 사용하는 어플리케이션이 더 많은 메모리를 필요로 하면 다른(백그라운드) 어플리케이션이 자동으로 메모리상에서 제거 됩니다.

Non-running applications which are residing in memory also don't use any battery power. It takes the same amount of power to store "nothing" in memory as it does to store "something" in memory. It does however take power to periodically kill running applications. It also takes power for the operating system to react to a condition where very little memory is in use and attempt to preload new applications into it (Android isn't expecting sudden large increases in the amount of free memory).
메모리상에 올라와 있지만 동작하지 않는 어플리케이션은 배터리 전력(역주. "추가적인")을 사용하지 않습니다. 메모리상에 "아무것도없다"라는 것을 저장하는데 필요한 전력의 양은 "무엇인가"를 저장하는데 필요한 전력의 양과 똑같습니다. 하지만 주기적으로 동작중인 어플리케인션을 제거하는 것은 전력을 필요로 합니다. 이러한 제거 동작은 매우 적은 메모리가 사용되고 있으므로 새로운 어플리케이션을 미리 메모리상에 로드하게 하는 OS의 반응을 일으키게 되므로 역시나 추가적인 전력을 사용하게 됩니다(안드로이드는 가용메모리가 급작스럽게 많이 필요하게 될거라고 가정하지 않습니다).

There is a case where automatic task killing does actually work. If you have a badly designed application that runs in the background and needlessly consumes CPU, automatic task killing will likely end it and cause Android to preload some other application instead. Chances are the other app won't be as poorly written and will consume fewer resources, thus extending battery life. SystemPanel solves this problem with the monitoring service, which allows you to see what applications are consuming excess resources, and then either uninstall them or report the undesired behavior to their developers such that they may correct them.
자동 태스크 제거가 실제적인 효과가 있는 경우도 있습니다. 백그라운드에서 동작중인 잘못 설계된 어플리케이션이 쓸데없이 CPU를 사용한다면, 자동 태스크 제거 기능은 해당 어플리케이션을 제거할 것이고, 안드로이드는 다른 어플리케이션을 미리 메모리상에 로드할 것입니다. 로드된 다른 어플리케이션이 올바르게 만들어졌고 적은 자원만 소비한다면, 자동 제거 기능은 배터리 수명 - 사용시간 -을 연장시켜 줄 것입니다. SystemPanel은 이러한 문제를 모니터링 서비스를 통해 해결합니다. 이 서비스를 통해 사용자는 어떤 어플리케이션이 자원을 과도하게 사용하는지 알아 볼 수 있고, 해당 어플리케이션을 제거하거나 오류 사항을 수정할 수 있도록 비의도적 동작에 대해 개발자에게 레포팅할 수 있습니다.

Manually using the "End All" feature of SystemPanel to emulate automatic task killing is an equally bad idea. The "End All" feature is best used if you're having trouble with your device and are uncertain of the cause.
SystemPanel의 "End All"기능을 수동으로 사용하여 자동 태스트 제거를 흉내내는 것은 역시나 나쁜 생각입니다. "End All" 기능은 장치에 문제가 있고, 그 원인을 알 수 없을 때 사용하는 것이 가장 좋습니다.


덧글

댓글 입력 영역