이 문서에서는 Navigation SDK를 사용하여 빌드하는 모바일 내비게이션 앱에서 전력 소비를 최적화하는 권장사항을 설명합니다. 동시에 이러한 방법을 사용할 때 고려해야 할 절충안을 설명합니다. 특히 이 문서에서는 다음을 다룹니다.
- 전력 소비가 높은 소스 를 가장 높은 것부터 가장 낮은 것까지 순위 지정
- 프레임 속도부터 시작하여 중요도 순으로 전력 소비를 최적화하는 전략
- 탐색 중에 기기 사용을 관리하는 방법을 앱 사용자에게 교육하기 위한 최종 사용자 전략
내비게이션 앱을 최적화해야 하는 이유
앱 사용자는 상황에 따라 내비게이션 안내를 장시간 실행할 수 있습니다. 예를 들어 운전자와 배송 기사는 익숙하지 않은 지역에서 할당을 완료하면서 장시간 근무할 수 있습니다. 이러한 경우 앱 내 세부 경로 안내에 크게 의존합니다. 이로 인해 다음과 같은 일반적인 문제가 발생합니다.
- 배터리 소모 및 충전기 사용 가능 여부. 내비게이션을 많이 사용하면 기기 배터리가 예상보다 빨리 소모될 수 있습니다. 많은 사용자가 차량에서 기기를 충전하여 이 문제를 해결할 수 있지만 이륜차 운전자는 해결할 수 없습니다.
- 발열로 인한 기기 조절. 기기를 계속 충전하는 사용자도 문제를 겪을 수 있습니다. 장시간 동안 전력 소비가 많으면 기기가 과열되어 열 조절이 발생하고 후속 성능 저하가 발생할 수 있습니다.
세부 경로 내비게이션 앱은 화면, GPS, 휴대폰 기지국과의 무선 통신과 같은 전력 소모가 많은 기능을 사용하므로 모바일 앱의 전력 사용을 최적화하는 것이 좋습니다. 또한 성능과 전력 소비 최적화 간에 적절한 절충안을 마련할 수 있도록 타겟층의 전력 사용 요구사항을 고려해야 합니다.
가장 많은 전력을 소비하는 것은 무엇인가요?
이 섹션에서는 전력 소비가 많은 앱 내 활동을 다음 두 가지 카테고리로 나눕니다.
- 화면 렌더링
- 위치 업데이트
화면 렌더링
화면 렌더링은 일반적으로 모바일 내비게이션 앱에서 가장 많은 전력 소비를 유발합니다. 기기가 화면에 지도 및 기타 UI 요소를 그릴 때마다 GPU 및 CPU 처리에 의존합니다. 마찬가지로 사용자가 화면을 장시간 켜 두면 더 많은 전력이 사용됩니다.
어느 정도까지는 특히 앱을 여러 시간 동안 계속 사용하는 경우 탐색을 위해 표시되는 지도에 의존하는 운전자 또는 라이더의 전력 소비가 많을 것으로 예상할 수 있습니다. 이 시나리오에서 앱은 지도가 실시간으로 업데이트되므로 화면에서 더 높은 렌더링 속도를 실행합니다. 경우에 따라 특히 사용자가 멈추지 않고 위치 간에 운전할 때 화면이 거의 계속 다시 그려질 수 있습니다.
위치 업데이트
화면 렌더링 외에도 두 가지 다른 내비게이션 활동이 기기 전력을 소비합니다.
- 무선 휴대폰 기지국 및 GPS 사용
- 예상 도착 시간 제공 또는 차량 위치 보고와 같은 위치 업데이트 및 공유
GPS와 휴대폰 무선 통신은 모두 전력 소모가 많은 시작 작업에 의존합니다. GPS는 위성을 찾아야 하고 휴대폰 무선은 기지국과 협상하고 연결을 설정해야 합니다. 이러한 이유로 휴대폰 무선이 시작 비용을 최소화하기 위해 20~30초 동안 활성 상태로 유지되더라도 내비게이션 중에 기본적으로 계속 실행됩니다. 운영체제는 앱에서 쉽게 구성할 수 없는 이러한 설정을 제어합니다.
위치 업데이트의 경우 전력 사용량은 예측할 수 없는 요인에 따라 다릅니다. 예를 들어 기기가 기지국을 전환하지 않도록 내비게이션을 계속하는 데 필요한 최소 신호를 사용하므로 기기와 휴대폰 기지국 간의 거리에 따라 전력 사용량이 결정됩니다. 따라서 연결 상태가 좋지 않은 지역에서 내비게이션하는 기기는 기지국에 가까운 기기보다 더 많은 전력을 사용합니다. 또한 일부 앱은 위치 업데이트를 중앙 차량 관리 서비스와 공유할 수 있으므로 이를 위해 서버와 통신해야 합니다.
앱의 전력 사용 최적화
내비게이션 앱에서 전력 사용을 최적화하는 데 따르는 문제는 이러한 앱이 전력 소모가 많은 리소스에 크게 의존하므로 화면 사용 제한과 같은 절충안을 마련하지 않고 영향을 완화할 수 있는 옵션이 제한된다는 것입니다. 이 섹션에서는 앱을 최적화할 때 가장 큰 영향부터 가장 작은 영향까지 순서대로 취할 수 있는 접근 방식 목록을 제공합니다.
프레임 속도 변경
화면은 프레임 속도라고 하는 빈도로 표시되는 내용을 업데이트합니다. 프레임 속도는 일반적으로 초당 프레임 수 (FPS)로 측정됩니다. 화면 렌더링은 많은 CPU 또는 GPU를 사용하므로 프레임 속도를 줄여 전력 소비를 절약할 수 있습니다.
프레임 속도를 줄일 때의 절충안은 특히 지도가 자주 업데이트되는 경우 화면 렌더링이 덜 부드럽게 보일 수 있다는 것입니다. 지도를 확대할 때, 사용자가 고속으로 이동할 때 또는 속도나 방향을 크게 변경할 때 가장 분명할 수 있습니다.
iOS 기기에서 iOS용 Maps SDK는 preferredFrameRate 속성을 노출하여 프레임 속도를 제어합니다. 아래 표는 조정할 수 있는GMSFrameRate 열거자 값을 보여줍니다.
|
최소 프레임 속도를 사용하여 배터리 사용량을 절약합니다. |
|
중간 프레임 속도를 사용하여 더 부드러운 렌더링을 제공하고 처리 주기를 절약합니다. |
|
기기의 최대 프레임 속도를 사용합니다. 저가형 기기의 경우 30FPS이고 고급 기기의 경우 60FPS입니다. |
자세한 내용은 iOS용 Google Navigation SDK 문서의 GMSFrameRate를 참고하세요.
지도 없이 탐색
최종 사용자가 기기 화면 밝기를 설정하는 방법이나 화면을 켜 두는 시간을 제어할 수는 없지만 지도 없이 내비게이션 안내 옵션을 제공할 수 있습니다. 이렇게 하면 최종 사용자가 전력을 절약하기 위해 이 옵션을 선택할 수 있습니다. 예를 들어 운전자가 정기적으로 동일한 지역에서 근무하는 경우 지도 기반 안내가 자주 필요하지 않을 수 있습니다. 지도 없는 내비게이션은 Navigation SDK에서 목적지를 설정하고 안내를 시작하되 지도를 표시하지 않음으로써 사용 설정할 수 있습니다.
코드 줄을 추가하여 GMSMapView를 숨깁니다.
mapView.isHidden = true
Navigation SDK는 계속해서 도로에 스냅된 위치, 예상 도착 시간, 남은 이동 거리를 업데이트하며 운전자가 진행함에 따라 앱은 SDK에서 발생하는 모든 이벤트 를 계속 구독할 수 있습니다. 이는 모든 사용 사례에 적합하지 않으며 운전자가 지도를 보고 시각적 안내를 따라야 하는 경우에는 좋은 조언이 아닙니다. 다음 스크린샷은 활성 내비게이션 중에 지도 뷰를 전환하는 것을 나란히 비교한 것입니다.
|
|
어두운 지도 스타일 사용
화면에 지도를 렌더링하는 데 필요한 에너지 양을 줄이려면 어두운 테마를 사용하도록 지도 스타일을 지정해 보세요.
Navigation SDK는 앱에서 내비게이션이 아닌 지도 뷰의 스타일을 지정하는 옵션이 포함된 iOS용 Google Maps SDK, 를 사용하여 지도를 렌더링합니다. 내비게이션 뷰는 어두운 모드 강제 적용도 지원합니다. 화면 유형의 차이로 인해 모든 기기에 동일한 방식으로 영향을 미치지는 않지만 경우에 따라 전력을 절약할 수 있습니다. 최근 연구에 따르면 일부 화면에서 어두운 모드로 절약되는 전력의 양은 화면의 초기 밝기에 따라 다릅니다. 예를 들어 어두운 모드는 밝기가 이미 최대 밝기의 30~50% 로 조정된 화면보다 최대 밝기로 설정된 화면에서 더 많은 전력을 절약합니다. 앱에 어두운 모드를 사용할 때는 최종 사용자가 화면 밝기를 설정하는 방식에 따라 전력 절약이 달라지므로 이를 고려하는 것이 중요합니다.
내비게이션 UI 수정에 관해 자세히 알아보려면 내비게이션 UI 수정을 참고하세요.
클라우드 기반 지도 스타일 지정을 사용하려면 Google 콘솔 프로젝트에서 생성된 서버 측 지도 구성을 나타내는 지도 ID가 필요합니다. 지도 ID 생성에 관한 자세한 내용은 지도 ID 개발자 문서를 참고하세요. 클라우드 기반 지도 스타일 설계 및 배포에 관한 자세한 내용은 클라우드 기반 지도 스타일 만들기 및 관리에 관한 개발자 문서를 참고하세요.
GPS 위치 업데이트 빈도 변경
기기에서 전송된 위치 업데이트의 전력 사용량을 고려할 때는 전송에서 전송되는 데이터의 양보다는 위치 업데이트의 빈도에 더 집중하세요.
이는 Navigation SDK 에서 직접 제어할 수 있는 것이 아닙니다. GPS가 아닌 위치 소스 (휴대폰 및 Wi-Fi)를 사용하는 경우에도 동일한 조언이 적용됩니다.
사용자에게 정보 제공
앱 사용자는 전력 소비를 최적화하는 방법을 알고 싶어 할 수 있습니다. 앱에서 전력 소비를 줄일 수 있도록 사용자에게 다음을 권장하세요.
- 스마트폰 잠금
- 내비게이션 앱을 백그라운드에 배치
- 가능한 경우 지도 없이 내비게이션 사용
- OLED 및 AMOLED 화면에 어두운 모드를 사용하거나 자동 밝기를 사용 설정하여 화면 밝기 줄이기
- 기기를 시원하게 유지
- 가능한 경우 차량 내 Wi-Fi에 연결
전력 소비 측정
전문가급 도구를 사용하여 전력 소비를 측정할 수 있지만 이를 확보하는 것은 어렵거나 비용이 많이 드는 경우가 많습니다. Android 스튜디오의 Power Profiler 및 XCode Organizer의 배터리 사용량 창과 같은 앱 및 IDE 프로파일링 도구는 전력 소비를 측정하지만 백그라운드 프로세스의 영향을 삭제하거나 측정할 성능 기준선을 설정하기 어려울 수 있습니다. 경우에 따라 기기 제한으로 인해 필요한 데이터에 액세스하지 못할 수 있습니다.
특수 목적의 전력 모니터링 하드웨어를 사용하고 배터리 연결 구성을 수정할 수 있으며 이를 지원하는 상용 제품 및 서비스가 있습니다. 이러한 방식으로 기기를 수정하면 기기의 보증이 무효화될 수 있습니다.