Android가 프로세스를 관리하는 방법
Windows는 데스크톱 응용 프로그램을 표시 여부와 상관없이 실행되도록 허용하지만 Apple의 iOS는 백그라운드에서 몇 가지 제한된 작업 만 수행 할 수 있습니다. 안드로이드는 중간에 위치 - 포 그라운드에서 실행중인 앱의 우선 순위가 결정되지만 앱은 iOS에서보다 백그라운드에서 실행할 수있는 자유가 훨씬 더 많습니다..
Android가 휴대 전화 나 태블릿에서 실행되는 앱과 프로세스를 관리하는 방식을 정확하게 살펴보고 백그라운드에서 진행중인 작업을 설명합니다..
프로세스 라이프 사이클 계층 구조
Android에서의 프로세스는 가장 중요한 것부터 중요하지 않은 시점까지 5 가지 상태 중 하나에있을 수 있습니다.
- 1. 전경 과정: 사용중인 앱이 포 그라운드 프로세스로 간주됩니다. 다른 프로세스도 포 그라운드 프로세스로 간주 할 수 있습니다. 예를 들어 현재 포 그라운드에있는 프로세스와 상호 작용하는 경우입니다. 주어진 시간에 포어 그라운드 프로세스가 거의 없습니다..
- 2. 가시적 인 과정: 보이는 프로세스가 포 그라운드에 있지 않지만 여전히 화면에 보이는 것에 영향을줍니다. 예를 들어, 전경 프로세스는 그 뒤에있는 앱을 볼 수있는 대화 상자 일 수 있습니다. 백그라운드에서 볼 수있는 앱은 가시적 인 프로세스입니다..
- 3. 서비스 프로세스: 서비스 프로세스는 화면에 표시되는 앱에 묶여 있지 않습니다. 그러나 음악을 재생하거나 백그라운드에서 데이터를 다운로드하는 것과 같은 백그라운드에서 작업을 수행합니다. 예를 들어, 음악 재생을 시작하고 다른 앱으로 전환하면 배경에있는 음악 재생이 서비스 프로세스에서 처리되고 있습니다.
- 4. 배경 프로세스: 백그라운드 프로세스가 현재 사용자에게 표시되지 않습니다. 그들은 전화 사용 경험에 아무런 영향을 미치지 않습니다. 주어진 시간에 많은 백그라운드 프로세스가 현재 실행 중입니다. 이러한 백그라운드 프로세스는 "일시 중지 된"응용 프로그램으로 생각할 수 있습니다. 메모리에 보관되므로 돌아갈 때 신속하게 다시 사용할 수 있지만 중요한 CPU 시간이나 기타 비 메모리 리소스를 사용하지는 않습니다..
- 5. 빈 프로세스: 빈 프로세스에 더 이상 응용 프로그램 데이터가 없습니다. 나중에 응용 프로그램 실행 속도를 높이기 위해 캐싱을 위해 보관할 수도 있고 시스템이 필요에 따라 시스템을 종료시킬 수도 있습니다.
예를 들어 휴대 전화를 켜고 뮤직 앱을 열었다 고 가정 해 봅시다. 당신이 그것을 사용하는 동안, 음악 애플 리케이션은 전경 과정이 될 것입니다. 음악을 재생하고 음악 응용 프로그램을 나가기 시작하면 음악이 계속 서비스 프로세스로 재생됩니다..
Angry Birds를 다른 예로서 살펴 보겠습니다. 앵그리 버드 (Angry Birds)는 당신이 플레이하는 동안 포어 그라운드 프로세스가 될 것입니다. Angry Birds를 종료하고 이메일을보기 위해 Gmail 앱에 들어가면 Angry Birds는 배경 프로세스가됩니다 (배경에서는 아무 것도 할 필요가 없기 때문에). Gmail은 전경 과정이됩니다. Angry Birds로 다시 전환하면 포 그라운드 프로세스가되어 게임이 재개됩니다. Angry Birds는 일부 RAM을 제외하고 백그라운드에서 리소스를 사용하지 않았지만 캐시 된 상태로 계속 재개 할 준비가되어 있기 때문에 빠르게 재개됩니다..
Android가 자동으로 프로세스를 관리합니다.
Android는 이러한 프로세스를 자동으로 관리하는 훌륭한 작업입니다. Android에서 작업 킬러가 필요하지 않은 이유입니다..
안드로이드가 더 많은 시스템 자원을 필요로 할 때, 가장 중요한 프로세스를 먼저 죽이기 시작할 것이다. 안드로이드는 빈 상태가되면 백그라운드 메모리를 비우기 위해 빈 프로세스와 백그라운드 프로세스를 죽이기 시작할 것입니다. 더 많은 메모리가 필요하다면 (예 : RAM이별로없는 기기에서 특히 까다로운 게임을하는 경우) Android가 서비스 프로세스를 중지하기 시작하므로 스트리밍 음악 및 파일 다운로드가 중단 될 수 있습니다.
대부분의 경우 Android는 걱정할 필요없이이 모든 작업을 수행합니다. Android는 RAM을 비워 둘 필요가 없기 때문에 지능적으로 기기의 RAM을 사용하여 앱 및 기타 데이터를 캐싱합니다..
물론 안드로이드는 애플 리케이션에 너무 많은 유연성을 제공하여 오산 할 여지가 있습니다. 예를 들어 잘못 코딩 된 앱은 백그라운드에서 계속 실행되는 서비스 프로세스를 시작하여 모든 CPU 시간을 소모하고 배터리 수명을 크게 단축 할 수 있습니다.
Avast와 같은 바이러스 백신 앱에서 주목할 흥미로운 점 하나! Android의 경우 바이러스 백신 앱이 알림 아이콘을 사용합니다. 알림 아이콘을 비활성화하려고하면 Avast! 그것을 추천합니다. 눈에 띄는 알림 아이콘을 가짐으로써, Avast! 안드로이드가 그것을 배경 앱으로 생각하지 못하게하고, 그것을 죽이는 것을 더 우선 순위가 높은 앱으로 만든다..
Android 애플리케이션은 이벤트에 응답하여 시작할 수 있습니다.
Android 앱은 이벤트에 응답하여 시작할 수도 있습니다. 예를 들어, 개발자는 시작할 때 자동으로 실행되고 백그라운드에서 서비스를 실행하도록 앱을 프로그래밍 할 수 있습니다. 앱은 사진을 찍을 때, 데이터 연결이 변경 될 때 등과 같이 다양한 다른 이벤트에 응답하여 시작할 수 있습니다. 이를 통해 앱은 백그라운드에서 계속 실행하지 않고도 이벤트에 응답하여 작업을 수행 할 수 있습니다..
프로세스 관리
수동으로 프로세스를 관리 할 필요는 없지만 원한다면 프로세스를 수행 할 수있는 몇 가지 방법이 있습니다. Android 4.0 이상에서 멀티 태스킹 메뉴를 사용하여 기본 프로세스 관리를 수행 할 수 있습니다. 액세스하려면 Nexus 기기에서 전용 멀티 태스킹 버튼을 탭합니다. 다른 Android 기기에서는 홈 버튼을 두 번 탭하거나 길게 눌러야 할 수 있습니다.
메뉴에 표시된 앱은 "백그라운드 프로세스"상태 일 가능성이 큽니다. 앱을 왼쪽이나 오른쪽으로 스 와이프하여 삭제하면 기기의 메모리에서 삭제됩니다. 필요하지 않아야하지만 앱을 빠르게 종료하려는 경우 도움이 될 수 있습니다. 오작동 일 수 있습니다..
설정 화면으로 이동하여 앱을 탭하고 앱을 탭한 다음 강제 종료 버튼을 사용하여 오작동하는 앱을 삭제할 수도 있습니다..
Android는 Linux를 기반으로하며 Android의 모든 앱은 다른 Linux 사용자 ID 또는 사용자 계정에 할당됩니다. 이렇게하면 앱이 서로 격리됩니다. 장치를 루트하면 응용 프로그램이 사용자 샌드 박스를 벗어나 루트 권한으로 실행할 수 있습니다.
이미지 크레디트 : Flickr의 JD 핸콕