[Tistory] 안드로이드 백그라운드 작업시

원글 페이지 : 바로가기

안드로이드에서 백그라운드 작업이란? 안드로이드에서 백그라운드 작업이란, 애플리케이션이 화면에서 보이지 않는 상태에서도 동작하는 작업들을 말한다. 음악 재생, 파일 다운로드, 위치 정보 수집 등등. https://small-stepping.tistory.com/1034 안드로이드 4대 컴포넌트 잡설:면접때 받은 질문인 안드로이드 4대 컴포넌트.아니 정확히는 안드로이드에 액티비티, 서비스, 브로드캐스트 리시버, 콘텐츠 프로바이더에 대해 설명해보라고 들었다.맨 처음에 이 대답을 small-stepping.tistory.com https://small-stepping.tistory.com/1005 WorkManager로 백그라운드 작업 WorkManager란?WorkManager는 상황별 실행과 보장된 실행을 조합하여 적용해야 하는 백그라운드 작업을 위한 아키텍처 구성요소로서 Android Jetpack의 일부이다. 상황별 실행을 적용하면 WorkManager가 최대 small-stepping.tistory.com 안드로이드 4대 컴포넌트 게시물에서 서비스와 브로드캐스트 리시버의 개념을 다루며 백그라운드에 대한 작업을 이야기하고, WorkManager로 백그라운드 작업 게시물에서도 튜토리얼 프로젝트를 따라하며 WorkManager로 백그라운드 작업에 대해 다룬 적이 있다. 이렇듯 안드로이드에서 백그라운드 작업은 서비스나 브로드캐스트 리시버를 이용해 구현된다. 다시 한 번 서비스와 브로드캐스트 리시버를 집고가보자. 서비스는 백그라운드에서 실행되는 독립적인 컴포넌트. 브로드캐스트 리시버는 시스템에서 발생하는 특정 이벤트를 수신하여 처리하는 컴포넌트. 안드로이드에서는 백그라운드 작업이 앱의 성능, 배터리 수명에 영향을 미칠 수 있다는 문제를 알고 있기 대문에 백그라운드 실행을 제한하는 정책을 적용하고 있다. 경우에 따라서는 잘못된 접근 방식을 선택할 경우 Google PlayStore에 애플리케이션이 등록되지 않을 수도 있다고 한다. 예를 들어, 안드로이드 8.0인 오레오버전부터는 백그라운드에서 실행되는 서비스에 제한이 생겨서 Foreground Service를 사용해야만 작업이 가능한 경우 등이 존재한다. 그래서 안드로이드 애플리케이션을 개발함에 있어서 백그라운드 실행이 필요한 경우 제한 정책도 고려하여 적절한 방법으로 백그라운드 작업을 구현해야만 한다. 공식 문서 백그라운드 처리 가이드 https://developer.android.com/develop/background-work/background-tasks?hl=ko 백그라운드 작업 개요 | Background work | Android Developers 이 페이지는 Cloud Translation API를 통해 번역되었습니다. 백그라운드 작업 개요 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 앱에서는 한 번에 여러 작업을 developer.android.com 1. Immediate: 즉시 실행해야 하는 작업 Immediate Background Task는 안드로이드에서 백그라운드에 실행되는 작업 중에서도 우선순위가 매우 높은 작업을 말한다. 사용자가 앱을 종료하거나, 홈 버튼을 누르거나 하는 등의 최우선적인 상황에서도 실행되어야 하는 작업이다. Immediate Background Task는 사용자 경험에 직접적으로 영향을 주는 작업들이 많이 포함된다. 메시지, 알림 받은 후의 진동-소리-라이트 등으로 알림을 주는 작업 파일 다운로드 및 데이터 동기화와 같은 작업 etc… 이러한 작업들이 Immediate Background Task에 속한다. 하지만, 이 작업이 백그라운드에서 계속해서 실행될 경우, 배터리 수명과 성능에 영향을 미칠 수 있기에 앱 개발 시 제한 정책을 적용시키고 필요한 경우에만 실행되도록 해야 한다. 이 작업은 앱 스코프 내에서라면 Coroutine, RxJava, flow 등을 사용해 구현할 수 있으며 – 앱이 Foreground 상태에 있을 때 완료될 수 있는 가벼운 작업 (간단한 API 호출, 짧은 시간의 타이머, 금방 끝나는 계산 알고리즘) 앱 스코프 외에서라면 WorkManager를 사용하여 구현할 수 있다. – 위 작업보단 좀 더 무거운 작업들 2. Long-Running: 장기적인 작업 작업을 완료하는데 10분 이상이 걸릴 것으로 예상되는 작업들이다. WorkManager를 사용하면 장시간 실행된느 Worker를 사용하여 이런 장기 작업들을 처리할 수 있다. 예를들어 용량이 매우 크지만 분할하여 다운로드 할 수 없는 파일을 다운로드할때 사용할 수 있다. 3. Deferrable: 지연 작업 Deferred Background Task는 Immediate 작업과는 달리 백그라운드에서 실행될 때 사용자 경험에 직접적으로 영향을 주지 않는 작업들이다. 사용자가 앱을 종료하거나 다른 앱을 사용하고 있을때에만 실행될 수 있는 작업이다. 예를들어 데이터베이스에서 데이터를 업데이트하거나, 로그 수집, 백업 작업 등의 작업들이다. 이 작업은 JobScheduler를 사용하거나 WorkManager를 사용해 구현할 수 있다. 4. Exact(Alarm): 정시에 실행해야 하는 작업 Exact Background Task는 정확한 시간에 실행되어야 하는 작업이다. 예를들어 매일 정해진 시간에 알림을 보내는 작업, 매주 특정 요일에 데이터를 동기화하는 작업들이다. 이 작업은 AlarmManager, AlarmManager + Notification을 통해 구현하거나, AlarmManager + WorkManager를 함께 사용하여 구현할 수 있다. AlarmMnager와 WorkManager를 함께 사용할 경우 WorkManager를 사용해 앱이 실행 중일 때 작업을 실행하고, AlarmMnager를 사용해 입이 실행 중이지 않을 때 작업을 예약할 수 있다. 5. Foreground Service: 지속적으로 유저에게 작업 상황을 보여줘야하는 작업 음악을 재생하는 앱을 만들거나 헬스케어 앱을 만들어 만보기와 같이 계속해서 오르는 수치를 상단 바 등지에서 현재 상황을 지속적으로 유저에게 보여줘야하는 경우 Foreground Service를 사용한다. Foreground Service는 사용자가 직접 봐야하는 중요한 작업을 수행하는 서비스로 백그라운드에서 실행되면서도 알림을 통해 사용자에게 작업 진행상황을 알리는 기능을 제공한다. 이 Foreground Service는 Service를 상속받아 구현할 수 있으며, Service에서 startForeground() 메서드를 호출하여 Foreground Service로 등록하고 알림을 설정해 사용자에게 알림을 보여줄 수 있다. 추가적인 정보는 다음 링크를 참고하자. https://developer.android.com/develop/background-work/background-tasks?hl=ko 백그라운드 작업 개요 | Background work | Android Developers 이 페이지는 Cloud Translation API를 통해 번역되었습니다. 백그라운드 작업 개요 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 앱에서는 한 번에 여러 작업을 developer.android.com https://developer.android.com/codelabs/android-workmanager?hl=ko#0 WorkManager를 사용한 백그라운드 작업 – Kotlin | Android Developers Android에는 보장된 백그라운드 작업을 위한 다수의 옵션이 있으며, 이러한 옵션에는 각각 다양한 장단점이 있습니다. Android용 WorkManager API는 백그라운드 작업을 간편하게 만듭니다. WorkManager는 예 developer.android.com https://velog.io/@woga1999/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EB%B0%B1%EA%B7%B8%EB%9D%BC%EC%9A%B4%EB%93%9C%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C#immediate-work%EC%A6%89%EC%8B%9C-%EC%8B%A4%ED%96%89%ED%95%B4%EC%95%BC-%ED%95%98%EB%8A%94-%EC%9E%91%EC%97%85 안드로이드 백그라운드에 대해서 우리는 앱을 이용하면서 백그라운드 서비스를 이용하는 일이 많다.음악을 계속 듣는다던지, 영상이 어떤 화면에서든 스트리밍이 가능하다던지 (ex. 갤럭시는 pip로) 백그라운드는 정말 다양하게 velog.io https://medium.com/@ramkid91/android-background-task-a31e74bfd471 Android- Background task 백그라운드 태스크 medium.com

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다