안드로이드 프로세스와 스레드

2023. 2. 22. 16:35Android

스마트폰을 예시로 작성할 것이다.

 

우리가 사용하는 스마트폰에는 수 많은 애플리케이션들이 설치되어 있다. 그리고 각각의 애플리케이션 별로 별도의 프로세스가 존재한다. 이러한 프로세스들은 스레드들을 가지고 있고 이러한 스레드들을 이용해 병렬적 처리도 가능해진다.

 

안드로이드에서 프로세스들의 통신 방법으로 IPC (inter-Process Communication)을 이용해 통신을 하는데 이것은 다른 애플리케이션 간 데이터 공유와 기능을 사용할 수 있게 만들어준다. 

 

안드로이드 개발을 해봤다면 기본적으로 알고있을 Intent와 Binder 있다. 

Intent는 데이터를 전달하는데 사용한다.

Binder는 서로 다른 프로세스 간 호출을 위해 사용한다. ( 네트워크 통신 같은 )

 

이전에 말한 프로세스들 중 브로드캐스트 리시버와 서비스는 우리가 공부하는 안드로이드 4대 컴포넌트에 포함되기에 많이 들어봤을 것이다. 이것들 또한 프로세스에 해당되면 애플리케이션에 종속되어 있는 것이 아닌 별도의 프로세스에서 작동된다. 때문에 특정 애플리케이션이 종료되더라도 백그라운드에서 실행되기 때문에 각종 이벤트나 메세지를 전달할 수 있는 것이다.

 

브로드캐스트 -> 배터리 알림

서비스 -> 음악 백그라운드 재생, 유튜브 재생 등등