Project Configuration

このガイドでは、Navigation SDK for Android を使用するためのビルド構成要件を示します。以下の手順は、Android IDE がインストール済みであり、Android 開発に精通していることを前提としています。

Navigation SDK を使用するための最小要件

  • Navigation SDK が有効になっている Google Cloud Console プロジェクト。プロビジョニングについては、Google Maps Platform の担当者にお問い合わせください。

  • アプリは Navigation SDK(バージョン 16)以降を対象にする必要があります。

  • Navigation SDK で作成したアプリを実行するには、Android デバイスに Google Play 開発者サービスをインストールして有効にする必要があります。

  • 帰属情報とライセンス テキストをアプリに追加する必要があります。

プロジェクトをセットアップする: Google Cloud コンソール プロジェクトと Android プロジェクト

アプリを構築またはテストする前に、Cloud Console プロジェクトを作成し、API キーの認証情報を追加する必要があります。Navigation SDK にアクセスするには、プロジェクトにプロビジョニングが必要です。Cloud コンソール プロジェクト内のすべてのキーには、Navigation SDK に対する同じアクセス権が付与されます。1 つの鍵に複数の開発プロジェクトを関連付けることができます。コンソール プロジェクトがすでにある場合は、現在のプロジェクトにキーを追加できます。

設定方法

  1. Chrome などのお好みのウェブブラウザGoogle Cloud Console にログインし、Google Cloud Console プロジェクトを作成します。
  2. Android Studio などの IDE で、Android アプリ開発プロジェクトを作成し、パッケージ名をメモします。
  3. Google Maps Platform の担当者に連絡して、Google Cloud コンソール プロジェクトの Navigation SDK へのアクセス権を付与してください。
  4. ウェブブラウザの Google Cloud コンソール ダッシュボードで、制限付きの API キーを生成するための認証情報を作成します。
  5. API キーのページで、[*アプリケーションの制限] 領域で [Android apps] をクリックします。
  6. [パッケージ名とフィンガープリントを追加] をクリックして、開発プロジェクトのパッケージ名とその鍵の SHA-1 フィンガープリントを入力します。
  7. [保存] をクリックします。

アプリに Navigation SDK を追加する

Navigation SDK は aar バンドルとして提供されています。開発プロジェクトを作成したら、SDK を統合できます。以下の手順は、IDE に Android Studio を使用していることを前提としています。

  1. Navigation SDK の zip ファイルをダウンロードして解凍します。

  2. Android Studio でプロジェクトを開き、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 21 の「targetSDKversion」を設定して、権限の処理を API に移行。以前のバージョンでは、アプリに権限フローを明示的に含める必要があります。
    3. javaMaxHeapSize を増やす dexOptions 設定を追加します。
    4. 追加のライブラリの場所を設定します。
    5. Navigation SDK の repositoriesdependencies を追加します。
    6. 依存関係のバージョン番号を最新の利用可能なバージョンに置き換えます。

    ビルド時間を短縮するためのオプション設定

    • アプリのビルド時間を短縮するため
    • 依存関係の使用を最適化するには、ProGuardリソース圧縮を有効にします。ProGuard は、未使用のコードとリソースを依存関係から削除します。ProGuard ステップの実行時間が長すぎる場合は、開発作業用に multidex を有効にすることを検討してください。
    • ビルドに含まれる言語の翻訳の数を減らします。開発中は、1 つの言語に対して resConfigs を設定します。最終ビルドでは、実際に使用する言語の「resConfigs」を設定します。Gradle にはデフォルトで、Navigation 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 キーを追加します。API キーを使用するには、上記の手順で説明した Google Cloud Console プロジェクトで定義されている必要があります。

    この例に示す部分的なマニフェストでは、YOUR_API_KEY を独自の API キーに置き換えます。

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

    以下のマニフェストの全文は、起動時に実行される MainActivity の API キーと空の 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 を使用する場合は、アプリの法的通知のセクションに、帰属表示のテキストとオープンソース ライセンスを含める必要があります。

必要な帰属表示テキストとオープンソース ライセンスは、Navigation SDK for Android の zip ファイルに記載されています。

  • NOTICE.txt
  • LICENSES.txt

次のステップ

詳しくは、ルートを描画する方法をご覧ください。