Конфигурация проекта

В этом руководстве перечислены требования к конфигурации сборки для использования Navigation SDK для Android. В инструкциях предполагается, что у вас установлена ​​Android IDE и вы знакомы с разработкой Android.

Минимальные требования для использования Navigation SDK

  • Проект Google Cloud Console с включенным навигационным SDK. По вопросам подготовки обратитесь к представителю платформы Google Maps.

  • Ваше приложение должно быть ориентировано на навигационный SDK (версия 16) или более позднюю версию.

  • Чтобы запустить приложение, созданное с помощью Navigation SDK, на устройстве Android должны быть установлены и включены службы Google Play .

  • В приложение необходимо добавить сведения об авторстве и текст лицензирования.

Настройте свои проекты: проект Google Cloud Console и проект Android.

Прежде чем вы сможете создать или протестировать приложение, вам необходимо создать проект Cloud Console и добавить учетные данные ключа API. В проекте должна быть предусмотрена подготовка для доступа к навигационному SDK. Всем ключам в проекте Cloud Console предоставляется одинаковый доступ к Navigation SDK. С ключом может быть связано несколько проектов разработки. Если у вас уже есть консольный проект, вы можете добавить ключ к текущему проекту.

Установить

  1. В своем любимом веб-браузере , например Chrome, войдите в Google Cloud Console и создайте проект Google Cloud Console .
  2. В вашей IDE , например Android Studio, создайте проект разработки приложения Android и запишите имя пакета.
  3. Свяжитесь с представителем платформы Google Maps, чтобы предоставить доступ к навигационному SDK для вашего проекта Google Cloud Console.
  4. На панели управления Google Cloud Console в веб-браузере создайте учетные данные для создания ключа API с ограничениями.
  5. На странице ключа API нажмите «Приложения Android» в области * «Ограничения приложений» .
  6. Нажмите «Добавить имя пакета и отпечаток пальца» , а затем введите имя пакета вашего проекта разработки и отпечаток SHA-1 для этого ключа.
  7. Нажмите Сохранить .

Добавьте навигационный SDK в свое приложение.

Навигационный SDK доступен в виде пакета aar . После создания проекта разработки вы можете интегрировать SDK. Эти инструкции предполагают использование Android Studio для вашей IDE.

  1. Загрузите и разархивируйте ZIP-файл Navigation SDK.

  2. В Android Studio откройте проект и добавьте пакет сервисов Google Play с помощью менеджера SDK .

  3. Из каталога zip-файлов скопируйте libs/google_navigation.aar в каталог app/libs вашего проекта.

Настройка сборки

После создания проекта вы можете настроить параметры для успешной сборки и использования Navigation SDK.

Обновить локальные свойства

  • В папке Gradle Scripts откройте файл local.properties и добавьте android.useDeprecatedNdk=true .

Обновите скрипт сборки Gradle

  • Откройте файл build.gradle (Module:app) и используйте следующие рекомендации, чтобы обновить настройки в соответствии с требованиями Navigation SDK, а также рассмотрите возможность настройки параметров оптимизации.

    Необходимые настройки для навигационного SDK

    1. Установите minSdkVersion значение 16 или выше.
    2. Установите «targetSDKversion» для API 21, чтобы перенести обработку разрешений на API. В предыдущих версиях вам необходимо явно включать потоки разрешений в свое приложение.
    3. Добавьте параметр dexOptions , который увеличивает javaMaxHeapSize .
    4. Задайте расположение дополнительных библиотек.
    5. Добавьте repositories и dependencies для Navigation SDK.
    6. Замените номера версий в зависимостях на последние доступные версии.

    Дополнительные настройки для сокращения времени сборки

    • Чтобы сократить время сборки вашего приложения
    • Чтобы оптимизировать использование зависимостей, включите ProGuard и сокращение ресурсов . Proguard удаляет неиспользуемый код и ресурсы из зависимостей. Если шаг proguard длится слишком долго, рассмотрите возможность включения multidex для разработки.
    • Уменьшите количество языковых переводов, включенных в сборку. Установите 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. В папке Manifest откройте файл AndroidManifest.xml .

  2. Добавьте свой ключ API в элемент <application> . Вы должны использовать ключ API, определенный в вашем проекте Google Cloud Console, описанном на шаге выше .

    В частичном манифесте, показанном в этом примере, вы должны заменить YOUR_API_KEY своим собственным ключом API:

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

    Полный манифест ниже показывает настройку ключа API и пустое intent для MainActivity , которое запускается при запуске.

    
      <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>
    
        ```
    

Включите необходимую атрибуцию в свое приложение

Если вы используете Navigation SDK для Android в своем приложении, вы должны включить текст указания авторства и лицензии с открытым исходным кодом в раздел юридических уведомлений вашего приложения.

Требуемый текст указания авторства и лицензии с открытым исходным кодом можно найти в ZIP-файле Navigation SDK для Android:

  • NOTICE.txt
  • LICENSES.txt

Следующий шаг

Научитесь прокладывать маршрут .