본문 바로가기
OS/Andorid

Android M(마시멜로 - 6.0) 대응

by 화뉘 2016. 2. 3.

 

해당 내용은 기본적으로 ADB가 세팅되어 있다고 가정한 상태에서 진행한다. 

잠자기 모드(Doze mode)

  • 스마트폰을 사용하지 않고 있을 때를 자동으로 인지해 절전 도므로 전환되는 기능
  • 안드로이드 마시멜로(6.0)에 추가된 도즈(Doze)모드는 사용자가 오랫동안 사용하지 않는다고 판단되면, Network, Background Service Stop(JobScheudler, AlarmManager), WakeLock ignore 등의 정책을 적용하여 적극적으로 배터리 효율을 최적화 하는 모드이다.
  • Doze Mode 진입 조건은 아래와 같다.
    • 충전 중이 아닌 상태
    • 화면이 꺼진 상태
    • 1~2시간정도 움직임이 없는 상태
  • ADB를 이용하면 1~2시간의 대기시간 없이, Doze Mode를 만들 수 있다.
    • IDLE일 때가 Doze Mode이며, IDLE_MAINTENANCE는 Doze Mode 중간 중간 시스템에서 잠시 깨어나는 상태이다.

Doze mode 만드는 법

C:\Users\Joe>adb shell dumpsys battery unplug

C:\Users\Joe>adb shell dumpsys deviceidle step
Stepped to: IDLE_PENDING

C:\Users\Joe>adb shell dumpsys deviceidle step
Stepped to: SENSING

C:\Users\Joe>adb shell dumpsys deviceidle step
Stepped to: LOCATING

C:\Users\Joe>adb shell dumpsys deviceidle step
Stepped to: IDLE

C:\Users\Joe>adb shell dumpsys deviceidle step
Stepped to: IDLE_MAINTENANCE

C:\Users\Joe>adb shell dumpsys deviceidle step
Stepped to: IDLE

C:\Users\Joe>adb shell dumpsys deviceidle step
Stepped to: IDLE_MAINTENANCE

Doze mode 해제하는 법

  • Active가 되면, Doze mode가 해제된 상태이다.

C:\Users\Yogiyo>adb shell dumpsys battery reset

C:\Users\Yogiyo>adb shell dumpsys deviceidle step
Stepped to: ACTIVE

앱 대기 모드(App Stand-by mode)

  • 자주 이용하지 않는 앱을 유휴 앱 상태로 설정해 사용 빈도가 더 높은 앱을 위해 배터리를 절약해주는 기능

Stand-by mode 만드는 법

C:\Users\Yogiyo>adb shell am set-inactive com.fineapp.yogiyo true

Stand-by mode 진입 확인하는 법

C:\Users\Yogiyo>adb shell am get-inactive com.fineapp.yogiyo
Idle=true //active stand-by mode


C:\Users\Yogiyo>adb shell am get-inactive com.fineapp.yogiyo
Idle=false //inactive stand-by mode

Stand-by mode 해제하는 법

C:\Users\Yogiyo>adb shell am set-inactive com.fineapp.yogiyo false

On Yogiyo App 

Doze mode

  • Doze mode 대응을 위해 다음과 같은 상황에서 Push Notification을 발송한다. 이 때 Push는 App boy를 이용한다.
    • App Process가 실행되지 않은 상태
    • 화면이 꺼진 상태
    • Step이 ACTIVE와 IDLE 상태일 경우 비교

Active IDLE
화면이 꺼져있더라도 Push Notification Receive

화면이 꺼진 상태에선 Push Notification Not Receive,

화면을 켰을 경우, Push Notification Receive

App Stand-by mode

  • App Standby mode 대응을 위해 다음과 같은 상황에서 Push Notification을 발송한다. 이 때 Push는 App boy를 이용한다.
    • App Process가 실행되지 않은 상태
    • 화면이 꺼진 상태
    • Idle이 true와 false 상태일 경우 비교

idle=false idle=true
화면이 꺼져있더라도 Push Notification Receive

화면이 꺼진 상태에선 Push Notification Not Receive,

화면을 켰을 경우, Push Notification Not Receive,

앱 실행 시켰을 경우, Push Notification Receive


댓글