این صفحه نحوه ادغام SDK ناوبری را در پروژه توسعه شما توضیح میدهد.
کیت توسعه نرمافزار ناوبری (Navigation SDK) را به پروژه خود اضافه کنید.
کیت توسعه نرمافزار ناوبری (Navigation SDK) از طریق مخزن Google Maven در دسترس است. میتوانید SDK را با استفاده از پیکربندی Gradle build.gradle یا Maven pom.xml به پروژه خود اضافه کنید.
وابستگی زیر را به پیکربندی Gradle یا Maven خود اضافه کنید و عبارت
VERSION_NUMBERرا جایگزین نسخه مورد نظر Navigation SDK برای اندروید کنید.گرادل
موارد زیر را به
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>
پیکربندی ساخت
پس از ایجاد پروژه، میتوانید تنظیمات را برای ساخت و استفاده موفقیتآمیز از Navigation SDK پیکربندی کنید.
بهروزرسانی ویژگیهای محلی
- در پوشه Gradle Scripts ، فایل
local.propertiesرا باز کنید وandroid.useDeprecatedNdk=trueرا اضافه کنید.
اسکریپت ساخت Gradle را بهروزرسانی کنید
فایل
build.gradle (Module:app)را باز کنید و از دستورالعملهای زیر برای بهروزرسانی تنظیمات جهت برآورده کردن الزامات Navigation SDK استفاده کنید و تنظیم گزینههای بهینهسازی را نیز در نظر بگیرید.تنظیمات مورد نیاز برای Navigation SDK
-
minSdkVersionروی ۲۳ یا بالاتر تنظیم کنید. -
targetSdkVersionروی ۳۴ یا بالاتر تنظیم کنید. - یک تنظیم
dexOptionsاضافه کنید کهjavaMaxHeapSizeرا افزایش دهد. - مکان کتابخانههای اضافی را تنظیم کنید.
-
repositoriesوdependenciesمربوط به SDK ناوبری را اضافه کنید. - شماره نسخهها را در وابستگیها با آخرین نسخههای موجود جایگزین کنید.
تنظیمات اختیاری برای کاهش زمان ساخت
- فعال کردن کاهش کد و کاهش منابع با استفاده از R8/ProGuard برای حذف کد و منابع استفاده نشده از وابستگیها. اگر مرحله R8/ProGuard زمان زیادی برای اجرا میبرد، فعال کردن multidexing را برای کار توسعه در نظر بگیرید.
- تعداد ترجمههای زبان موجود در ساخت را کاهش دهید: در طول توسعه،
resConfigsبرای یک زبان تنظیم کنید. برای ساخت نهایی،resConfigsبرای زبانهایی که واقعاً استفاده میکنید تنظیم کنید. به طور پیشفرض، Gradle شامل رشتههای منبع برای همه زبانهای پشتیبانی شده توسط SDK Navigation است.
اضافه کردن desugaring برای پشتیبانی از Java8
- اگر برنامه خود را با استفاده از افزونه Android Gradle نسخه ۴.۰.۰ یا بالاتر میسازید، این افزونه پشتیبانی از تعدادی از APIهای زبان جاوا ۸ را گسترش میدهد. برای اطلاعات بیشتر به پشتیبانی desugaring جاوا ۸ مراجعه کنید. برای نحوه کامپایل و گزینههای وابستگی، به قطعه کد اسکریپت ساخت مثال زیر مراجعه کنید.
- توصیه میکنیم از Gradle 8.4، افزونه Android Gradle نسخه 8.3.0 و کتابخانه Desugar
com.android.tools:desugar_jdk_libs_nio:2.0.3استفاده کنید. این تنظیمات با Navigation SDK برای اندروید نسخه 6.0.0 و بالاتر سازگار است. - کتابخانه Desugar باید برای ماژول
appو هر ماژولی که مستقیماً به Navigation SDK وابسته است، فعال باشد.
-
در زیر نمونهای از اسکریپت ساخت 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 properties files مراجعه کنید.
برای سادهسازی این کار، توصیه میکنیم از افزونه Secrets Gradle برای اندروید استفاده کنید.
برای نصب افزونه Secrets Gradle برای اندروید در پروژه Google Maps خود:
- در اندروید استودیو، فایل سطح بالای
build.gradle.ktsیاbuild.gradleخود را باز کنید و کد زیر را به عنصرdependenciesدر زیرbuildscriptاضافه کنید.کاتلین
plugins { alias(libs.plugins.android.application) apply false alias(libs.plugins.jetbrains.kotlin.android) apply false alias(libs.plugins.kotlin.compose) apply false alias(libs.plugins.secrets.gradle.plugin) apply false }
گرووی
buildscript { dependencies { classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" } }
- فایل
build.gradle.ktsیاbuild.gradleسطح ماژول خود را باز کنید و کد زیر را به عنصرpluginsاضافه کنید.کاتلین
plugins { // ... alias(libs.plugins.secrets.gradle.plugin) }
گرووی
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
- در فایل
build.gradle.ktsیاbuild.gradleدر سطح ماژول، مطمئن شوید کهtargetSdkوcompileSdkروی ۳۴ تنظیم شدهاند. - پروژه خود را با Gradle همگامسازی کنید .
- فایل
secrets.propertiesرا در دایرکتوری سطح بالای خود باز کنید و سپس کد زیر را اضافه کنید.YOUR_API_KEYبا کلید API خود جایگزین کنید. کلید خود را در این فایل ذخیره کنید زیراsecrets.propertiesاز بررسی در سیستم کنترل نسخه مستثنی است.MAPS_API_KEY=YOUR_API_KEY
فایل
local.defaults.propertiesرا در دایرکتوری سطح بالای خود، همان پوشهای که فایلsecrets.propertiesدر آن قرار دارد، ایجاد کنید و سپس کد زیر را اضافه کنید.MAPS_API_KEY=DEFAULT_API_KEY
هدف از این فایل، فراهم کردن یک مکان پشتیبان برای کلید API در صورت عدم یافتن فایل
secrets.propertiesاست تا ساختها با شکست مواجه نشوند. این اتفاق زمانی میافتد که شما برنامه را از یک سیستم کنترل نسخه کهsecrets.propertiesحذف کرده است، کلون کنید و هنوز فایلsecrets.propertiesرا به صورت محلی برای ارائه کلید API خود ایجاد نکرده باشید.- در فایل
AndroidManifest.xmlخود، بهcom.google.android.geo.API_KEYبروید وandroid:value attributeبهروزرسانی کنید. اگر تگ<meta-data>وجود ندارد، آن را به عنوان فرزند تگ<application>ایجاد کنید.<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />
توجه:
com.google.android.geo.API_KEYنام فراداده پیشنهادی برای کلید API است. کلیدی با این نام میتواند برای احراز هویت در چندین API مبتنی بر نقشههای گوگل در پلتفرم اندروید، از جمله Navigation SDK برای اندروید، استفاده شود. برای سازگاری با نسخههای قبلی، API از نامcom.google.android.maps.v2.API_KEYنیز پشتیبانی میکند. این نام قدیمی، احراز هویت را فقط برای Android Maps API v2 امکانپذیر میکند. یک برنامه میتواند فقط یکی از نامهای فراداده کلید API را مشخص کند. اگر هر دو مشخص شوند، API یک استثنا ایجاد میکند. در اندروید استودیو، فایل
build.gradle.ktsیاbuild.gradleدر سطح ماژول خود را باز کنید و ویژگیsecretsرا ویرایش کنید. اگر ویژگیsecretsوجود ندارد، آن را اضافه کنید.ویژگیهای افزونه را ویرایش کنید تا
propertiesFileNameرویsecrets.properties،defaultPropertiesFileNameرویlocal.defaults.propertiesو سایر ویژگیها تنظیم کنید.کاتلین
secrets { // To add your Maps API key to this project: // 1. If the secrets.properties file does not exist, create it in the same folder as the local.properties file. // 2. Add this line, where YOUR_API_KEY is your API key: // MAPS_API_KEY=YOUR_API_KEY propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = "local.defaults.properties" }
گرووی
secrets { // To add your Maps API key to this project: // 1. If the secrets.properties file does not exist, create it in the same folder as the local.properties file. // 2. Add this line, where YOUR_API_KEY is your API key: // MAPS_API_KEY=YOUR_API_KEY propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = "local.defaults.properties" }
ویژگیهای مورد نیاز را در برنامه خود بگنجانید
اگر از کیت توسعه نرمافزار ناوبری اندروید (Navigation SDK) در برنامه خود استفاده میکنید، باید متن ارجاع و مجوزهای متنباز را به عنوان بخشی از بخش اطلاعیههای قانونی برنامه خود درج کنید.
میتوانید متن ارجاع مورد نیاز و مجوزهای متنباز را در فایل زیپ Navigation SDK for Android پیدا کنید:
-
NOTICE.txt -
LICENSES.txt
اگر مشتری خدمات تحویل موتور خودرو یا ناوگان هستید
اگر مشتری Mobility یا Fleet Engine Deliverys هستید، در مورد صورتحساب در مستندات Mobility اطلاعات کسب کنید. برای اطلاعات بیشتر در مورد ثبت تراکنشها، به بخشهای تنظیم صورتحساب ، ثبت تراکنشهای قابل پرداخت ، گزارشدهی و ثبت تراکنشهای قابل پرداخت (اندروید) مراجعه کنید.