Projenizi oluşturun

Bu kılavuzda, Android 5.0.0 ve üzeri sürümler için Navigasyon SDK'sını kullanmayla ilgili derleme yapılandırması gereksinimleri açıklanmaktadır.

Talimatlarda Android IDE'nin yüklü olduğu ve Android geliştirme konusunda bilgi sahibi olduğunuz varsayılır.

Gezinme SDK'sı kullanımı için minimum gereksinimler

Bu şartlar, Android için Navigasyon SDK'sının 5.0.0 ve sonraki sürümlerinde geçerlidir.

  • Gezinme SDK'sinin etkin olduğu bir Google Cloud Console projesi. Temel hazırlık için Google Haritalar Platformu temsilcinizden bilgi isteyin.

  • Uygulamanız, Android sürümlerini aşağıdaki şekilde belirtmelidir:

    • target sürüm, Android 13 (API düzeyi 33) veya sonraki sürüm olmalıdır.
    • minimum sürüm, Android 6 (API düzeyi 23) veya sonraki sürüm olmalıdır.
  • Gezinme SDK'si ile oluşturulmuş bir uygulamayı çalıştırmak için Android cihazın aşağıdaki gereksinimleri karşılaması gerekir:

  • İlişkilendirmeler ve lisanslama metni uygulamaya eklenmelidir.

Projelerinizi oluşturun: Cloud Console projesi ve Android projesi

Bir uygulamayı derlemeden veya test etmeden önce bir Cloud Console projesi oluşturmanız ve API anahtarı kimlik bilgileri eklemeniz gerekir. Projede, Navigation SDK'ya erişmek için temel hazırlık yapılmış olmalıdır. Cloud Console projesindeki tüm anahtarlara Gezinme 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

  1. En sevdiğiniz web tarayıcısında Cloud Console'da oturum açın ve Cloud Console projenizi oluşturun.
  2. IDE (ör. Android Studio) bir Android uygulaması geliştirme projesi oluşturun ve paket adını not edin.
  3. Cloud Console projeniz için Navigasyon SDK'sına erişim izni vermek amacıyla Google Haritalar Platformu temsilcinizle iletişime geçin.
  4. Web tarayıcınızdaki Cloud Console kontrol panelinde, kısıtlamalı API anahtarı oluşturmak için kimlik bilgileri oluşturun.
  5. API anahtarı sayfasında, Uygulama kısıtlamaları alanında Android uygulamaları'nı tıklayın.
  6. Paket adını ve parmak izini ekle'yi tıklayıp geliştirme projenizin paket adını ve bu anahtar için SHA-1 parmak izini girin.
  7. Kaydet'i tıklayın.

Gezinme SDK'sını projenize ekleyin

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.

Aşağıda, projenize Gezinme SDK'sını eklemenin en basit ve önerilen yolu olan google() Maven deposu kullanılmaktadır.

  1. Android için istediğiniz Gezinme SDK'sı sürümü ile VERSION_NUMBER yer tutucusunu değiştirerek aşağıdaki bağımlılığı Gradle veya Maven yapılandırmanıza ekleyin.

    Gradle

    Modül düzeyindeki build.gradle bölümünüze 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 üst düzey build.gradle öğenize 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 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 herhangi bir bağımlılığınız varsa bu bağımlılığı Google Haritalar SDK'sına dayanan beyan edilen her bağımlılıkta 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, Navigasyon SDK'sını başarılı bir şekilde oluşturmak ve kullanmak için ayarları yapılandırabilirsiniz.

Yerel mülkleri güncelle

  • Gradle Komut Dosyaları klasöründe local.properties dosyasını açın ve android.useDeprecatedNdk=true dosyasını ekleyin.

