전원 관리 리소스 한도

시스템은 기기 상태, 앱 상태, 앱의 대기 버킷에 따라 앱의 리소스 요청에 우선순위를 부여합니다.

Android 시스템은 두 가지 방법으로 리소스 제한을 적용할 수 있습니다. 리소스 사용을 최적화하는 한 가지 방법은 기기가 절전 모드와 같은 저전력 기기 상태를 종료할 때까지 작업 실행을 연기하는 것입니다. 예를 들어 일반 작업과 부정확한 알람은 기기가 절전 모드를 종료한 후에 실행되도록 지연됩니다.

다른 방법은 앱의 현재 대기 버킷에 따라 앱이 기기를 깨우고 작업을 실행할 수 있는 정도를 줄이는 것입니다. 시스템은 빈도 (앱이 기기를 깨우는 빈도)와 총 시간(기기가 절전 모드를 해제한 상태로 유지되는 시간)을 모두 줄일 수 있습니다. 예를 들어 앱이 드물게 사용 대기 버킷에 있는 경우 앱은 24시간 동안 총 10분 동안 예약된 작업을 실행할 수 있습니다.

WorkManager는 앱이 표시되지 않아 작업자가 작업 리소스 제한의 영향을 받을 때 JobScheduler를 사용하여 작업을 예약합니다.

다음 도움말을 참고하여 제한사항을 자세히 알아보세요.

  1. 기기 상태에 따른 리소스 한도
  2. 앱 상태에 따른 리소스 한도
  3. 앱 대기 버킷에 따른 리소스 제한

기기 상태 및 앱 상태는 앱 대기 버킷 한도를 재정의할 수 있습니다. 예를 들어 기기가 충전 중인 경우 시스템은 드물게 사용 대기 버킷의 앱이 24시간 동안 10분 넘게 작업을 실행하도록 허용합니다.

리소스 한도에도 영향을 미치는 동작 변경사항이 있었습니다. 자세한 내용은 리소스 한도에 영향을 미치는 Android 동작 변경사항을 참고하세요.

기기 상태에 따른 리소스 제한

시스템은 기기 상태에 따라 리소스 한도를 면제하거나 적용할 수도 있습니다. 예를 들어 충전 상태의 기기는 앱 대기 버킷과 관계없이 제한되지 않은 리소스 액세스 권한을 갖습니다.

기기 상태

취업 정보

알람

네트워크 액세스

Firebase 클라우드 메시징

충전 중

제한됨 대기 버킷을 제외하고 실행 한도가 없음

사용자가 앱 배터리를 수동으로 제한하는 경우를 제외하고 모든 대기 버킷 및 프로세스 상태에 실행 제한이 없습니다.

제한 없음

제한 없음

화면 켜짐

대기 버킷을 기준으로 실행 한도가 적용됨

실행 한도는 앱 프로세스 및 대기 버킷을 기준으로 적용됩니다.

액세스 권한은 대기 버킷 또는 앱 프로세스 상태에 따라 다름

제한 없음

화면 꺼짐 및 최대 절전 모드가 활성화됨

실행 한도는 대기 버킷을 기반으로 적용되며 실행은 절전 모드 유지 관리 기간으로 연기됩니다.

실행 한도는 대기 버킷을 기준으로 적용됩니다.

일반 알람: 최대 절전 모드 유지보수 기간으로 연기됨

유휴 상태 중 알람: 시간당 7회로 제한

최대 절전 모드 중 제한됨

높은 우선순위: 실행 한도 없음

보통 우선순위: 최대 절전 모드 유지보수 기간으로 연기됨

앱 상태에 따른 리소스 제한

시스템에서 앱 대기 버킷의 리소스 제한을 적용하는지 여부는 앱 프로세스 중요도에 따라 다릅니다. ActivityManager.RunningAppProcessInfo.importance에서 프로세스 중요도 수준을 알아보세요.

기기 사용자는 앱 전원 관리 최적화를 수동으로 재정의할 수도 있습니다. 이 경우 앱 대기 버킷 한도가 적용되지 않습니다.

앱 상태

취업 정보

알람

네트워크

앱 프로세스가 표시되거나 포그라운드 상태임

실행 한도 없음

빈도 제한 없음

제한 없음

앱 프로세스에서 포그라운드 서비스를 실행 중입니다.

실행 한도는 대기 버킷을 기준으로 적용됩니다.***

대기 버킷을 기반으로 게재빈도 한도가 적용됩니다.

제한 없음

사용자가 앱 배터리를 수동으로 제한함

실행이 제한됨

실행이 제한됨

액세스 권한은 대기 버킷 동작에 따라 다름

