일반 네트워크 사용 최적화

일반적으로 네트워크 트래픽의 양을 낮추면 배터리 소모를 줄일 수 있습니다. 이전 강의의 배터리 최적화 기법 외에도 이러한 범용 기법을 알아보고 앱에 적용할 수 있는지 확인해야 합니다.

이 강의에서는 네트워크 트래픽을 줄여 결과적으로 앱으로 인한 배터리 소모를 줄이는 기법에 관해 간략히 설명하겠습니다.

데이터 압축

네트워크 연결을 통해 보내고 받는 데이터의 양을 줄이면 연결 시간도 줄어 배터리가 절약됩니다. 방법은 다음과 같습니다.

  • GZIP 압축과 같은 압축 기법을 사용하여 데이터를 압축합니다.
  • 간결한 데이터 프로토콜을 사용합니다. JSON 및 XML은 가독성 및 언어 유연성이 좋지만 대역폭이 정체되는 형식이고 Android 플랫폼에서 직렬화 비용이 많이 듭니다. 프로토콜 버퍼FlatBuffers와 같은 바이너리 직렬화 형식은 인코딩 및 디코딩 시간이 단축될 뿐 아니라 전송되는 패킷 크기도 더 작습니다. 애플리케이션에서 정기적으로 많은 직렬화 데이터를 전송한다면 이 형식은 디코딩 시간 및 전송 크기 측면에서 이점으로 작용할 수 있습니다.

로컬에서 파일 캐시

앱은 캐싱을 통해 중복 데이터 다운로드를 방지할 수 있습니다. 원본 크기의 이미지와 같은 주문형 다운로드를 비롯한 정적 리소스는 항상 캐시하되 최대한 오래 캐시하세요.

예를 들어 사용자가 시작한 네트워크 요청의 데이터를 화면에 기본 콘텐츠로 표시하는 네트워크 연결 앱이라면 이 기법을 고려해야 합니다. 사용자가 이 화면을 처음 열면 앱에 스플래시 화면이 표시됩니다. 처음에 후속 로드는 마지막 네트워크 요청에서 캐시된 데이터로 로드됩니다. 네트워크 요청이 완료되면 화면이 새 데이터로 다시 로드됩니다.

캐싱에 관해 알아 보려면 동영상을 시청하세요. 앱에서 캐싱을 구현하려면 로컬에서 파일 캐시를 참조하세요.

미리 가져오기 캐시 크기 최적화

로컬 파일 시스템 크기 및 현재 네트워크 연결에 따라 미리 가져오기 캐시 크기를 최적화합니다. 연결 관리자를 사용하여 어떤 네트워크 유형(Wi-Fi, LTE, HSPAP, EDGE, GPRS)이 활성 상태인지 확인하고 미리 가져오기 루틴을 수정하여 배터리 로드를 최소화할 수 있습니다.

자세한 내용은 연결 유형에 따라 다운로드 패턴 수정 사용을 참조하세요.