Gradle derleme komut dosyasını güncelleme

  • build.gradle (Module:app) dosyasını açın ve ayarları, Gezinme SDK'sı gereksinimlerini karşılayacak şekilde güncellemek ve optimizasyon seçeneklerini belirlemek için aşağıdaki yönergeleri kullanın.

    Navigasyon SDK'sı için gerekli ayarlar

    1. minSdkVersion değerini 23 veya daha yüksek bir değere ayarlayın.
    2. targetSdkVersion öğesini 33 veya üstüne ayarlayın.
    3. javaMaxHeapSize değerini artıran bir dexOptions ayarı ekleyin.
    4. Ek kitaplıkların konumunu ayarlayın.
    5. Gezinme SDK'si için repositories ve dependencies öğelerini ekleyin.
    6. 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 kod ve kaynakları bağımlılıklardan kaldırmak için R8/ProGuard kullanarak kod küçültmeyi ve kaynak daraltmayı etkinleştirin. R8/ProGuard adımının çalışması ç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 derlemede, gerçekten kullandığınız diller için resConfigs ayarını yapın. Varsayılan olarak Gradle, Gezinme SDK'sı tarafından desteklenen tüm diller için kaynak dizeleri içerir.

    Java8 desteği için şeker giderme ekleme

    • Uygulamanızı Android Gradle eklentisi 4.0.0 veya daha üstünü kullanarak oluşturuyorsanız eklenti, çeşitli Java 8 dili API'leri kullanma desteğini genişletir. Daha fazla bilgi için Java 8 şeker giderme desteği sayfasına göz atın. Derleme ve bağımlılık seçeneklerinin nasıl çalıştığını görmek için aşağıdaki örnek derleme komut dosyası snippet'ine bakın.

Aşağıda, uygulama için Gradle derleme komut dosyası örneği verilmiştir. Kullandığınız Navigasyon SDK'sının sürümü bu belgenin biraz ilerisinde veya gerisinde 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 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 ekleme

Bu bölümde, uygulamanızın güvenli bir şekilde başvuruda bulunabilmesi için API anahtarınızı nasıl depolayacağınız açıklanmaktadır. API anahtarınızı sürüm kontrol sisteminize kontrol etmemelisiniz. 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 özelliği dosyaları bölümüne bakın.

Bu görevi kolaylaştırmak için Android için Secrets Gradle Plugin'i kullanmanızı öneririz.

Google Haritalar projenize Android için Secrets Gradle Eklentisi'ni yüklemek için:

  1. Android Studio'da üst düzey build.gradle veya build.gradle.kts dosyanızı açın ve aşağıdaki kodu buildscript altındaki dependencies öğ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")
        }
    }
    
  2. Modül düzeyindeki build.gradle dosyanızı açın ve aşağıdaki kodu plugins öğesine ekleyin.

    Modern

    plugins {
        // ...
        id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
    }

    Kotlin

    plugins {
        id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
    }
  3. Modül düzeyindeki build.gradle dosyanızda targetSdk ve compileSdk öğelerinin 34 olarak ayarlandığından emin olun.
  4. Dosyayı kaydedin ve projenizi Gradle ile senkronize edin.
  5. Üst düzey dizininizde secrets.properties dosyasını açın, ardından aşağıdaki kodu ekleyin. YOUR_API_KEY öğesini API anahtarınızla değiştirin. secrets.properties, sürüm kontrol sistemine kontrol edilemiyor. Bu nedenle anahtarınızı bu dosyada saklayın.
    MAPS_API_KEY=YOUR_API_KEY
  6. Dosyayı kaydedin.
  7. local.defaults.properties dosyasını üst düzey dizininizde, secrets.properties dosyasıyla aynı klasörde olacak şekilde oluşturun ve aşağıdaki kodu ekleyin.

    MAPS_API_KEY=DEFAULT_API_KEY

    Bu dosyanın amacı, secrets.properties dosyası bulunamazsa derlemelerin başarısız olmaması için API anahtarı için yedek konum 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 bir secrets.properties dosyası oluşturmadıysanız bu durum görülebilir.

  8. Dosyayı kaydedin.
  9. AndroidManifest.xml dosyanızda com.google.android.geo.API_KEY bölümüne gidip android:value attribute değerini güncelleyin. <meta-data> etiketi yoksa bunu <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 name com.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.

  10. In Android Studio, open your module-level build.gradle or build.gradle.kts file and edit the secrets property. If the secrets property does not exist, add it.

    Edit the properties of the plugin to set propertiesFileName to secrets.properties, set defaultPropertiesFileName to local.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.*"
    }
            

Gerekli ilişkilendirmeleri uygulamanıza dahil edin

Uygulamanızda Android için Gezinme SDK'sını kullanıyorsanız uygulamanızın yasal uyarılar bölümüne 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

Mobilite veya Fleet Engine Teslimatları müşterisiyseniz

Mobility veya Fleet Engine Deliveries müşterisiyseniz Mobility 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.