Android Studio projenizi ayarlama

Bu sayfada, Gezinme SDK'sının nasıl entegre edileceği açıklanmaktadır nasıl kullanacaksınız.

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.

  1. 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 öğenize 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>
    
  2. Haritalar SDK'sını kullanan bağımlılıklarınız varsa ve Haritalar SDK'sını temel alan, beyan edilen her bir bağımlılığa bağımlılık.

    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 cihazınıza şunları 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, oluşturduğunuz bir Gezinme SDK'sı başarıyla geliştirildi ve kullanıldı.

Yerel mülkleri güncelleme

  • 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ı 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 için gerekli ayarlar

    1. minSdkVersion öğesini 23 veya daha yüksek bir değere ayarlayın.
    2. targetSdkVersion öğesini 34 veya daha yüksek bir değere ayarlayın.
    3. javaMaxHeapSize değerini artıran bir dexOptions ayarı ekleyin.
    4. Ek kitaplıkların konumunu ayarlayın.
    5. Navigasyon SDK'sı için repositories ve dependencies öğelerini ekleyin.
    6. Bağımlılıklardaki sürüm numaralarını en son sürüm numarasıyla değiştirin kullanılabilir.

    Derleme süresini kısaltmak için isteğe bağlı ayarlar

    • Kod ve kaynak küçültmeyi etkinleştirin bağımlılıklardan kullanılmayan kodu ve kaynakları kaldırmak için R8/ProGuard kullanarak. Eğer R8/ProGuard adımının çalışması çok fazla zaman alıyor. multidex üzerine konuşacağız.
    • Derlemeye dahil edilen dil çevirilerinin sayısını azaltın: Set Geliştirme sırasında bir dil için resConfigs. Nihai derleme için kullandığınız diller için resConfigs değerini ayarlayın. Varsayılan olarak Gradle tarafından desteklenen tüm dillere ilişkin kaynak dizelerini içerir Gezinme SDK'sı.

    Java8 desteği için şeker azaltma ekleme

    • Uygulamanızı Android Gradle eklentisi 4.0.0 veya sonraki bir sürümü kullanarak derliyorsanız eklenti, çeşitli Java 8 dil API'lerinin kullanılması için desteği genişletir. Bkz. Java 8 desugaring destek konulu videomuzu izleyin. Nasıl yapıldığını öğrenmek için aşağıdaki örnek derleme komut dosyası snippet'ine derleme ve bağımlılık seçenekleridir.
    • 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 uyumlu (Android 6.0.0 ve üzeri sürümler için Navigasyon SDK'sı ile)
    • app modülü ve modülünü kullanabilirsiniz.

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 ekleyin

Bu bölümde, web siteleri tarafından güvenli bir şekilde referans verilebilmesi için API anahtarınızı nasıl depolayacağınız açıklanmaktadır. en iyi şekilde yararlanabilirsiniz. API anahtarınızı sürüm kontrol sisteminize kontrol etmemeniz gerekir, bu nedenle dosyayı, uygulamanızın kök dizininde bulunan secrets.properties dosyasında depolayarak belirler. secrets.properties dosyası hakkında daha fazla bilgi için bkz. Gradle özellikleri dosyaları.

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

Android için Secrets Gradle eklentisini Google Haritalar projenize yüklemek üzere:

  1. Android Studio'da üst düzey build.gradle.kts veya build.gradle dosyasını seçin ve aşağıdaki kodu altındaki dependencies öğesine ekleyin buildscript.

    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"
        }
    }
    
  2. Modül düzeyindeki build.gradle.kts veya build.gradle dosyanızı açıp plugins öğ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'
    }
  3. Modül düzeyindeki build.gradle.kts veya build.gradle dosyanızda targetSdk ve compileSdk değerlerinin 34 olarak ayarlandığından emin olun.
  4. Dosyayı kaydedin ve projenizi Gradle ile senkronize edin.
  5. secrets.properties dosyasını en üst düzey dizininizde açın ve şunu ekleyin: aşağıdaki kodu kullanabilirsiniz. YOUR_API_KEY kısmını API anahtarınızla değiştirin. secrets.properties, bir 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
  6. Dosyayı kaydedin.
  7. 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 ve sağlamak için henüz yerel olarak bir secrets.properties dosyası oluşturmadınız API anahtarı.

  8. Dosyayı kaydedin.
  9. AndroidManifest.xml dosyanızda şuna gidin: com.google.android.geo.API_KEY ve android:value attribute öğesini güncelleyin. <meta-data> etiketi mevcut değilse bunu <application> etiketi.
    <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.kts or build.gradle 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.

    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 dahil edin

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 atıf metnini ve açık kaynak lisanslarını şurada bulabilirsiniz: Android zip dosyası için gezinme SDK'sı:

  • NOTICE.txt
  • LICENSES.txt

Mobility veya Fleet Engine Deliveries müşterisiyseniz

Mobility veya Fleet Engine Deliveries müşterisiyseniz aşağıdaki konular hakkında daha fazla bilgi edinin: Mobilite belgelerinde faturalandırma. Daha fazla bilgi için işlemleri kaydetmeye devam etmek için Faturalandırma ayarlarını yapın, Faturalandırılabilir işlemleri kaydetme, Raporlama ve Faturalandırılabilir işlemleri kaydedin (Android).