프로젝트 구성

이 가이드에는 Android용 Navigation SDK를 사용하기 위한 빌드 구성 요구사항이 나열되어 있습니다. 이 안내에서는 Android IDE가 설치되어 있고 Android 개발에 익숙하다고 가정합니다.

Navigation SDK 사용을 위한 최소 요구사항

  • Navigation SDK가 사용 설정된 Google Cloud 콘솔 프로젝트 프로비저닝은 Google Maps Platform 담당자에게 문의하세요.

  • 앱이 Navigation SDK (버전 16) 이상을 타겟팅해야 합니다.

  • Navigation SDK로 빌드된 앱을 실행하려면 Android 기기에 Google Play 서비스가 설치 및 사용 설정되어 있어야 합니다.

  • 저작자 표시 및 라이선스 텍스트를 앱에 추가해야 합니다.

프로젝트 설정: Google Cloud 콘솔 프로젝트 및 Android 프로젝트

앱을 빌드하거나 테스트하려면 먼저 Cloud 콘솔 프로젝트를 만들고 API 키 사용자 인증 정보를 추가해야 합니다. 프로젝트에 Navigation SDK에 액세스하려면 프로비저닝이 있어야 합니다. Cloud 콘솔 프로젝트 내의 모든 키에는 Navigation SDK에 대한 동일한 액세스 권한이 부여됩니다. 키 하나에 둘 이상의 개발 프로젝트가 연결될 수 있습니다. 이미 콘솔 프로젝트가 있는 경우 현재 프로젝트에 키를 추가할 수 있습니다.

설정 방법

  1. Chrome과 같이 자주 사용하는 웹브라우저에서 Google Cloud Console에 로그인하고 Google Cloud Console 프로젝트를 만듭니다.
  2. Android 스튜디오와 같은 IDE에서 Android 앱 개발 프로젝트를 만들고 패키지 이름을 기록합니다.
  3. Google Maps Platform 담당자에게 문의하여 Google Cloud 콘솔 프로젝트용 Navigation SDK 액세스 권한을 요청하세요.
  4. 웹브라우저의 Google Cloud 콘솔 대시보드에서 사용자 인증 정보를 만들어 제한사항이 있는 API 키를 생성합니다.
  5. API 키 페이지의 *애플리케이션 제한사항 영역에서 Android 앱을 클릭합니다.
  6. 패키지 이름 및 디지털 지문 추가를 클릭한 다음 개발 프로젝트의 패키지 이름과 해당 키의 SHA-1 디지털 지문을 입력합니다.
  7. 저장을 클릭합니다.

앱에 Navigation SDK 추가

Navigation SDK는 aar 번들로 제공됩니다. 개발 프로젝트를 만든 후 SDK를 통합할 수 있습니다. 이 안내에서는 IDE에 Android 스튜디오를 사용한다고 가정합니다.

  1. Navigation SDK ZIP 파일을 다운로드하여 압축을 풉니다.

  2. Android 스튜디오에서 프로젝트를 열고 SDK Manager를 사용하여 Google Play 서비스 패키지를 추가합니다.

  3. ZIP 파일 디렉터리에서 libs/google_navigation.aar를 프로젝트의 app/libs 디렉터리에 복사합니다.

빌드 구성

프로젝트를 만든 후에는 성공적인 빌드 및 Navigation SDK 사용을 위한 설정을 구성할 수 있습니다.

지역 숙박 시설 업데이트

  • Gradle Scripts 폴더에서 local.properties 파일을 열고 android.useDeprecatedNdk=true을 추가합니다.

Gradle 빌드 스크립트 업데이트

  • build.gradle (Module:app) 파일을 열고 다음 가이드라인에 따라 Navigation SDK의 요구사항을 충족하도록 설정을 업데이트하고 최적화 옵션 설정도 고려해 봅니다.

    Navigation SDK의 필수 설정

    1. minSdkVersion을 16 이상으로 설정합니다.
    2. 권한 처리를 API로 전환하려면 API 21의 'targetSDKversion'을 설정합니다. 이전 버전의 경우 앱에 권한 흐름을 명시적으로 포함해야 합니다.
    3. javaMaxHeapSize를 늘리는 dexOptions 설정을 추가합니다.
    4. 추가 라이브러리의 위치를 설정합니다.
    5. Navigation SDK의 repositoriesdependencies를 추가합니다.
    6. 종속 항목의 버전 번호를 사용 가능한 최신 버전으로 바꿉니다.

    빌드 시간을 줄이기 위한 설정(선택사항)

    • 앱의 빌드 시간을 개선하기 위해
    • 종속 항목 사용을 최적화하려면 ProGuard리소스 축소를 사용 설정하세요. Proguard는 종속 항목에서 사용되지 않는 코드와 리소스를 삭제합니다. proguard 단계가 너무 오래 실행되면 개발 작업에 멀티덱스를 사용 설정해 보세요.
    • 빌드에 포함되는 언어 번역 수를 줄입니다. 개발 중에는 한 언어에 resConfigs를 설정합니다. 최종 빌드의 경우 실제로 사용하는 언어에 'resConfigs'를 설정하세요. 기본적으로 Gradle에는 탐색 SDK에서 지원하는 모든 언어의 리소스 문자열이 포함됩니다.

