Bu sayfada, Navigation SDK'sını geliştirme projenize nasıl entegre edeceğiniz açıklanmaktadır.
Navigasyon SDK'sını projenize ekleme
Navigation SDK'sı, Google Maven Deposu üzerinden kullanılabilir.
SDK'yı Gradle build.gradle
veya Maven pom.xml
yapılandırmanızı kullanarak projenize ekleyebilirsiniz.
Gradle veya Maven yapılandırmanıza aşağıdaki bağımlılığı ekleyin.
VERSION_NUMBER
yer tutucusunu Android için Navigation SDK'sının istediğiniz sürümüyle değiştirin.Gradle
Modül düzeyindeki
build.gradle
dosyanıza aşağıdakileri ekleyin:dependencies { ... implementation 'com.google.android.libraries.navigation:navigation:VERSION_NUMBER' }
Maven
pom.xml
dosyanıza 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ı varsa Haritalar SDK'sına dayanan her beyan edilen bağımlılıkta bağımlılığı hariç tutmanız gerekir.
Gradle
Üst düzey
build.gradle
dosyanıza aşağıdakileri ekleyin:allprojects { ... // Required: you must exclude the Google Play service Maps SDK from // your transitive dependencies. This is to ensure 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
dosyanıza 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, Navigation SDK'nın başarılı bir şekilde derlenmesi ve kullanılması için ayarları yapılandırabilirsiniz.
Yerel mülkleri güncelleme
- Gradle Komut Dosyaları klasöründe
local.properties
dosyasını açın veandroid.useDeprecatedNdk=true
dosyasını ekleyin.
Gradle özelliklerini güncelleme
Gradle Komut Dosyaları klasöründe
gradle.properties
dosyasını açın ve henüz mevcut değilse aşağıdakileri ekleyin:android.useAndroidX=true
android.enableJetifier=true
Gradle derleme komut dosyasını güncelleme
build.gradle (Module:app)
dosyasını açın ve ayarları Navigation SDK'sı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 ayarlayabilirsiniz.Navigation SDK'sı için gerekli ayarlar
minSdkVersion
öğesini 23 veya daha yüksek bir değere ayarlayın.targetSdkVersion
öğesini 34 veya daha yüksek bir değere ayarlayın.javaMaxHeapSize
değerini artıran birdexOptions
ayarı ekleyin.- Ek kitaplıkların konumunu ayarlayın.
- Navigasyon SDK'sı için
repositories
vedependencies
öğelerini ekleyin. - Bağımlılıklardaki sürüm numaralarını, mevcut en son sürümlerle değiştirin.
Derleme süresini azaltmak 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üçültme işlemlerini etkinleştirin. R8/ProGuard adımını çalıştırmanın süresi çok uzunsa geliştirme çalışmaları için multidex'i etkinleştirmeyi düşünebilirsiniz.
- Derleme işlemine dahil edilen dil çevirilerinin sayısını azaltın: Geliştirme sırasında bir dil için
resConfigs
ayarlayın. Nihai derleme içinresConfigs
değerini, gerçekten kullandığınız diller için ayarlayın. Gradle, varsayılan olarak Navigation SDK'sı tarafından desteklenen tüm diller için kaynak dizeleri içerir.
Java 8 desteği için şeker azaltma özelliği eklendi
- Uygulamanızı Android Gradle eklentisi 4.0.0 veya sonraki bir sürümü kullanarak oluşturuyorsanız eklenti, çeşitli Java 8 dil API'lerinin kullanılması için desteği genişletir. Daha fazla bilgi için Java 8 şekerleme kaldırma desteği bölümüne bakın. Derleme ve bağımlılık seçenekleri 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ünü ve Desugar kitaplığını
com.android.tools:desugar_jdk_libs_nio:2.0.3
kullanmanızı öneririz. Bu kurulum, Android 6.0.0 ve sonraki sürümler için Navigation SDK ile uyumludur. - Desugar kitaplığının
app
modülü ve doğrudan Navigation SDK'sına bağlı olan tüm modüller için etkinleştirilmesi gerekir.
Aşağıda, uygulamanın Gradle derleme komut dosyası örneği verilmiştir. Kullandığınız Navigation SDK'sının sürümü bu dokümanların biraz ilerisinde veya gerisinde olabileceğinden, güncellenmiş bağımlılık grupları için örnek uygulamaları kontrol edin.
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ı uygulamanız tarafından güvenli bir şekilde referans verilebilmesi için nasıl saklamanız gerektiği açıklanmaktadır. API anahtarınızı sürüm kontrol sisteminize eklememeniz gerektiğinden, anahtarı projenizin kök dizininde bulunan secrets.properties
dosyasında saklamanızı ö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 için Secrets Gradle Plugin'i kullanmanızı öneririz.
Android için Secrets Gradle eklentisini Google Haritalar projenize yüklemek üzere:
-
Android Studio'da üst düzey
build.gradle.kts
veyabuild.gradle
dosyanızı açın vebuildscript
altındakidependencies
öğesine aşağıdaki kodu ekleyin.Kotlin
buildscript { dependencies { classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") } }
Modern
buildscript { dependencies { classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" } }
-
Modül düzeyindeki
build.gradle.kts
veyabuild.gradle
dosyanızı açıpplugins
öğesine aşağıdaki kodu ekleyin.Kotlin
plugins { // ... id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
Modern
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
- Modül düzeyindeki
build.gradle.kts
veyabuild.gradle
dosyanızdatargetSdk
vecompileSdk
değerlerinin 34 olarak ayarlandığından emin olun. - Dosyayı kaydedin ve projenizi Gradle ile senkronize edin.
-
Üst düzey dizininizdeki
secrets.properties
dosyasını açıp aşağıdaki kodu ekleyin.YOUR_API_KEY
yerine API anahtarınızı girin.secrets.properties
, sürüm kontrol sistemine kontrol edilmekten hariç tutulduğu için anahtarınızı bu dosyada saklayın.NAV_API_KEY=YOUR_API_KEY
- Dosyayı kaydedin.
-
local.defaults.properties
dosyasını üst düzey dizininizde,secrets.properties
dosyasıyla aynı klasörde oluşturun ve ardından aşağıdaki kodu ekleyin.NAV_API_KEY=DEFAULT_API_KEY
Bu dosyanın amacı,
secrets.properties
dosyası bulunamazsa API anahtarı için yedek bir konum sağlamak ve böylece derlemelerin başarısız olmasını önlemektir. Bu durum, uygulamayısecrets.properties
dosyasını atlayan bir sürüm kontrol sisteminden klonladıysanız ve API anahtarınızı sağlamak için henüz yerel olarak birsecrets.properties
dosyası oluşturmadıysanız ortaya çıkabilir. - Dosyayı kaydedin.
-
AndroidManifest.xml
dosyanızdacom.google.android.geo.API_KEY
bölümüne gidin veandroid:value attribute
değerini güncelleyin.<meta-data>
etiketi yoksa<application>
etiketinin alt öğesi olarak oluşturun.<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />
Not:
com.google.android.geo.API_KEY
, API anahtarı için önerilen meta veri adıdır. Bu ada sahip bir anahtar, Android için Navigasyon SDK'sı da dahil olmak üzere Android platformundaki 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_KEY
adını da destekler. Bu eski ad yalnızca Android Maps API v2'de kimlik doğrulamasına olanak tanır. Bir uygulama, API anahtarı meta veri adlarından yalnızca birini belirtebilir. Her ikisi de belirtilirse API bir istisna oluşturur. -
Android Studio'da modül düzeyindeki
build.gradle.kts
veyabuild.gradle
dosyanızı açıpsecrets
mülkünü düzenleyin.secrets
mülkü yoksa ekleyin.propertiesFileName
değerinisecrets.properties
,defaultPropertiesFileName
değerinilocal.defaults.properties
ve diğer özellikleri ayarlamak için eklentinin özelliklerini düzenleyin.Kotlin
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" // Configure which keys should be ignored by the plugin by providing regular expressions. // "sdk.dir" is ignored by default. ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore" ignoreList.add("sdk.*") // Ignore all keys matching the regexp "sdk.*" }
Modern
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" // Configure which keys should be ignored by the plugin by providing regular expressions. // "sdk.dir" is ignored by default. ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore" ignoreList.add("sdk.*") // Ignore all keys matching the regexp "sdk.*" }
Uygulamanıza gerekli ilişkilendirmeleri ekleme
Uygulamanızda Android için Navigasyon SDK'sını kullanıyorsanız ilişkilendirme metnini ve açık kaynak lisanslarını uygulamanızın yasal uyarılar bölümüne eklemeniz gerekir.
Gerekli ilişkilendirme metnini ve açık kaynak lisanslarını Android için Navigasyon SDK'sı zip dosyasında bulabilirsiniz:
NOTICE.txt
LICENSES.txt
Mobility veya Fleet Engine Delivery müşterisiyseniz
Mobility veya Fleet Engine Deliveries müşterisiyseniz Mobility dokümanlarında faturalandırma hakkında bilgi edinin. İşlem 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.