사용자가 앱 배터리를 수동으로 제한 해제함

실행 한도가 넉넉함***

실행 한도 없음

기기가 데이터 절약 모드가 아닌 한 제한되지 않음

*** 작업의 실행 할당량 동작이 Android 16에서 변경되었습니다. Android 16 이전에는 앱이 포그라운드 서비스를 실행 중이거나 사용자가 앱 배터리를 제한하지 않은 경우 실행 제한이 없었습니다.

앱 대기 버킷에 따른 리소스 제한

참고: 이 표의 값은 실행 시간을 보장하지 않습니다. 다른 기기 상태나 버킷 변경사항이 리소스 제약조건에 영향을 줄 수 있기 때문입니다. 이 값은 향후 Android 버전에서 변경될 수 있습니다.

일반 작업, 신속 처리 작업, 알람, 네트워크 액세스는 앱 대기 버킷에 따라 제한될 수 있습니다. 이러한 대략적인 전원 관리 제한을 가이드라인으로 사용하여 앱 대기 버킷이 앱에 미치는 영향을 파악합니다. 최적의 성능을 위해 앱 대기 권장사항을 준수하고 작업 예약 API의 배터리 사용을 최적화하세요.

Android 13부터 앱의 대기 버킷이 더 이상 앱에서 사용할 수 있는 우선순위가 높은 FCM 수를 결정하지 않습니다.

앱 대기 버킷

정규직*

신속 처리 작업**

알람

네트워크

활성 상태:

60분 동안 최대 20분***

24시간 동안 최대 30분***

실행 한도 없음

제한 없음

작업 세트:

4시간 동안 최대 10분

24시간 동안 최대 15분

시간당 10회로 제한

제한 없음

자주 사용:

12시간 동안 최대 10분

24시간 동안 최대 10분

시간당 2회로 제한

제한 없음

드물게 사용:

24시간 동안 최대 10분

24시간 동안 최대 10분

시간당 1회로 제한

사용 중지됨

제한됨:

하루에 한 번, 최대 10분

24시간 동안 최대 5분

정확한 알람 또는 부정확한 알람 중 하루 알람 1개

사용 중지됨

* 일반 작업은 JobScheduler의 setUserInitiated(true) 또는 setExpedited(true) 플래그 또는 WorkManager의 신속한 작업자를 사용하지 않는 작업을 나타냅니다.

** 신속한 작업에는 일반 작업과 별도의 실행 한도가 있습니다. 신속한 작업 한도가 소진되면 일반 작업 실행 한도를 사용하여 계속 실행되도록 WorkManager에서 구성할 수 있습니다.

*** 작업의 실행 할당량 동작이 Android 16에서 변경되었습니다. Android 16 이전에는 앱이 활성 대기 버킷에 있을 때 실행 제한이 없었습니다.

리소스 한도에 영향을 미치는 Android 동작 변경사항

다음 Android 업데이트에서 앱 리소스 한도가 변경되었습니다.

Android 16

JobScheduler 할당량 최적화 동작 변경

Android는 다음 요소를 기반으로 일반 및 신속한 작업 실행 런타임 할당량을 조정했습니다.

  1. 앱이 속한 앱 대기 버킷
  2. 앱이 최상위 상태에 있는 동안 작업 실행이 시작되는 경우
  3. 포그라운드 서비스를 실행하는 동안 작업이 실행되는 경우

Android 13

우선순위가 높은 Firebase 클라우드 메시징 (FCM) 할당량 동작 변경

  • 앱 대기 버킷이 앱에서 사용할 수 있는 우선순위가 높은 FCM 수를 더 이상 결정하지 않습니다.
  • 이제 시스템에서 알림을 유발하지 않는 우선순위가 높은 메시지를 지속적으로 전송하는 앱을 감지하면 우선순위가 높은 메시지를 다운그레이드합니다.
  • 우선순위가 높은 메시지에 관한 현재 가이드라인은 메시지 우선순위 설정 및 관리에 관한 Firebase 문서를 참고하세요.

Android 9

앱 대기 버킷 기능이 도입됨

Android 9에서는 앱 대기 버킷이라는 새로운 배터리 관리 기능을 소개합니다. 앱 대기 버킷을 사용하면 앱이 얼마나 최근에 얼마나 자주 사용되었는지에 기반해 시스템이 앱의 리소스 요청에 우선순위를 정할 수 있습니다. 앱 사용 패턴에 따라 각 앱은 5개의 우선순위 버킷 중 하나에 배치됩니다. 시스템은 앱이 어떤 버킷에 있는지에 기반해 각 앱에서 사용 가능한 기기 리소스를 제한합니다.