티스토리 뷰

반응형

Android6.0 (API level 23) 부터는 디바이스의 효율적인 배터리 사용을 위해 Doze (잠자기 모드), App Standby(앱대기모드) 가 존재함.

 

Doze : 사용자가 디바이스에 전원 공급 장치를 연결하지 않은 상태에서, 장시간 디바이스를 이용하지 않은 경우에 대하여, 백그라운드 CPU 작업, 네트워크 활동을 지연시킴. 

 

App Standby : 사용자가 디바이스에 전원 공급 장치를 연결하지 않은 상태에서, 사용자가 특정 앱에 대하여 장시간 상호작용이 없는 경우, 해당 앱에 대하여, 백그라운드 CPU 작업, 네트워크 활동을 지연시킴.

디바이스는 중간 중간 maintenance window(유지보수기간)을 갖음. 그러나 사용자가 장시간 디바이스를 사용하지 않을 경우 maintenance window 사이의 Doze 기간이 길어짐.

* maintenance window : 시스템은 앱에서 지연된 활동을 완료할 수 있도록 주기적으로 잠깐 동안 잠자기 모드를 종료합니다. 이러한 유지보수 기간 동안 시스템은 대기 중인 동기화, 작업 및 알람을 모두 실행하고 앱이 네트워크에 액세스할 수 있도록 허용합니다.

 

Doze 모드 일때 제한사항 

- 네트워크 액세스 정지

- wake lock 무시 ( <- 이것때문에 AlarmManager에서 UTF-Wakeup 으로 설정해도 안울렸음.......;;; ) 

- 표준 AlarmManager 경보(setExact() 및 setWindow() 포함)가 유지보수 기간으로 지연됨. 

=>Doze 모드 일때도 경보를 사용해야 한다면,,

setAndAllowWhileIdle() / setExactAndAllowWhileIdle()을 사용 ( 해당 앱에 대해서만 Doze 모드를 해제)

setAlarmClock()을 사용 (시스템에서 Doze 모드를 해제)

 

 

https://developer.android.com/training/monitoring-device-state/doze-standby#testing_doze

불러오는 중입니다...

 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함