본문 바로가기
X

앱 개발 방법 - 앱 기본 요소 (서비스)

by green post it 2021. 12. 31.
반응형

안드로이드 프로그래밍

서비스

서비스는 여러가지 이유로 백그라운드에서 앱을 계속 실행하기 위한 다목적 진입점입니다. 이는 백그라운드에서 실행되는 구성 요소로, 오랫동안 실행되는 작업을 수행하거나 원격 프로세스를 위한 작업을 수행합니다.

 

서비스는 사용자 인터페이스를 제공하지 않습니다. 예를 들어 서비스는 사용자가 다른 앱에 있는 동안에 백그라운드에서 음악을 재생하거나 사용자와 액티비티 간의 상호작용을 차단하지 않고 네트워크를 통해 데이터를 가져올 수도 있습니다. 다른 구성요소(예 : 액티비티)가 서비스를 시작한 다음 실행되도록 두거나 자신에게 바인딩하여 상호작용하게 할 수도 있습니다.

 

사실 시스템에 앱 관리 방법을 지시하는 것은 서로 매우 뚜렷하게 구분되는 두 가지 의미 체계 서비스입니다. 시작된 서비스는 작업이 완료될 때까지 해당 서비스를 계속 실행하라고 시스템에 지시합니다.

 

백그라운드에서 일부 데이터를 동기화하거나 사용자가 앱에서 나간 후에도 음악을 재생하는 등의 서비스를 예로 들 수 있습니다. 백그라운드에서 데이터를 동기화하거나 음악을 재생하는 것은 각각 두 가지 유형의 시작된 서비스를 나타내는데 이는 시스템이 서비스를 처리하는 방식을 변경합니다.

 

  • 음악 재생은 사용자가 바로 인식할 수 있는 작업입니다. 따라서 앱은 사용자에게 이와 관련된 알림을 보내고 음악 재생을 포그라운드로 옮기라고 시스템에 지시합니다. 이 경우 시스템은 이 서비스의 프로세스가 계속 실행되도록 많은 노력을 기울여야 합니다. 이 서비스가 사라지면 사용자가 불만을 느낄 것이기 때문입니다.
  • 정기적인 백그라운드 서비스는 사용자가 실행되고 있다고 직접 인식할 수 없는 작업이므로 시스템은 좀 더 자유롭게 프로세스를 관리할 수 있습니다. 사용자와 좀 더 직접적인 관련이 있는 작업에 RAM이 필요할 경우 이 서비스를 종료할 수도 있습니다.(그런 다음, 나중에 서비스를 다시 시작할 수도 있습니다.)

바인딩된 서비스는 다른 앱(또는 서비스)에서 서비스를 사용하고 싶다는 의향을 표현했기 때문에 실행됩니다.이는 기본적으로 서비스가 다른 프로세스에 API를 제공하는 것입니다.따라서 시스템은 프로세스 사이에 종속성이 있는지 알게 됩니다.

 

프로세스 A가 B의 서비스에 바인딩되어 있을 경우 시스템은 프로세스 A를 위해 프로세스 B(및 그 서비스)를 실행해야 한다는 것을 인식하게 됩니다. 또한 사용자가 프로세스 A에 관심을 기울이고 있다면 시스템에서 프로세스 B도 사용자가 관심을 기울이는 것처럼 취급해야 합니다.서비스는 (좋은 의미로든 나쁜 의미로든) 유연하기 때문에 각종 고차원적 시스템 개념의 매우 유용한 기본 구성 요소로 사용되었습니다.

 

라이브 배경화면 알림 리스너, 화면 보호기, 입력 메서드, 접근성 서비스 및 여러 가지 기타 핵심 서비스 기능이 모두 애플리케이션에서 구현하고 시스템에서 애플리케이션을 실행할 때 바인딩하는 서비스로 빌드됩니다.서비스는 Service 하위 클래스로 구현됩니다.

 

구글 안드로이드 서비스는 여러가지 이유로 백그라운드에서 앱을 계속 실행하기 위한 다목적 진입점이다.
반응형