Bu sayfada, Navigation SDK'yı geliştirme projenize nasıl entegre edeceğiniz açıklanmaktadır.
Navigation SDK'yı projenize ekleme
Navigation SDK, Google
Maven
Repository üzerinden kullanılabilir.
SDK'yı projenize Gradle build.gradle veya Maven pom.xml yapılandırmanızı kullanarak ekleyebilirsiniz.
Gradle veya Maven yapılandırmanıza aşağıdaki bağımlılığı ekleyin.
VERSION_NUMBERyer tutucusunu, Android için Navigation SDK'nın istediğiniz sürümüyle değiştirin.Gradle
Modül düzeyindeki
build.gradledosyanıza aşağıdakileri ekleyin:dependencies { ... implementation 'com.google.android.libraries.navigation:navigation:VERSION_NUMBER' }Maven
pom.xmlöğenize aşağıdakileri ekleyin:<dependencies> ... <dependency> <groupId>com.google.android.libraries.navigation</groupId> <artifactId>navigation</artifactId> <version>VERSION_NUMBER</version> </dependency> </dependencies>Haritalar SDK'sını kullanan bağımlılıklarınız varsa Haritalar SDK'sını kullanan her beyan edilen bağımlılıkta bu bağımlılığı hariç tutmanız gerekir.
Gradle
En üst düzeydeki
build.gradledosyanıza aşağıdakileri ekleyin: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' } } }Maven
pom.xmlöğenize aşağıdakileri ekleyin:<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>
Derlemeyi yapılandırma
Projeyi oluşturduktan sonra, başarılı bir derleme ve Navigation SDK kullanımı için ayarları yapılandırabilirsiniz.
Yerel özellikleri güncelleme
- Gradle Scripts klasöründe
local.propertiesdosyasını açın veandroid.useDeprecatedNdk=truekodunu ekleyin.
Gradle derleme komut dosyasını güncelleme
build.gradle (Module:app)dosyasını açın ve ayarları Navigation SDK'nın koşullarını karşılayacak şekilde güncellemek için aşağıdaki yönergeleri kullanın. Ayrıca optimizasyon seçeneklerini de ayarlamayı düşünebilirsiniz.Navigation SDK için gerekli ayarlar
minSdkVersiondeğerini 23 veya daha yüksek bir değere ayarlayın.targetSdkVersiondeğerini 34 veya daha yüksek bir değere ayarlayın.dexOptionsayarı ekleyin. Bu ayar,javaMaxHeapSizedeğerini artırır.- Ek kitaplıkların konumunu ayarlayın.
- Navigasyon SDK'sı için
repositoriesvedependenciesöğelerini ekleyin. - Bağımlılıklardaki sürüm numaralarını, mevcut en son sürümlerle değiştirin.
Derleme süresini kısaltmak için isteğe bağlı ayarlar
- Bağımlılıklardan kullanılmayan kodları ve kaynakları kaldırmak için R8/ProGuard'ı kullanarak kod küçültme ve kaynak küçültmeyi etkinleştirin. R8/ProGuard adımı çok uzun sürüyorsa geliştirme çalışmaları için multidex'i etkinleştirmeyi düşünebilirsiniz.
- Derlemeye dahil edilen dil çevirisi sayısını azaltın: Geliştirme sırasında bir dil için
resConfigsdeğerini ayarlayın. Son derleme için, gerçekten kullandığınız dillerderesConfigssimgesini ayarlayın. Gradle, varsayılan olarak Navigation SDK'nın desteklediği tüm diller için kaynak dizeleri içerir.
Java 8 desteği için desugaring ekleme
- Uygulamanızı Android Gradle eklentisi 4.0.0 veya daha yeni bir sürümünü kullanarak oluşturuyorsanız eklenti, Java 8 dil API'lerinin kullanımına yönelik desteği genişletir. Daha fazla bilgi için Java 8 desugaring desteği başlıklı makaleyi inceleyin. Derleme ve bağımlılık seçenekleriyle ilgili bilgi için aşağıdaki örnek derleme komut dosyası snippet'ine bakın.
- Gradle 8.4, Android Gradle eklentisi 8.3.0 sürümü ve Desugar kitaplığını
com.android.tools:desugar_jdk_libs_nio:2.0.3kullanmanızı öneririz. Bu kurulum, Android için Navigasyon SDK'sının 6.0.0 ve sonraki sürümleriyle uyumludur. - Desugar kitaplığı,
appmodülü ve doğrudan Navigasyon SDK'sına bağlı olan tüm modüller için etkinleştirilmelidir.
Aşağıda, uygulama için Gradle derleme komut dosyası örneği verilmiştir. Kullandığınız Navigation SDK sürümü bu dokümantasyondan biraz daha yeni veya eski olabileceğinden, güncellenmiş bağımlılık kümeleri için örnek uygulamalara göz atın.
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 anahtarını uygulamanıza ekleme
Bu bölümde, API anahtarınızın uygulamanız tarafından güvenli bir şekilde referans alınabilmesi için nasıl saklanacağı açıklanmaktadır. API anahtarınızı sürüm denetim sisteminize işlememeniz gerekir. Bu nedenle, anahtarınızı projenizin kök dizininde bulunan secrets.properties dosyasına kaydetmenizi öneririz. secrets.properties dosyası hakkında daha fazla bilgi için Gradle özellik dosyaları konusuna bakın.
Bu görevi kolaylaştırmak için Android İçin Secrets Gradle Plugin'i kullanmanızı öneririz.
Android için Secrets Gradle Plugin'i yüklemek ve API anahtarınızı depolamak için:
-
Android Studio'da, kök düzeyindeki
build.gradledosyanızı açın vebuildscriptaltındakidependenciesöğesine aşağıdaki kodu ekleyin.Modern
buildscript { dependencies { // ... classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" } }
Kotlin
buildscript { dependencies { // ... classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") } }
-
Uygulama düzeyindeki
build.gradledosyanızı açın ve aşağıdaki kodupluginsöğesine ekleyin.Modern
plugins { id 'com.android.application' // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
Kotlin
plugins { id("com.android.application") // ... id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
- Android Studio kullanıyorsanız projenizi Gradle ile senkronize edin.
-
Proje düzeyindeki dizininizde
local.propertiesdosyasını açın ve aşağıdaki kodu ekleyin.YOUR_API_KEYkısmını API anahtarınızla değiştirin.MAPS_API_KEY=YOUR_API_KEY
-
AndroidManifest.xmldosyanızdacom.google.android.geo.API_KEYbölümüne gidin veandroid:valueözelliğini aşağıdaki şekilde güncelleyin:<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />Not: API anahtarı için önerilen meta veri adı
com.google.android.geo.API_KEY'dir. Bu ada sahip bir anahtar, Android platformundaki Android için Navigasyon SDK'sı da dahil olmak üzere birden fazla Google Haritalar tabanlı API'de kimlik doğrulaması yapmak için kullanılabilir. API, geriye dönük uyumluluk içincom.google.android.maps.v2.API_KEYadını da destekler. Bu eski ad, yalnızca Android Haritalar API'si v2'de kimlik doğrulamasına izin verir. Bir uygulama yalnızca API anahtarı meta veri adlarından birini belirtebilir. Her ikisi de belirtilirse API bir istisna oluşturur.
Uygulamanıza gerekli atıf bilgilerini ekleyin.
Uygulamanızda Android için Navigation SDK'yı kullanıyorsanız uygulamanızın yasal bildirimler bölümüne atıf metni ve açık kaynak lisanslarını eklemeniz gerekir.
Gerekli ilişkilendirme metnini ve açık kaynak lisanslarını Android için Navigation SDK zip dosyasında bulabilirsiniz:
NOTICE.txtLICENSES.txt
Mobility veya Fleet Engine Deliveries müşterisiyseniz
Mobility veya Fleet Engine Deliveries müşterisiyseniz Mobility dokümanlarından faturalandırma hakkında bilgi edinin. İşlemleri kaydetme hakkında daha fazla bilgi için Faturalandırmayı ayarlama, Faturalandırılabilir işlemleri kaydetme, Raporlama ve Faturalandırılabilir işlemleri kaydetme (Android) başlıklı makaleleri inceleyin.