The Android Developer Challenge is back! Submit your idea before December 2.

수십억 사용자를 위한 배터리 소비

안정적인 전원 공급 장치에 대한 접근이 불확실할 수 있으며, 정전으로 인해 예정된 충전이 중단될 수 있습니다. 배터리 사용을 벤치마킹하고, 가동 잠금을 피하고, 작업을 예약하고, 센서 요청을 모니터링하는 방식으로 사용자의 배터리가 불필요하게 소모되지 않도록 하세요.

배터리 소모 줄이기

앱이 필요할 때만 배터리 전력을 소모하고, 필요한 것보다 더 많은 전력을 소모하지 않도록 할 수 있는 몇 가지 단계가 있습니다.

  • 앱이 백그라운드에서 작동 중이거나 기기가 배터리 전원에서 실행되는 경우, 작업을 최소화해야 합니다.
  • 센서(예: GPS 센서)는 배터리를 대량 소모시킬 수 있습니다. 문제를 예방하려면 FusedLocationProvider API를 사용하여 기본 위치 기술을 관리합니다. 이 API는 단순하기 때문에 높은 수준으로 요구사항(높은 정확도나 저전력 등)을 지정할 수 있습니다. 이 API는 또한 위치를 캐시에 저장하고 앱에서 요청을 일괄 처리하여 기기의 배터리 전력 사용을 최적화해 줍니다. 위치를 요청하는 이상적인 방법에 대한 자세한 내용은, 마지막으로 알려진 위치 구하기 교육 가이드를 참조하세요.
  • Wake lock이란 기기가 백그라운드 작업을 수행할 수 있도록 켜진 상태를 유지하는 메커니즘입니다. Wake locks을 사용하면 기기가 저전력 상태로 진입하지 못하므로, 이 기능의 사용을 피하세요.
  • 기기 가동 횟수를 줄이려면, 네트워크 작업을 일괄 처리합니다. 일괄 처리에 대한 자세한 내용은, Android 교육 과정에서 효율적 네트워크 액세스를 위해 다운로드 최적화를 참조하세요.
  • GcmNetworkManager는 작업을 예약하고, Google Play 서비스가 시스템에서 일괄 처리 작업을 수행할 수 있게 합니다. 이 기능은 네트워크 연결 대기, 기기 충전 상태, 재시도, 백오프와 같은 공통 패턴의 구현을 매우 단순화합니다. 기기가 충전 중이고 고정 요금제 네트워크에 연결된 경우, 필수적이지 않은 백그라운드 작업을 수행하려면 GcmNetworkManager를 사용합니다.
  • 네트워크 액티비티가 어떻게 배터리를 소모할 수 있는지와 이 문제를 해결하는 방법에 대한 자세한 내용은, 네트워크 배터리 소모 줄이기를 참조하세요.

배터리 사용 벤치마킹

통제된 환경에서 앱의 배터리 사용량을 벤치마킹하면, 앱에서 배터리가 많이 소모되는 작업을 알아낼 수 있습니다. 앱의 배터리 사용량을 벤치마킹하는 좋은 방법은 효율성을 측정하고 시간에 따른 변화를 추적하는 것입니다. Batterystats는 앱에 관한 배터리 데이터를 수집하고, Battery Historian은 이 데이터를 HTML 형식으로 변환합니다.

배터리 사용량 절감에 대한 자세한 내용은, Android 교육 과정에서 배터리 수명 최적화를 참조하세요.