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

사용자가 시작한 네트워크 사용 최적화

사용자 요청을 빠르게 처리하면 특히 네트워크 액세스가 필요한 사용자 작업과 관련해 만족스러운 사용자 환경을 보장할 수 있습니다. 사용자 작업의 직접적인 결과인 네트워크 사용을 최적화할 때 최대한 빨리 응답하려면 절전보다 짧은 지연 시간에 더 높은 우선순위를 적용해야 합니다. 앱에 최적의 네트워크 트래픽 프로필을 확보하면서 사용자가 신속하게 응답을 받을 수 있게 하는 것은 다소 어려운 일일 수 있습니다.

이 강의에서는 사용자가 시작하는 작업에 맞게 네트워크 사용을 최적화하고 배터리 소모를 줄이는 방법을 설명합니다.

네트워크 데이터 미리 가져오기

데이터를 미리 가져오는 것은 앱에서 실행하는 독립적인 데이터 전송 세션의 수를 효과적으로 줄이는 방법입니다. 사용자가 앱에서 작업을 실행하면 앱에서는 미리 가져오기를 통해 다음에 이어질 일련의 사용자 작업에 가장 필요할 데이터를 예상하고 이 데이터를 한꺼번에 가져옵니다. 다음 두 가지 이유로 배터리 전력 소비가 줄어듭니다.

  • 사용자의 작업으로 무선 통신 기능이 이미 켜져 있을 때만 앱이 데이터를 미리 가져오므로 무선 통신 기능을 켜는 오버헤드가 발생하지 않기 때문입니다.
  • 앱은 예상되는 사용자 작업에 관한 데이터를 미리 가져옵니다. 이렇게 하지 않으면 작업마다 별도로 요청해야 하므로 그때마다 무선 통신이 켜집니다.

도움말: 앱이 미리 가져오기의 이점을 활용할 수 있는지 알아보려면 앱의 네트워크 트래픽을 검토하고 일련의 특정 사용자 작업이 작업 진행 과정에서 거의 예외 없이 여러 차례 네트워크 요청을 하는 상황을 찾으세요. 예를 들어 사용자가 기사 콘텐츠를 보면서 점진적으로 다운로드하는 앱에서는 사용자가 보는 것으로 확인된 카테고리의 기사를 한 건 이상 미리 가져올 수 있습니다.

효과적인 미리 가져오기에 관한 동영상을 통해 미리 가져오기의 의미, 사용해야 할 상황, 미리 가져올 데이터의 양을 알아보세요. 자세한 내용은 효율적인 네트워크 액세스를 위한 다운로드 최적화를 참조하세요.

연결 확인 또는 변경사항 수신 대기

셀 신호 검색은 휴대기기에서 전력을 가장 많이 소모하는 작업 중 하나입니다. 사용자가 시작한 네트워크 요청을 전송하기 전에 앱에서는 항상 연결 상태를 확인해야 합니다. 예약 서비스를 사용한다면 스케줄러에서 이 작업을 자동으로 실행합니다.

  • 활동의 특정 버튼만 네트워크 연결을 사용한다면 연결 변경 모니터링의 지침에 따라 네트워크 요청을 전송하기 전에 연결 관리자를 사용하여 네트워크 연결을 확인하세요. 네트워크가 없으면 무선 통신 기능이 검색을 실행하지 않아도 되므로 앱의 배터리 소비가 줄어듭니다.
  • 네트워크 액세스 없이는 전체 활동의 사용자 인터페이스가 작동하지 않는다면 필요 시 Broadcast Receiver 조작 기법을 사용하세요. 이 기법에서는 활동이 포그라운드 상태일 때는 연결 변경사항을 수신 대기하고 연결이 없을 때는 네트워크 요청이 진행되지 않게 합니다. 즉 앱에서 연결이 끊어진 것을 감지하면 연결 변경 수신기를 제외한 모든 수신기를 사용 중지합니다. 이러한 예로 활동을 뉴스 스니펫 전체 화면 보기로 표시하고 미리 가져오기를 실행하지 않는 뉴스 앱을 들 수 있습니다. 사용자가 탭하는 모든 스니펫은 네트워크 연결이 필요합니다.

사용자가 시작한 트래픽 관련 권장사항은 먼저 연결 관리자를 사용하여 연결되어 있는지 확인하고, 연결되어 있지 않으면 연결 시점에 네트워크 요청을 예약하는 것입니다. 스케줄러에서는 배터리 절약을 위해 지수 백오프와 같은 기법을 사용합니다. 이 기법에서는 연결 시도가 실패할 때마다 스케줄러가 지연 시간을 두 배로 늘린 다음 다시 시도합니다.

참고: 앱에서 시작한 트래픽의 연결을 확인하려면 앱에서 시작한 네트워크 사용 최적화를 참조하세요.

연결 수 줄이기

일반적으로 새 네트워크를 시작하는 것보다 기존 네트워크 연결을 재사용하는 것이 더 효율적입니다. 연결을 재사용하면 네트워크에서 혼잡 및 관련 네트워크 데이터 문제에 더 지능적으로 대응할 수 있습니다. 앱에서 사용하는 연결의 수를 줄이는 방법에 관한 자세한 내용은 효율적인 네트워크 액세스를 위한 다운로드 최적화를 참조하세요.