Cute Apple
본문 바로가기
개발/Android

[Android] Process 생명주기

by 미댕댕 2022. 8. 1.

대부분의 경우 모든 Android Application은 Linux 프로세스에서 실행된다.

 

 

알아야 하는 이유❓

  • 안드로이드는 프로세스를 가능한 오래 유지하려고 하지만, 새로운 프로세스를 생성하거나 보다 중요한 프로세스의 메모리 확보를 위해서 다른 프로세스를 종료 시키는 경우가 있음
  • 어떤 프로세스를 종료시키고, 또 어떤 프로세스를 남겨둘지 결정하기 위해서 시스템은 각 프로세스를 컴포넌트의 상태나 진행 상황에 따라 중요도를 결정
  • 중요도가 가장 낮은 프로세스 부터 종료의 대상이 되고, 이 순서에 따라 프로세스를 종료시키며 리소스를 확보(아래의번호 순서대로가 중요도 순)

 

 


1. Foreground Process

  • 사용자가 현재 조작하고 있는 Activity(onResume()이 호출된 Activity)
  • BroadcastReceiver가 현재 동작중인 상태(onReceive()가 동작 중인 상태)
  • Service에서 콜백함수가 활성중일 때(onCreate(), onStatrt(), onDestroy())
  • 사용자가 현재 조작하고 있는 일에 필요한 Process

 

2. Visible Process

  • onPause()가 호출되었지만, 여전히 화면에서 확인할 수 있는 Activity. 예를들면 Dialog가 떴을 때
  • 보여지고 있는 Activity와 biding 되어 있는 Service
  • Foreground componet를 가지고 있지만, 사용자가 화면에서 볼 수 없는 프로세스

 

3. Service Process

  •  위 두 상태에 포함되지는 않지만, startService()가 호출되어 실행중인 Service
  • 사용자가 직접 눈으로 확인할 수 있는 그 어떤 요소와도 연결되어 있지는 않지만, 사용자가 하고 있는 일에 영향을 주는 일을 함 (예를들면 음악재생, 데이터 다운로드 등)

 

4. Cached Process

  • Activity가 있지만, onStop()이 불린 이후여서 더 이상 사용자에게 보이지 않는 Process.
  • 더 이상 사용성에 직접적인 영향을 끼치지 않기 때문에, 메모리가 부족할 경우 System이 Foreground Process, Visible Process, Service Process에 앞서 종료
  • 일반적으로 많은 Background Process들이 있는데, 이들은 LRU(Least Recently Used)목록에 따라서, 최근 실행된 프로세스가 나중에 종료
  • 만약 Actvitiy가 생명주기 메소드를 제대로 구현했고, 현재 상태를 저장하도록 한다면, 사용자가 앱을 다시 실행시킬 경우 저장한 상태를 복구

 

 

5. Empty Process

  • Activity Compenet를 갖고 있지 않는 Process
  • 다음에 재실행될 때, 시작 시간을 줄이기 위해서 시스템이 프로세스를 캐싱하고 있기 때문에 존재

 

 

참고 

https://developer.android.com/guide/components/activities/process-lifecycle

 

프로세스 및 애플리케이션 수명 주기  |  Android 개발자  |  Android Developers

대부분의 경우 모든 Android 애플리케이션은 자체 Linux 프로세스에서 실행됩니다. 이 프로세스는 일부 코드를 실행해야 할 때 애플리케이션용으로 생성되며 더 이상 필요하지 않고 시스템이 메모

developer.android.com

 

반응형

'개발 > Android' 카테고리의 다른 글

[Android ] AAC란?  (0) 2022.08.04
[Android] Databinding이란?  (0) 2022.08.02
[Android] Layout 종류  (0) 2022.07.31
[Android] Retrofit2 와 OkHttp  (0) 2022.07.30
[Android] 4대 Component  (0) 2022.07.29

댓글