작성자: Caren Chang (안드로이드 개발자 프로그램 엔지니어)
원문은 이 곳에서 확인 가능하며 블로그 번역 리뷰는 양찬석(Google)님이 참여해 주셨습니다.
Android 사용자는 휴대전화의 배터리 수명에 많은 신경을 씁니다. 특히 앱에서 지연 가능한 백그라운드 작업을 예약하는 방식은 배터리 수명에 큰 영향을 미칩니다. 배터리 소모가 적은 앱을 개발하는 데 도움이 될 수 있도록 Google은 지연 가능한 백그라운드 처리에 필요한 사항을 모두 지원하는 통합 솔루션인 WorkManager를 도입했습니다.
2020년 11월 1일부터는 Android의 지연 가능한 백그라운드 작업이 WorkManager를 중심으로 통일되며 GCMNetworkManager는 지원 중단됩니다.
WorkManager API는 Firebase Job Dispatcher(FJD) 및 GcmNetworkManager 솔루션의 기능을 통합하여 API 레벨 14까지 일관성 있는 작업 예약 서비스를 제공하면서 배터리 수명을 개선합니다. 예를 들어 앱에서 서버로 로그 파일을 보내야 하는 경우 기기가 충전 중이며 Wi-Fi에 연결될 때까지 기다리는 것이 더 효율적일 수 있습니다. 이 경우 WorkManager는 주어진 조건(충전 중이며 Wi-Fi에 연결됨)이 충족되었을 때 동기화가 실행되도록 해 줍니다. 또한 FJD 및 GcmNetworkManager와 달리 Google Play 서비스가 필요하지도 않습니다.
WorkManager의 다른 몇 가지 주요 특징은 다음과 같습니다.
●앱을 업데이트하고 기기를 다시 시작해도 예약된 작업 계속 진행
●일회성 작업 또는 주기적으로 실행되는 작업 예약
WorkManager 라이브러리의 개발이 완성되어가면서 개발자 스토리를 간소화하고 WorkManager 안정성 및 기능에 초점을 맞추기 위해 대체 솔루션을 지원 중단하기로 했습니다.
●2019년 4월에 Google은 FirebaseJobDispatcher 라이브러리의 지원 중단을 발표했습니다. 2020년 4월에는 라이브러리가 보관처리되며 라이브러리에서 제기되는 문제를 더 이상 지원하지 않게 됩니다.
●이에 더해 이번에는 GCMNetworkManager의 지원 중단을 발표하게 되었습니다. 라이브러리에 더 이상 새로운 기능이 추가되지 않으며 2020년 11월부터는 라이브러리와 관련된 문제를 지원하지 않게 됩니다.
●또한 앱에서 대상 API 레벨(targetSdkVersion)을 Android 10(API 레벨 29) 이상으로 업데이트하면 Android Marshmallow(6.0) 이상을 실행하는 기기에서 더 이상 FirebaseJobDispatcher 및 GcmNetworkManager API 호출이 작동하지 않습니다.
앱에서 여전히 FirebaseJobDispatcher를 사용 중이라면 이전 가이드에 따라 앱을 WorkManager로 이전할 수 있습니다. 이와 유사하게 GCMNetworkManager에서 WorkManager로의 이전 가이드를 활용할 수도 있습니다.
YouTube는 백그라운드 예약 요구사항에 맞춰 최근 WorkManager로 이전했으며, 덕분에 앱 시작 시간을 개선하고 비정상 종료 발생률도 8%만큼 낮출 수 있었습니다.
저희는 계속해서 WorkManager를 개선하고 기능을 개발하고 있습니다. 라이브러리 사용 중에 문제가 발생하거나, 제안하고 싶은 기능이 있거나, 라이브러리와 관련된 의견이 있다면 이곳으로 알려주세요.