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

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

배터리 소모 줄이기

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

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

배터리 사용 벤치마킹

통제된 환경에서 앱의 배터리 사용을 벤치마킹하면 앱에서 배터리 소모가 많은 작업을 파악할 수 있습니다. 앱의 배터리 사용을 벤치마킹하여 효율성을 측정하고 시간에 따른 변화를 추적하는 것이 좋습니다. Batterystats는 앱의 배터리 데이터를 수집하고 Battery Historian은 이 데이터를 HTML 시각화로 변환합니다.

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

콘텐츠 제공자는 구조화된 데이터 세트의 액세스를 관리합니다. 데이터를 캡슐화하고, 데이터 보안을 정의하는 데 필요한 메커니즘을 제공합니다. 콘텐츠 제공자는 한 프로세스의 데이터를 다른 프로세스에서 실행 중인 코드에 연결하는 표준 인터페이스입니다...

ConnectivityManager 는 기기 기능 및 데이터 전송 옵션을 비롯한 다양한 조건에 따라 기기가 네트워크에 연결되도록 요청할 수 있는 API를 제공합니다. 콜백 구현은 기기의 연결 상태와 현재 연결된 네트워크의 기능에 관한 정보를 앱에 제공합니다. 이 API를 사용하면 기기가 현재 앱의 요구사항을 충족하는 네트워크에 연결되어 있는지 확인할 수 있습니다. Wi-Fi 또는 모바일 데이터 연결과 같은 네트워크의 전송 유형과 현재 연결된