Skip to content

Location API 선택하기

양성현 edited this page Dec 13, 2022 · 4 revisions

Fused Location Provider API

Fused Location Provider API는 구글에서 제공하는 위치 정보 제공 API이다.

GPS 및 WI-FI 등 기기의 다양한 센서에서 제공하는 신호를 활용해서 기기 위치를 결정한다.

특징

위치 업데이트

  • 특정 간격으로 업데이트된 위치 정보를 LocationCallback을 통해 사용할 수 있다.

LocationRequest를 활용해 위치 요청 설정

  • GPS, WI-FI와 같은 사용할 소스를 결정할 필요 없이 LocationRequest.Bulder를 통해 쉽게 설정할 수 있다.
  • 앱에서 필요로 하는 수준의 정확성/전력 소비를 설정할 수 있다.
  • 업데이트 간격, 전달되는 최대 위치 업데이트 수, 일정 거리 이상일 때 업데이트하게 설정 등 다양한 조건들을 설정할 수 있다.

Framework Location API

안드로이드 시스템 위치 서비스에 직접 접근 해서 장치의 지리적 위치 정보를 제공 받을수 있다.

특징

위치 공급자를 직접 설정할 수있다.

장치가 지정된 위치에 근접시 알림을 받을 수 있다.

  • LocationListener를 통해 기기의 위치 변경 및 공급자의 활성화 여부를 받을 수 있다.

Fused Location Provider API와 Framework Location API 비교

Fused Location Provider

  • API는 앱을 사용하는 기기에 Google Play 스토어가 설치 되어있어 Google Play Service를 사용할 수 있어야한다.
  • gradle에 Google Play Service Location 라이브러리 의존성을 추가해야한다.
  • API 승인이 필요없다.
  • LocationRequest의 Priority를 설정하는것만으로 앱이 필요로하는 정책을 설정할 수 있다.
  • 업데이트 간격, 업데이트 최소 거리 등 다양한 조건을 Builder를 통해 쉽게 설정할 수 있다.
  • Google Play Service API라서 Google이 지속적으로 업데이트할것을 기대할 수 있다.
  • Android Developer 가이드는 Fused Location Provider로 설명 되어있기 때문에 정보를 얻는것이 Framework Location API보다 유리하다.

Framework Location API

  • 시스템의 위치 서비스를 직접 구현해야하기 때문에 API를 사용하는데 준비가 필요하지 않다.
  • Location Provider를 설정할 수 있다.
    • 사용하는 Location Provider에 따라 정확도, 배터리 소모가 다른데 이를 적절하게 사용할 수 있어야한다.

위치 서비스에서 중요한것은 위치 정확도배터리 최적화라고 생각한다.

Fused Locatioin Provider는 개발자가 복잡한 알고리즘을 만들 필요 없이 쉽고 빠르게 앱이 필요로하는 위치 서비스 품질을 선택하여 개발할 수 있게 해준다.

만약 특정 Location Provider를 사용할려면 Framework Location API가 유리하다.

Android Developer Guide에서 말하는 Google Play Service의 Location And Context APIs(Fused Location Provider 포함) 사용할 것을 권장하는 이유

  1. Google Play 서비스는 간단한 인터페이스와 더 깔끔한 API 노출 영역을 제공합니다.
  2. 원하는 서비스 품질을 지정할 수 있고, API가 기본 기술을 관리합니다.
  3. Google Play 서비스 API는 성능 및 배터리 사용에 최적화되어 있습니다.
  4. Google Play 서비스 API는 적극적으로 유지 관리됩니다. Google은 지속적으로 알고리즘을 개선하고 더 많은 기능을 추가하고 있습니다.

references

Migrate to location and context APIs | Android Developers

Clone this wiki locally