На этой странице объясняется, как интегрировать SDK навигации в ваш проект разработки.
Добавьте SDK навигации в свой проект.
SDK для навигации доступен через репозиторий Google Maven . Вы можете добавить SDK в свой проект, используя либо build.gradle в Gradle, либо файл pom.xml в Maven.
Добавьте следующую зависимость в конфигурацию Gradle или Maven, заменив заполнитель
VERSION_NUMBERна желаемую версию Navigation SDK для Android.Грэдл
Добавьте следующее в
build.gradleна уровне модуля:dependencies { ... implementation 'com.google.android.libraries.navigation:navigation:VERSION_NUMBER' }Мэйвен
Добавьте следующее в ваш
pom.xml:<dependencies> ... <dependency> <groupId>com.google.android.libraries.navigation</groupId> <artifactId>navigation</artifactId> <version>VERSION_NUMBER</version> </dependency> </dependencies>Если у вас есть зависимости, использующие Maps SDK, вам необходимо исключить эту зависимость из каждого объявленного зависимого объекта, который полагается на Maps SDK.
Грэдл
Добавьте следующее в ваш главный файл
build.gradle:allprojects { ... // Required: you must exclude the Google Play service Maps SDK from // your transitive dependencies to make sure there won't be // multiple copies of Google Maps SDK in your binary, as the Navigation // SDK already bundles the Google Maps SDK. configurations { implementation { exclude group: 'com.google.android.gms', module: 'play-services-maps' } } }Мэйвен
Добавьте следующее в ваш
pom.xml:<dependencies> <dependency> <groupId>project.that.brings.in.maps</groupId> <artifactId>MapsConsumer</artifactId> <version>1.0</version> <exclusions> <!-- Navigation SDK already bundles Maps SDK. You must exclude it to prevent duplication--> <exclusion> <!-- declare the exclusion here --> <groupId>com.google.android.gms</groupId> <artifactId>play-services-maps</artifactId> </exclusion> </exclusions> </dependency> </dependencies>
Настройте сборку
После создания проекта вы можете настроить параметры для успешной сборки и использования SDK навигации.
Обновить локальные свойства
- В папке Gradle Scripts откройте файл
local.propertiesи добавьтеandroid.useDeprecatedNdk=true.
Обновите скрипт сборки Gradle.
Откройте файл
build.gradle (Module:app)и, следуя приведенным ниже инструкциям, обновите настройки в соответствии с требованиями Navigation SDK, а также рассмотрите возможность установки параметров оптимизации.Необходимые настройки для Navigation SDK
- Установите
minSdkVersionравным 23 или выше. - Установите
targetSdkVersionна значение 34 или выше. - Добавьте параметр
dexOptions, увеличивающий значениеjavaMaxHeapSize. - Укажите местоположение для дополнительных библиотек.
- Добавьте
repositoriesиdependenciesдля Navigation SDK. - Замените номера версий в зависимостях на номера последних доступных версий.
Дополнительные настройки для сокращения времени сборки.
- Включите сжатие кода и ресурсов с помощью R8/ProGuard, чтобы удалить неиспользуемый код и ресурсы из зависимостей. Если выполнение шага R8/ProGuard занимает слишком много времени, рассмотрите возможность включения multidex для работы в процессе разработки.
- Сократите количество языковых переводов, включенных в сборку: задайте
resConfigsдля одного языка во время разработки. Для финальной сборки задайте параметрыresConfigsдля языков, которые вы действительно используете. По умолчанию Gradle включает строковые ресурсы для всех языков, поддерживаемых Navigation SDK.
Добавлена поддержка понижения сахара для Java 8.
- Если вы разрабатываете приложение с использованием плагина Android Gradle версии 4.0.0 или выше, плагин расширяет поддержку использования ряда API языка Java 8. Дополнительную информацию см. в разделе «Поддержка десахаризации Java 8» . Пример скрипта сборки, демонстрирующий параметры компиляции и зависимостей, приведен ниже.
- Мы рекомендуем использовать Gradle 8.4, плагин Android Gradle версии 8.3.0 и библиотеку Desugar
com.android.tools:desugar_jdk_libs_nio:2.0.3. Эта конфигурация совместима с Navigation SDK для Android версии 6.0.0 и выше. - Для модуля
appи любых модулей, напрямую зависящих от Navigation SDK, необходимо включить библиотеку Desugar.
- Установите
Ниже приведён пример скрипта сборки Gradle для приложения. Проверьте примеры приложений на наличие обновлённых наборов зависимостей, так как версия Navigation SDK, которую вы используете, может немного отличаться от указанной в документации.
apply plugin: 'com.android.application'
ext {
navSdk = "__NAVSDK_VERSION__"
}
android {
compileSdk 33
buildToolsVersion='28.0.3'
defaultConfig {
applicationId "<your id>"
// Navigation SDK supports SDK 23 and later.
minSdkVersion 23
targetSdkVersion 34
versionCode 1
versionName "1.0"
// Set this to the languages you actually use, otherwise you'll include resource strings
// for all languages supported by the Navigation SDK.
resConfigs "en"
multiDexEnabled true
}
dexOptions {
// This increases the amount of memory available to the dexer. This is required to build
// apps using the Navigation SDK.
javaMaxHeapSize "4g"
}
buildTypes {
// Run ProGuard. Note that the Navigation SDK includes its own ProGuard configuration.
// The configuration is included transitively by depending on the Navigation SDK.
// If the ProGuard step takes too long, consider enabling multidex for development work
// instead.
all {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
// Flag to enable support for the new language APIs
coreLibraryDesugaringEnabled true
// Sets Java compatibility to Java 8
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
repositories {
// Navigation SDK for Android and other libraries are hosted on Google's Maven repository.
google()
}
dependencies {
// Include the Google Navigation SDK.
// Note: remember to exclude Google Play service Maps SDK from your transitive
// dependencies to avoid duplicate copies of the Google Maps SDK.
api "com.google.android.libraries.navigation:navigation:${navSdk}"
// Declare other dependencies for your app here.
annotationProcessor "androidx.annotation:annotation:1.7.0"
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.0.3'
}
Добавьте ключ API в ваше приложение.
В этом разделе описывается, как хранить ваш API-ключ, чтобы ваше приложение могло безопасно его использовать. Не следует добавлять API-ключ в систему контроля версий, поэтому мы рекомендуем хранить его в файле secrets.properties , который находится в корневом каталоге вашего проекта. Более подробную информацию о файле secrets.properties см. в разделе «Файлы свойств Gradle» .
Для упрощения этой задачи мы рекомендуем использовать плагин Secrets Gradle для Android .
Чтобы установить плагин Secrets Gradle для Android и сохранить свой API-ключ:
- В Android Studio откройте корневой файл
build.gradleи добавьте следующий код в элементdependenciesподbuildscript.Классный
buildscript { dependencies { // ... classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" } }
Котлин
buildscript { dependencies { // ... classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") } }
- Откройте файл
build.gradleвашего приложения и добавьте следующий код в элементplugins.Классный
plugins { id 'com.android.application' // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
Котлин
plugins { id("com.android.application") // ... id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
- Если вы используете Android Studio, синхронизируйте свой проект с Gradle .
- Откройте файл
local.propertiesв директории вашего проекта и добавьте следующий код. ЗаменитеYOUR_API_KEYна ваш API-ключ.MAPS_API_KEY=YOUR_API_KEY
- В файле
AndroidManifest.xmlперейдите кcom.google.android.geo.API_KEYи обновите атрибутandroid:valueследующим образом:<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />Примечание:
com.google.android.geo.API_KEY— это рекомендуемое имя метаданных для ключа API. Ключ с таким именем можно использовать для аутентификации в нескольких API на основе Google Maps на платформе Android, включая Navigation SDK для Android. Для обратной совместимости API также поддерживает имяcom.google.android.maps.v2.API_KEY. Это устаревшее имя позволяет аутентифицироваться только в Android Maps API v2. Приложение может указать только одно из имен метаданных ключа API. Если указаны оба, API выдаст исключение.
Включите необходимые данные об авторстве в ваше приложение.
Если вы используете Navigation SDK для Android в своем приложении, вы должны включить текст об авторстве и лицензии с открытым исходным кодом в раздел юридических уведомлений вашего приложения.
Необходимый текст об авторстве и лицензии с открытым исходным кодом можно найти в zip-архиве Navigation SDK для Android:
-
NOTICE.txt -
LICENSES.txt
Если вы являетесь клиентом, заказывающим услуги по обеспечению мобильности или поставке двигателей для автопарков,
Если вы являетесь клиентом Mobility или Fleet Engine Deliveries, ознакомьтесь с информацией о выставлении счетов в документации Mobility. Для получения дополнительной информации о регистрации транзакций см. разделы «Настройка выставления счетов» , «Регистрация оплачиваемых транзакций» , «Отчетность» и «Регистрация оплачиваемых транзакций (Android)» .