Bu kılavuzda, Android 5.0.0 ve sonraki sürümleri için Gezinme SDK'sı kullanımıyla ilgili derleme yapılandırması gereksinimleri listelenmektedir.
Talimatlarda, yüklü bir Android IDE'nizin olduğu ve Android geliştirme hakkında bilgi sahibi olduğunuz varsayılır.
Gezinme SDK'sını kullanmaya ilişkin minimum gereksinimler
Bu şartlar, Android 5.0.0 ve sonraki sürümleri için Navigasyon SDK'sı için geçerlidir.
Gezinme SDK'sının etkin olduğu bir Google Cloud Console projesi. Temel hazırlık için Google Haritalar Platformu temsilcinize danışın.
Uygulamanızın Android sürümlerini aşağıdaki gibi belirtmesi gerekir:
- hedef sürüm, Android 13 (API düzeyi 33) veya sonraki bir sürüm olmalıdır.
- minimum sürüm, Android 6 (API düzeyi 23) veya sonraki bir sürüm olmalıdır.
Gezinme SDK'sı ile oluşturulmuş bir uygulamayı çalıştırmak için Android cihazın aşağıdaki gereksinimleri karşılaması gerekir:
Google Play hizmetlerinin yüklü ve etkin olması.
En az 2 GB RAM.
OpenGL ES 2.0 desteği. 2D ve 3D Grafik Hızlandırma için Android Açık Kaynak Android 6.0 Uyumluluğu dokümanlarına bakın.
İlişkilendirmeler ve lisanslama metni uygulamaya eklenmelidir.
Projelerinizi kurun: Cloud Console projesi ve Android projesi
Uygulama derlemeden veya test etmeden önce Cloud Console projesi oluşturmanız ve API anahtarı kimlik bilgileri eklemeniz gerekir. Gezinme SDK'sına erişmek için projede temel hazırlık yapılmalıdır. Cloud Console projesindeki tüm anahtarlara, Navigasyon SDK'sına aynı erişim izni verilir. Bir anahtarla ilişkili birden fazla geliştirme projesi olabilir. Zaten bir konsol projeniz varsa mevcut projenize anahtar ekleyebilirsiniz.
Ayarlamak için
- En sevdiğiniz web tarayıcısında Cloud Console'da oturum açın ve Cloud Console projenizi oluşturun.
- IDE'nizde (ör. Android Studio) bir Android uygulama geliştirme projesi oluşturun ve paket adını not edin.
- Cloud Console projeniz için Navigasyon SDK'sına erişim sağlamak üzere Google Haritalar Platformu temsilcinizle iletişime geçin.
- Web tarayıcınızın Cloud Console kontrol panelindeyken kısıtlamalarla bir API anahtarı oluşturmak için kimlik bilgileri oluşturun.
- API anahtarı sayfasında, Uygulama kısıtlamaları alanında Android uygulamaları'nı tıklayın.
- Paket adını ve parmak izini ekle'yi tıklayın, ardından geliştirme projenizin paket adını ve bu anahtar için SHA-1 parmak izini girin.
- Kaydet'i tıklayın.
Gezinme SDK'sını projenize ekleme
Gezinme SDK'sı Maven üzerinden kullanılabilir. Geliştirme projenizi oluşturduktan sonra, aşağıdaki yaklaşımlardan birini kullanarak SDK'yı projenize entegre edebilirsiniz.
Gezinme SDK'sı 4.5 ve sonraki sürümleri için Maven kullanılıyor (önerilir)
Aşağıda, projenize Navigasyon SDK'sı eklemenin en basit ve önerilen yolu olan google()
Maven deposu kullanılmaktadır.
Aşağıdaki bağımlılığı Gradle veya Maven yapılandırmanıza ekleyerek Android için Navigation SDK'nın istediğiniz sürümü yerine
VERSION_NUMBER
yer tutucusunu ekleyin.Gradle
Modül düzeyindeki
build.gradle
öğenize aşağıdakileri ekleyin:dependencies { ... implementation 'com.google.android.libraries.navigation:navigation:VERSION_NUMBER' }
Orijinal Maven deposundan yükseltme yapıyorsanız grup ve yapı adlarının değiştiğini ve
com.google.cloud.artifactregistry.gradle-plugin
eklentisinin artık gerekli olmadığını unutmayın.Ayrıca, aşağıdakileri de üst düzey
build.gradle
sayfanıza 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
cihazınıza şunları 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ı temel alan, beyan edilen her bağımlılıktaki bağımlılığı hariç tutmanız gerekir.
<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 oluşturulması 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 derleme komut dosyasını güncelleme
build.gradle (Module:app)
dosyasını açın ve ayarları, Navigasyon SDK'sı gereksinimlerini karşılayacak şekilde güncellemek ve optimizasyon seçeneklerini de ayarlamayı değerlendirmek için aşağıdaki yönergeleri kullanın.Navigasyon SDK'sı için gerekli ayarlar
minSdkVersion
değerini 23 veya daha yüksek bir değere ayarlayın.targetSdkVersion
değerini 33 veya daha yüksek bir değere ayarlayın.javaMaxHeapSize
değerini artıran birdexOptions
ayarı ekleyin.- Ek kitaplıkların konumunu ayarlayın.
- Gezinme SDK'sı için
repositories
vedependencies
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
- Kullanılmayan kodları ve kaynakları bağımlılıklardan kaldırmak için R8/ProGuard kullanarak kod ve kaynak küçültmeyi etkinleştirin. R8/ProGuard adımı çok fazla zaman alıyorsa geliştirme çalışmaları için multidex'i etkinleştirmeyi düşünün.
- Derlemeye dahil edilen dil çevirilerinin sayısını azaltın: Geliştirme sırasında bir dil için
resConfigs
ayarlayın. Son derleme için, kullandığınız diller içinresConfigs
değerini ayarlayın. Gradle, varsayılan olarak Gezinme SDK'sının desteklediği tüm diller için kaynak dizeleri içerir.
Java8 desteği için şeker azaltma ekleme
- Uygulamanızı Android Gradle eklentisi 4.0.0 veya üstünü kullanarak oluşturuyorsanız eklenti, Java 8 dilindeki çeşitli API'leri kullanma desteğinin kapsamını genişletir. Daha fazla bilgi için Java 8 şeker çıkarma desteği sayfasını inceleyin. Derleme ve bağımlılık seçeneklerinin nasıl oluşturulduğunu öğrenmek için aşağıdaki örnek derleme komut dosyası snippet'ine bakın.
Aşağıda, uygulamanın Gradle derleme komut dosyası örneğini bulabilirsiniz. Kullandığınız Gezinme SDK'sı sürümü bu dokümanların biraz önünde veya arkasında 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 33
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:1.1.9'
}
API anahtarını uygulamanıza ekleyin
Bu bölümde, uygulamanız tarafından güvenli bir şekilde referans verilebilmesi için API anahtarınızı nasıl depolayacağınız açıklanmaktadır. API anahtarınızı sürüm kontrol sisteminizde kontrol etmemeniz gerekir. Bu nedenle, projenizin kök dizininde bulunan secrets.properties
dosyasında saklamanızı öneririz. secrets.properties
dosyası hakkında daha fazla bilgi için Gradle özellikleri dosyaları bölümüne bakın.
Bu görevi kolaylaştırmak için Android için Secrets Gradle Eklentisi'ni kullanmanızı öneririz.
Google Haritalar projenize Android için Secrets Gradle Eklentisi'ni yüklemek için:
-
Android Studio'da üst düzey
build.gradle
veyabuild.gradle.kts
dosyanızı açın ve aşağıdaki kodubuildscript
altındakidependencies
öğesine 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") } }
-
Modül düzeyindeki
build.gradle
dosyanızı açın veplugins
öğesine aşağıdaki kodu ekleyin.Modern
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
Kotlin
plugins { id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
- Modül düzeyindeki
build.gradle
dosyanızdatargetSdk
vecompileSdk
öğelerinin 34 olarak ayarlandığından emin olun. - Dosyayı kaydedin ve projenizi Gradle ile senkronize edin.
-
En üst düzey dizininizde
secrets.properties
dosyasını açın ve ardından aşağıdaki kodu ekleyin.YOUR_API_KEY
kısmını API anahtarınızla değiştirin.secrets.properties
, sürüm kontrol sistemine kontrol edilmekten hariç tutulduğu için anahtarınızı bu dosyada depolayın.MAPS_API_KEY=YOUR_API_KEY
- Dosyayı kaydedin.
-
local.defaults.properties
dosyasını en üst düzey dizininizde,secrets.properties
dosyasıyla aynı klasörde oluşturun ve aşağıdaki kodu ekleyin.MAPS_API_KEY=DEFAULT_API_KEY
Bu dosyanın amacı,
secrets.properties
dosyası bulunamazsa API anahtarı için yedek konum sağlayarak derlemelerin başarısız olmasını sağlamaktır. Uygulamayısecrets.properties
içermeyen bir sürüm kontrol sisteminden klonlarsanız ve henüz API anahtarınızı sağlamak için yerel olarak birsecrets.properties
dosyası oluşturmadıysanız bu durum ortaya çıkabilir. - Dosyayı kaydedin.
-
AndroidManifest.xml
dosyanızdacom.google.android.geo.API_KEY
bölümüne gidipandroid:value attribute
dosyasını güncelleyin.<meta-data>
etiketi yoksa bu etiketi<application>
etiketinin alt öğesi olarak oluşturun.<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />
Note:
com.google.android.geo.API_KEY
is the recommended metadata name for the API key. A key with this name can be used to authenticate to multiple Google Maps-based APIs on the Android platform, including the Navigation SDK for Android. For backwards compatibility, the API also supports the namecom.google.android.maps.v2.API_KEY
. This legacy name allows authentication to the Android Maps API v2 only. An application can specify only one of the API key metadata names. If both are specified, the API throws an exception. -
In Android Studio, open your module-level
build.gradle
orbuild.gradle.kts
file and edit thesecrets
property. If thesecrets
property does not exist, add it.Edit the properties of the plugin to set
propertiesFileName
tosecrets.properties
, setdefaultPropertiesFileName
tolocal.defaults.properties
, and set any other properties.Groovy
secrets { // Optionally specify a different file name containing your secrets. // The plugin defaults to "local.properties" 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.*" }
Kotlin
secrets { // Optionally specify a different file name containing your secrets. // The plugin defaults to "local.properties" 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 dahil edin
Uygulamanızda Android için Navigasyon SDK'sını kullanıyorsanız uygulamanızın yasal uyarılar bölümünün bir parçası olarak atıf metni ve açık kaynak lisansları eklemeniz gerekir.
Gerekli ilişkilendirme metnini ve açık kaynak lisanslarını, Android için Gezinme SDK'sı zip dosyasında bulabilirsiniz:
NOTICE.txt
LICENSES.txt
Mobility veya Fleet Engine Deliveries müşterisiyseniz
Mobility veya Fleet Engine Deliveries müşterisiyseniz Mobilite belgelerinden faturalandırma hakkında bilgi edinebilirsiniz. İşlemleri kaydetme hakkında daha fazla bilgi için Faturalandırma ayarlarını yapma, Faturalandırılabilir işlemleri kaydetme, Raporlama ve Faturalandırılabilir işlemleri kaydetme (Android) bölümlerine göz atın.
Aksi belirtilmediği sürece bu sayfanın içeriği Creative Commons Atıf 4.0 Lisansı altında ve kod örnekleri Apache 2.0 Lisansı altında lisanslanmıştır. Ayrıntılı bilgi için Google Developers Site Politikaları'na göz atın. Java, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2024-06-26 UTC.
[] [] { "lastModified": "Son güncelleme tarihi: 2024-06-26 UTC.", "confidential": False }