Android 13 개발자 프리뷰에 오신 것을 환영합니다. Android 13을 최고의 버전으로 만들 수 있도록 의견을 제공해 주세요.

배터리 리소스 사용률

Android 13에서는 다음과 같은 배터리 수명 보존 조치가 도입되었습니다.

앱이 '제한됨' 앱 대기 버킷에 진입하는 경우에 적용되는 규칙 업데이트

앱이 예외 요건을 충족하지 않는 한, 다음과 같은 동작 중 하나에 해당하면 시스템은 앱을 제한됨 버킷에 배치합니다.

  • 사용자가 8일 동안 앱과 상호작용하지 않습니다. 사용자가 앱의 서비스에 바인딩되는 다른 앱과 상호작용하는 경우, 시스템은 앱이 '사용된' 것으로 간주합니다.

  • 앱이 24시간 동안 과도한 개수의 브로드캐스트 또는 바인딩을 호출합니다.

  • 앱이 24시간 동안 상당한 양의 기기 배터리를 소모합니다. 저사양 RAM 기기의 경우 이 임계값이 다를 수 있습니다.

    앱이 기기의 배터리 수명에 미치는 영향을 측정할 때 시스템은 다음을 비롯해 앱이 여러 위치에서 실행하는 작업을 고려합니다.

    • 작업(신속 처리 작업 포함)
    • broadcast receiver
    • 백그라운드 서비스
    • 시스템이 앱의 프로세스를 캐시했는지 여부

앱이 '제한됨' 버킷을 벗어나도록 하는 사용자 상호작용

사용자가 다음과 같은 방법을 포함하는 방법으로 앱과 상호작용하면 시스템은 앱을 제한됨 버킷에서 꺼내서 다른 앱 대기 버킷에 넣습니다.

  • 사용자가 앱이 보낸 알림을 탭합니다.

  • 사용자가 앱에 속한 위젯에서 동작을 실행합니다.

  • 사용자가 미디어 버튼을 눌러 앱의 포그라운드 서비스에 영향을 줍니다.

  • 앱이 Android Automotive OS와 상호작용하며 이 OS의 포그라운드 서비스 또는 CONNECTION_TYPE_PROJECTION을 사용하는 중에 사용자가 앱에 연결합니다.

  • 앱을 PIP 모드로 볼 수 있습니다.

  • 앱이 화면에 표시된 활성 앱 중 하나입니다. (주로 대형 화면 기기에서 볼 수 있는 현상입니다.)

제한된 백그라운드 배터리 사용에 관한 새로운 제한사항

기존 버전의 Android에서는 앱이 백그라운드에서 실행되는 동안 실행할 수 있는 작업의 양을 사용자가 조정할 수 있습니다. 다음과 같은 옵션이 시스템 설정의 배터리 사용량 페이지에 표시됩니다.

  • 무제한: 백그라운드 작업이 허용됩니다. 이로 인해 배터리가 더 많이 소모될 수 있습니다.
  • 최적화됨(기본값): 사용자가 앱과 상호작용하는 방식에 따라 앱이 백그라운드 작업을 실행하는 기능이 최적화됩니다.
  • 제한됨: 앱의 다양한 용도보다 기기의 배터리 수명이 우선시됩니다. 앱이 백그라운드에서 실행할 수 있는 작업에 더 많은 제한사항이 적용됩니다.

Android 9(API 수준 28)부터는 '제한됨' 상태에 있는 앱에 다음과 같은 제한사항이 적용됩니다.

  • 포그라운드 서비스를 실행할 수 없습니다.
  • 기존 포그라운드 서비스가 포그라운드에서 삭제됩니다.
  • 알람이 트리거되지 않습니다.
  • 작업이 실행되지 않습니다.

앱이 Android 13을 타겟팅한 경우, 시스템은 앱이 다른 이유로 인해 시작될 때까지 다음과 같은 브로드캐스트를 전송하지 않습니다.

  • BOOT_COMPLETED
  • LOCKED_BOOT_COMPLETED

과도한 백그라운드 배터리 사용에 관한 시스템 알림

Android 13에는 앱이 24시간 동안 다량의 기기 배터리를 소모할 경우 표시되는 시스템 알림이 도입되었습니다. 이 새로운 알림은 타겟 SDK 버전과 관계없이 Android 13에서 실행되는 기기의 모든 앱이 표시합니다.

앱이 기기의 배터리 수명에 미치는 영향을 측정할 때 시스템은 다음을 비롯해 앱이 여러 위치에서 실행하는 작업을 고려합니다.

앱에 이 알림이 표시되면 최소 24시간이 지난 후까지 동일한 기기에 다시 표시되지 않습니다.

오랫동안 실행되는 포그라운드 서비스에 관한 시스템 알림

앱이 포그라운드 서비스를 오랫동안(24시간 중에서 20시간 이상) 실행하는 것을 시스템이 감지할 경우, 시스템은 사용자에게 FGS(포그라운드 서비스) 작업 관리자를 확인하도록 안내하는 알림을 보냅니다. 알림에는 다음과 같은 텍스트가 포함됩니다.

APP is running in the background for a long time. Tap to review.

포그라운드 서비스의 유형이 FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK 또는 FOREGROUND_SERVICE_TYPE_LOCATION인 경우에는 시스템이 이 알림을 표시하지 않습니다.

앱이 24시간 중 4시간 이상 FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK 또는 FOREGROUND_SERVICE_TYPE_LOCATION 유형의 포그라운드 서비스를 실행하는 경우 시스템은 앱이 시작하는 어떠한 포그라운드 서비스에 대해서도 오랫동안 실행되는 포그라운드 서비스 알림을 보내지 않습니다.

예외

다음과 같은 경우에는 Android 13에 도입된 모든 배터리 수명 보존 조치로부터 앱이 면제됩니다.

다음과 같은 경우에는 앱이 '제한됨' 앱 대기 버킷에 진입하지 않으며, 앱이 8일 비활성 트리거를 우회합니다.

다음과 같은 경우에는 Android 13에 도입된 대부분의 배터리 수명 보존 조치로부터 앱이 면제되나, 시스템이 오랫동안 실행되는 포그라운드 서비스에 관한 알림을 보내는 것은 방지되지 않습니다.

테스트

이어지는 섹션에서는 Android 13에 도입된 배터리 수명 보존 조치가 앱에 영향을 주는 방식을 테스트할 몇 가지 방법을 보여줍니다.

백그라운드 사용 방지

앱이 백그라운드에서 실행되는 것을 방지하려면 터미널 창에서 다음 명령어를 실행합니다.

adb shell cmd appops set PACKAGE_NAME RUN_ANY_IN_BACKGROUND deny

앱을 제한됨 버킷에 배치

시스템이 앱을 제한됨 버킷에 배치하도록 하려면 터미널 창에서 다음 명령어를 실행합니다.

adb shell am set-standby-bucket PACKAGE_NAME restricted