부분적인 wake lock은 시스템 시간 초과가 발생하거나 사용자가 전원 버튼을 눌러 기기의 화면이 꺼진 후에 개발자가 CPU를 계속 실행할 수 있게 하는 PowerManager API의 메커니즘입니다. 앱이
부분적인 wake lock을 acquire()를 호출하여 PARTIAL_WAKE_LOCK
플래그와 함께 획득하거나 wake lock을 획득하는 다른 API를 사용하여 획득합니다.
부분적인 wake lock을 과도하게 사용하면 기기가 저전력 상태로 전환되지 않도록 하기 때문에 기기의 배터리를 소모합니다. 부분적인 wake lock은 필요할 때만 사용하고 더 이상 필요하지 않을 때 즉시 해제해야 합니다.
앱에서 부분적인 wake lock을 과도하게 사용하는 경우 이 페이지의 안내를 사용하여 문제를 진단하고 해결할 수 있습니다.
문제 감지
Android vitals를 사용하면 앱의 부분적인 wake lock 사용이 과도한 시점을 파악할 수 있습니다.
Android vitals
Android vitals를 사용하면 앱의 부분적인 wake lock 사용이 과도한 경우 Play Console을 통해 알림을 보냄으로써 앱 성능을 개선할 수 있습니다.
Android vitals는 24시간 동안 합산된 모든 부분적인 wake lock이 2시간 이상 실행되는 경우 부분적인 wake lock 사용을 과도한 것으로 보고합니다. Android vitals는 앱이 백그라운드에 있거나 포그라운드 서비스를 실행할 때 wake lock이 유지되는 경우에만 wake lock 기간을 추적합니다. 현재 Android vitals는 오디오, 위치, 및 JobScheduler 사용자 시작 API 에서 생성된 wake lock을 wake lock 계산에서 제외합니다.
Android vitals 과도한 부분적인 wake lock 대시보드는 앱과 연결된 제외되지 않은 wake lock 이름의 분석을 제공하여 영향을 받는 세션과 기간을 보여줍니다.
28일 동안 모든 기기에서 앱 세션의 5% 이상에서 과도한 부분적인 wake lock이 발생하면 Play에서 앱의 검색 가능성에 영향을 미칠 수 있습니다.
앱에 과도한 부분적인 wake lock이 있다는 것을 알았다면 다음 단계는 문제를 해결하는 것입니다.
문제 해결
wake lock은 기기 배터리를 소모할 수 있으므로 대안이 있는 경우 wake lock을 사용해서는 안 됩니다. 기기를 켜진 상태로 유지하는 올바른 API 선택 문서를 사용하면 앱에 가장 적합한 솔루션을 찾을 수 있습니다.
wake lock을 사용해야 하는 경우 wake lock 권장사항 을 따라 wake lock이 기기 효율성에 해를 끼치지 않도록 하세요. 특히 획득한 모든 기기가 해제되고 최대한 빨리 잠금이 해제되는지 확인하세요.
wake lock을 명시적으로 획득하지 않더라도 앱에서 wake lock을 사용할 수 있습니다. 알 수 없는 앱에 wake lock이 할당된 경우 다른 API에서 생성된 wake lock을 식별하면 wake lock을 생성했을 수 있는 API를 식별하는 데 도움이 될 수 있습니다.
코드의 문제를 해결한 후 로컬 wake lock 디버깅 도구를 사용하여 수정사항을 확인할 수 있습니다.
참고 항목
추천 서비스
- 참고: JavaScript가 사용 중지되어 있으면 링크 텍스트가 표시됩니다.
- 정지된 프레임
- 지속적 통합에서 벤치마크 실행
- Macrobenchmark 없이 기준 프로필 생성 및 측정