android2018. 8. 10. 15:16



설명 :

프로세스

기본적으로 같은 애플리케이션의 모든 구성 요소는 같은 프로세스와 스레드에서 실행되고, 대부분의 애플리케이션은 이를 바꿔서는 안됩니다. 그러나 어느 프로세스가 특정 구성 요소에 속하는지 확인해야 할 경우 매니페스트 파일에서 확인할 수 있습니다.

각 유형의 구성 요소(<activity><service><receiver> 및 <provider>)에 대한 매니페스트 항목은 이 구성 요소가 실행되는 프로세스를 지정할 수 있는 android:process 특성을 지원합니다. 이러한 특성을 설정하여 각 구성 요소를 자체 프로세스에서 실행시키거나 다른 구성 요소를 제외한 일부 구성 요소만 프로세스를 공유하게 할 수 있습니다 또한,android:process를 설정하여 다른 애플리케이션의 구성 요소를 동일한 프로세스에서 실행시킬 수도 있습니다. 단, 이는 애플리케이션이 동일한 Linux 사용자 ID를 공유하고 동일한 인증서로 서명되었을 경우에 한합니다.

<application> 요소도 android:process 특성을 지원하여, 모든 구성 요소에 적용되는 기본값을 설정합니다.

Android는 어느 시점엔가 프로세스를 종료하기로 결정할 수도 있습니다. 즉 메모리가 부족하거나, 사용자에게 더욱 즉각적인 서비스를 제공하는 다른 프로세스가 이 프로세스의 중단을 필요로 하는 경우 등입니다. 그러면 중단된 프로세스에서 실행되고 있던 애플리케이션 구성 요소도 따라서 소멸됩니다. 그와 같은 구성 요소가 할 작업이 다시 생기면 그에 대한 프로세스도 다시 시작됩니다.

어느 프로세스를 삭제할지 결정할 때, Android 시스템은 사용자에 대한 이들의 상대적 중요성을 가늠합니다. 예를 들어, 눈에 보이는 액티비티를 호스팅하는 프로세스와 비교하여 화면에 보이지 않는 액티비티를 호스팅하는 프로세스를 쉽게 종료할 수 있습니다. 프로세스 종료 결정은 해당 프로세스에서 실행되는 구성 요소의 상태에 따라 달라집니다. 종료할 프로세스를 결정하는 데 사용하는 규칙은 아래에 설명되어 있습니다.



출처 :

https://developer.android.com/guide/components/processes-and-threads?hl=ko

'android' 카테고리의 다른 글

ErrorMessage: Sending non-protected broadcast  (0) 2018.08.22
AIDL example API + Callback (link)  (0) 2018.08.10
Immediate Audio Input & Output Android  (0) 2018.07.26
AudioTrack 정리  (0) 2018.07.26
MediaPlayer  (0) 2018.07.18
Posted by easy16