백그라운드 작업
백그라운드 작업을 실행하는 것은 사용자 기기에서 응답성이 높고 효율적이며 좋은 시민인 최신 Android 앱을 빌드하는 데 있어 중요한 부분입니다. 백그라운드 작업은 앱이 포그라운드에 표시되지 않을 때 실행해야 하는 모든 작업을 포함합니다(예: 서버에서 데이터 가져오기 또는 이미지 처리).
백그라운드 실행의 복잡성을 탐색하는 것은 모든 기기에서 잘 작동하는 탄력적인 애플리케이션을 빌드하는 데 중요합니다.
백그라운드 작업 시작하기
사용 사례에 적합한 백그라운드 작업 API 선택에 관한 가이드를 확인하고 Android 프로세스 및 앱 수명 주기와 관련하여 고려하세요.
가이드
적절한 옵션 선택
적절한 백그라운드 작업 API를 선택하는 것은 복잡할 수 있습니다. 이 페이지에서는 비동기 작업, WorkManager, 포그라운드 서비스 또는 대체 옵션을 사용해야 하는 시기에 관한 명확한 안내를 제공합니다. 특정 사용 사례에 가장 적합한 API를 알아보세요.
가이드
프로세스 및 앱 수명 주기
Android 프로세스 수명 주기의 기본 개념과 앱의 동작 및 리소스 관리에 미치는 영향을 알아봅니다. 활동 상태에 따라 시스템이 앱 프로세스를 관리하는 방법을 알아보고 시스템에서 시작한 종료에 적절하게 대응하는 복원력 있고 효율적인 애플리케이션을 설계하세요.
주요 개념
백그라운드에서 작업을 실행하는 데 사용되는 일반적인 API와 도구로는 WorkManager, 포그라운드 서비스, 알람, 브로드캐스트가 있습니다. 각 솔루션은 사용자 기기의 배터리 수명에 미치는 영향이 다릅니다.
WorkManager
WorkManager는 Android에서 지속적인 백그라운드 작업에 권장되는 솔루션입니다. 이 강력한 라이브러리를 사용하여 앱 다시 시작 및 기기 재부팅 시 유지되는 작업을 예약하고 제약 조건 및 유연한 재시도 정책을 처리하는 주요 기능을 알아보세요.
포그라운드 서비스
포그라운드 서비스는 중단되지 않아야 하는 작업을 즉시 실행하는 강력한 방법을 제공합니다. 앱이 시스템에 의해 종료되지 않고 중요한 작업을 실행하도록 영구 알림을 사용하여 포그라운드 서비스를 선언, 실행, 중지하는 시기와 방법을 알아봅니다.
알람
알람은 시간 기반 작업을 예약하는 데 중요한 도구입니다. 이 페이지에서는 앱이 실행되지 않는 경우에도 특정 시간에 또는 지정된 기간 내에 실행해야 하는 작업에 대해 AlarmManager를 사용하여 정확한 알람과 부정확한 알람을 모두 예약하는 방법을 설명합니다. 또한 알람을 관리하고 배터리 수명에 최적화하기 위한 권장사항도 다룹니다.
브로드캐스트
브로드캐스트를 보내고 받아 시스템 이벤트와 다른 앱의 메시지를 처리하는 방법을 알아보세요. 또한 컨텍스트 등록 및 매니페스트 선언 수신기와 이러한 수신기에 적용되는 최신 시스템 제한사항에 대해서도 알아봅니다.
사용 사례별 배경 가이드
적합한 솔루션은 사용 사례에 따라 다릅니다. Android는 특정 시나리오에 최적화된 다양한 작업별 API를 제공하며, 이러한 API를 사용하면 WorkManager 및 포그라운드 서비스를 사용할 때보다 전력을 더 절약하고 제한사항을 줄일 수 있는 경우가 많습니다.
이 섹션에서는 몇 가지 일반적인 사용 사례와 권장 솔루션을 나열합니다.
위치
대부분의 사용 사례에서는 사용자가 앱을 사용할 때만 위치가 필요합니다. 하지만 앱이 백그라운드에서 위치에 액세스해야 하는 경우 Fused Location Provider API를 사용하세요. 이 API를 활용하여 캐시된 마지막으로 알려진 위치를 가져오거나 주기적인 위치 업데이트를 요청하세요.
위젯
업데이트 메서드를 사용하여 앱이 백그라운드에 있을 때 GlanceAppWidgets를 효율적으로 업데이트합니다.
블루투스 및 연결된 기기
저전력 블루투스 (BLE)를 사용하여 백그라운드에서 주변기기와 통신합니다. 시스템 수준 제한을 준수하고 배터리를 절약하면서 기기를 검색하고 연결하고 지속적인 연결을 유지하는 방법을 알아봅니다.
걸음 수 모니터링
휴대기기에서 걸음 수를 추적하려면 건강 및 피트니스 데이터용 Android 데이터 저장소인 헬스 커넥트에서 걸음 수를 읽어오세요.
사용자 시작 데이터 전송
데이터 전송 (다운로드 및 업로드 포함)이 포함되고 진행 상황을 사용자에게 알리는 사용자 시작 백그라운드 작업에는 User-Initiated-Data Transfer Job 유형을 사용하세요. 이 작업 유형은 장기 실행 데이터 전송에 최적화되어 있으며 시스템에서 우선순위가 부여됩니다.
미디어 재생
앱이 사용자에게 표시되지 않는 동안 백그라운드 재생을 지원하려면 Media3 라이브러리를 사용하세요.
전원 최적화 이해
백그라운드 작업이 전력에 미치는 영향을 고려하는 것은 고품질 Android 앱을 만드는 데 매우 중요합니다. 이를 통해 시스템에서 리소스를 관리하는 방식을 이해하여 더 탄력적이고 배터리 효율적인 앱을 빌드할 수 있습니다. 전력에 맞게 최적화하면 배터리 소모가 줄어들고 시스템에서 앱이 종료되는 것을 방지하며 더 원활한 사용자 환경을 제공할 수 있습니다.
가이드
전원 관리 리소스 한도 이해
시스템은 기기 상태, 앱 상태, 앱의 대기 버킷에 따라 앱의 리소스 요청에 우선순위를 지정합니다.
앱이 기기의 전원 관리 리소스 제한 내에서 작동하여 백그라운드에서 작업을 안정적으로 실행하는 방법을 자세히 알아보세요.
가이드
기기를 켜진 상태로 유지
앱에서 중요한 작업을 완료하기 위해 기기의 CPU가 일시 중단 상태로 전환되지 않도록 해야 할 수 있습니다. 이 가이드는 기기를 절전 모드로 전환되지 않도록 유지하는 데 가장 적합한 방법을 선택하는 데 도움이 됩니다.
가이드
잠자기 및 대기 모드에 맞게 최적화
앱을 잠자기 및 앱 대기 모드에 맞게 조정하여 배터리 효율성을 개선하고 사용자 환경을 향상하는 방법을 알아보세요. 이러한 절전 모드를 이해하면 기기 배터리 수명에 미치는 영향을 최소화하면서 앱을 최적으로 실행할 수 있습니다.
가이드
전력 관련 문제 테스트
Android 9부터 기기에는 모든 앱에 영향을 미치는 전력 관리 기능이 있습니다. 절전 모드, 앱 대기 버킷, 백그라운드 제한과 같은 기능을 포함하여 모든 기기에서 앱이 제대로 실행되는지 테스트하는 방법을 알아보세요.