다음은 애플리케이션용 Gradle 빌드 스크립트의 예입니다.

  
  apply plugin: 'com.android.application'

  ext {
      supportVersion = "27.1.1"
      lifecycle_version = "1.1.1"
  }

  android {
      compileSdkVersion 27
      buildToolsVersion '28.0.3'

      defaultConfig {
          applicationId "com.example.navigationapidemo"
          minSdkVersion 16
          targetSdkVersion 27
          versionCode 1
          versionName "1.0"
          resConfigs "en"
      }

      dexOptions {
          // This increases the amount of memory available to the dexer. This is
          // required to build apps using the Navigation SDK.
          javaMaxHeapSize "4g"
      }
      buildTypes {
          all {
              minifyEnabled true
              proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
          }
      }
      compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
      }
  }

  // Specify where to find additional libraries and the location of google_navigation.aar file.
  repositories {
      flatDir {
          dirs 'libs'
      }
      google()
  }
  dependencies {
      api fileTree(include: ['*.jar'], dir: 'libs')

      // Include the Google Navigation API library
      api(name: 'google_navigation', ext: 'aar')

      // These dependencies are required for the Navigation API to function
      // properly at runtime.
      api "org.chromium.net:cronet-fallback:69.3497.100"
      // Optional for Cronet users:
      // api "org.chromium.net:cronet-api:69.3497.100"
      api "com.android.support:appcompat-v7:${supportVersion}"
      api "com.android.support:cardview-v7:${supportVersion}"
      api "com.android.support:design:${supportVersion}"
      api "com.android.support:mediarouter-v7:${supportVersion}"
      api "com.android.support:preference-v7:${supportVersion}"
      api "com.android.support:recyclerview-v7:${supportVersion}"
      api 'com.github.bumptech.glide:glide:4.9.0'
      api 'com.github.bumptech.glide:okhttp-integration:4.9.0'
      api "android.arch.lifecycle:common-java8:$lifecycle_version"
      api 'com.google.android.datatransport:transport-api:2.2.0'
      api 'com.google.android.datatransport:transport-backend-cct:2.2.0'
      api 'com.google.android.datatransport:transport-runtime:2.2.0'
      api 'joda-time:joda-time:2.9.9'

      // The Navigation SDK does not require the
      // Places API; however, the demo app for does.
      api 'com.google.android.gms:play-services-places:10.2.1'

      annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
  }

앱 매니페스트 업데이트

  1. 매니페스트 폴더에서 AndroidManifest.xml 파일을 엽니다.

  2. <application> 요소 내에 API 키를 추가합니다. 단계에서 설명한 Google Cloud 콘솔 프로젝트에 정의된 API 키를 사용해야 합니다.

    이 예에 표시된 부분 매니페스트에서 YOUR_API_KEY를 자체 API 키로 대체합니다.

          <meta-data
              android:name="com.google.android.geo.API_KEY"
              android:value="YOUR_API_KEY"/>
    

    아래의 전체 매니페스트는 API 키의 설정과 시작 시 실행되는 MainActivity의 빈 intent를 보여줍니다.

    
      <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.navigationapidemo" >
    
          <application
              android:allowBackup="true"
              android:icon="@mipmap/ic_launcher"
              android:label="@string/app_name"
              android:supportsRtl="true"
              android:theme="@style/_AppTheme" >
    
              <meta-data
                  android:name="com.google.android.geo.API_KEY"
                  android:value="YOUR_API_KEY"/>
    
              <activity android:name=".MainActivity" >
                  <intent-filter>
                      <action android:name="android.intent.action.MAIN" />
                      <category android:name="android.intent.category.LAUNCHER" />
                  </intent-filter>
              </activity>
          </application>
        </manifest>
    
        ```
    

앱에 필수 저작자 표시를 포함합니다.

앱에서 Android용 Navigation SDK를 사용하는 경우 앱의 법적 고지 섹션에 저작자 표시 텍스트와 오픈소스 라이선스를 포함해야 합니다.

Android용 Navigation SDK ZIP 파일에서 필수 저작자 표시 텍스트와 오픈소스 라이선스를 찾을 수 있습니다.

  • NOTICE.txt
  • LICENSES.txt

다음 단계

경로를 표시하는 방법에 대해 알아보세요.