Google은 흑인 공동체를 위한 인종 간 평등을 진전시키기 위해 노력하고 있습니다. Google에서 어떤 노력을 하고 있는지 확인하세요.

앱에서 시작한 네트워크 사용 최적화

앱에서 시작하는 네트워크 트래픽은 필요한 네트워크 리소스를 계획하고 액세스 일정을 설정할 수 있으므로 일반적으로 상당히 높은 수준까지 최적화할 수 있습니다. 일정을 신중히 설정하면 기기의 무선 기능에 상당히 긴 유휴 기간이 생기므로 전력을 절약할 수 있습니다. 네트워크 액세스 일정을 설정하는 데 도움이 되는 몇 가지 Android API가 있으며 이 API에는 다른 앱의 네트워크 액세스를 조정하여 배터리 성능을 더욱 최적화할 수 있는 기능이 포함되어 있습니다.

이 강의에서는 앱에서 시작한 네트워크 트래픽을 최적화하는 기법을 적용하여 배터리 소비를 줄이는 방법을 설명합니다.

네트워크 요청 일괄 처리 및 예약

휴대기기에서는 무선 기능을 사용 설정하고, 연결하고, 무선 기능을 켜진 상태로 유지하는 과정에서 많은 전력을 사용하게 됩니다. 따라서 개별 요청을 그때그때 처리하면 전력이 많이 소모되고 배터리 수명이 단축될 수 있습니다. 더 효율적인 방법은 일련의 네트워크 요청을 대기열에 넣어 함께 처리하는 것입니다. 이를 통해 시스템에서는 무선 기능을 사용 설정할 때 드는 전력 비용을 한 번 지불하는 것으로도 앱에서 요청한 모든 데이터를 받을 수 있습니다.

앱 데이터 요청을 대기열에 넣어 처리하기 위해 네트워크 액세스 스케줄러 API를 사용하면 앱의 전력 효율성을 크게 높일 수 있습니다. 스케줄러는 시스템이 처리할 요청을 그룹화하여 배터리 전력을 절약합니다. 또한 다른 요청으로 인해 무선 통신 기능 절전 모드가 해제될 때까지 요청을 지연시키거나 기기가 충전될 때까지 기다림으로써 효율성을 더욱 향상할 수도 있습니다. 스케줄러는 기기의 모든 앱에 걸쳐 시스템 전반의 네트워크 요청을 연기하고 일괄 처리합니다. 이로써 개별 앱에서 할 수 있는 것보다 나은 최적화 이점을 제공합니다.

시스템이 연결 상태를 확인하도록 허용

가장 심각하고 예기치 않은 배터리 소모 원인 중 하나는 사용자가 기지국이나 액세스 포인트의 도달 범위를 벗어나 이동하는 것입니다. 이 상황에서 사용자는 일반적으로 기기를 사용하지 않음에도 기기는 뜨거워지고 배터리가 부족하거나 소진되게 됩니다.

이 시나리오에서는 앱이 이동통신망 신호를 검색하기 위해 정기적인 간격으로 무선 통신 절전 모드를 반복하여 해제하는 백그라운드 프로세스를 실행 중이지만 아무 신호도 찾지 못하는 것이 문제입니다. 이동통신망 신호 검색은 전력 소모가 가장 많은 작업 중 하나입니다.

앱에서 사용자가 이러한 문제를 겪지 않게 하는 방법은 연결 상태를 확인할 때 배터리 효율이 높은 방법을 사용하는 것입니다. 앱에서 시작한 네트워크 요청이라면 WorkManager를 사용하여 작업을 예약하되 네트워크를 사용할 수 있을 때 작업이 실행되는 제약 조건이 적용되도록 하세요.