안정적인 전원 공급 장치에 대한 접근이 불확실할 수 있으며, 정전으로 인해 예정된 충전이 중단될 수 있습니다. 배터리 사용을 벤치마킹하고, wake lock을 피하고, 작업을 예약하고, 센서 요청을 모니터링하는 방식으로 사용자의 배터리가 불필요하게 소모되지 않도록 하세요.
배터리 소모 줄이기
앱이 필요할 때만 배터리 전력을 소모하고, 필요한 것보다 더 많은 전력을 소모하지 않도록 할 수 있는 몇 가지 단계가 있습니다.
- 앱이 백그라운드에서 작동 중이거나 기기가 배터리 전원에서 실행되는 경우 활동을 최소화해야 합니다.
- 센서(예: GPS 센서)는 배터리를 대량 소모시킬 수 있습니다. 문제를 예방하려면
FusedLocationProvider
API를 사용하여 기본 위치 기술을 관리합니다. 이 API는 단순하기 때문에 높은 수준으로 요구사항(높은 정확성이나 저전력 등)을 지정할 수 있습니다. 이 API는 또한 위치를 캐시하고 앱에서 요청을 일괄 처리하여 기기의 배터리 전력 사용을 최적화해 줍니다. 위치를 요청하는 이상적인 방법에 관한 자세한 내용은 마지막으로 알려진 위치 구하기 교육 가이드를 참고하세요. - wake lock이란 기기가 백그라운드 활동을 실행할 수 있도록 켜진 상태를 유지하는 메커니즘입니다. wake lock을 사용하면 기기가 저전력 상태로 진입하지 못하므로 이 기능의 사용을 피하세요.
- 기기 절전 모드 해제 횟수를 줄이려면 네트워크 활동을 일괄 처리합니다. 일괄 처리에 관한 자세한 내용은 Android 교육 과정에서 효율적 네트워크 액세스를 위해 다운로드 최적화를 참고하세요.
- WorkManager는 작업을 예약하고 시스템에서 일괄 작업을 할 수 있도록 합니다. 이렇게 하면 네트워크 연결 대기, 기기 충전 상태, 재시도, 백오프와 같은 공통 패턴의 구현이 크게 간소화됩니다. 기기가 충전 중이고 무제한 네트워크에 연결되어 있을 때 WorkManager를 사용하여 필수적이지 않은 백그라운드 활동을 실행합니다.
- 네트워크 활동이 어떻게 배터리를 소모할 수 있는지와 이 문제를 해결하는 방법에 관한 자세한 내용은 네트워크 배터리 소모 줄이기를 참고하세요.
배터리 사용 벤치마킹
통제된 환경에서 앱의 배터리 사용을 벤치마킹하면 앱에서 배터리 소모가 많은 작업을 파악할 수 있습니다. 앱의 배터리 사용을 벤치마킹하여 효율성을 측정하고 시간에 따른 변화를 추적하는 것이 좋습니다. Batterystats는 앱의 배터리 데이터를 수집하고 Battery Historian은 이 데이터를 HTML 시각화로 변환합니다.
배터리 사용량 절감에 관한 자세한 내용은 Android 교육 과정에서 배터리 수명 최적화를 참고하세요.