Android Push 절전모드 상태에서 Push 테스트 방법

Yong Han
3 min readJan 29, 2020

프로젝트 진행중 절전모드 상태에서 Push 수신 여부를 확인하기 위해서 아래의 명령처럼 단말이 절전모드로 진입하고 앱이 유휴모드상태에 있도록 설정을 하였다.

adb shell dumpsys battery unplug // 디바이스 충전이 안되도록adb shell settings put global low_power 1 // 저전력 모드 설정adb shell am set-standby-bucket <package name> rare // bucket 설정LCD OFFadb shell dumpsys deviceidle step // IDLE 상태 확인adb shell am set-inactive <package name> true ( 앱을 유휴 상태로 설정 )adb shell am get-inactive <package name> ( 상태 확인 )10 ~ 60 초 경과후 알림 발송.

그래서 Push를 전송하니 즉각 반응을 하지 못하였다.

다시 단말 LCD 를 켜니 그때 Push가 수신이 되었다.

Android 버전이 올라갈수록 전원 관리에 대해서 꽤나 신경을 쓰고 있다. 그래서 Background 상태에서 더이상 많은 일을 할 수가 없다. Push 도 못받을 수 있다.

앱이 절전모드 예외에 들어있지 않은 경우, 해당 앱이 절전모드에 있다면, Push를 수신하지 못할 수도 있다. 그런데, Push 의 priority 의 값이 high 라면 깨어나서 바로 반응( Notification 알림)할 수도 있다. ( 참고: Notification Type Message 는 priority가 High 이고, Data Only Message 는 Priority 가 Normal 이다. )

그런다고 priority를 high 를 계속 보낸다고 계속 깨어나는 것은 아니다. Android 8부터 버킷이라고 부르는 상태가 있는데, 앱이 어떤 버킷에 있냐에 따라서 달라질 수가 있다.

버킷은 active | working_set | frequent | rare 상태가 있는데

  • active : 현재 사용중인 앱
    제한 없음
  • workging_set : 앱이 자주 실행 되지만 현재 활성화상태가 아님
    제한 없음
  • frequent : 정기적으로 사용함.
    10회 / 일 ( 하루에 10회까지만 깨어나서 반응함. 그 외에는 normal priority처럼 동작함. normal priority라면 지연 반응함. )
  • rare : 앱이 자주 사용되지 않음
    5회 / 일 (하루에 5회까지만 깨어나서 반응함. 그 외엔느 normal priority 처럼 동작함 )

참고 사이트:
https://developer.android.com/about/versions/pie/power

--

--