Android Studio projenizi ayarlama

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.

  1. Gradle veya Maven yapılandırmanıza aşağıdaki bağımlılığı ekleyin. VERSION_NUMBER yer tutucusunu, Android için Navigation SDK'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 öğenize 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 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.gradle öğenize 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.properties dosyasını açın ve android.useDeprecatedNdk=true kodunu 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

    1. minSdkVersion değerini 24 veya daha yüksek bir değere ayarlayın.
    2. targetSdkVersion değerini 36 veya daha yüksek bir değere ayarlayın.
    3. dexOptions ayarı ekleyin. Bu ayar, javaMaxHeapSize değerini artırır.
    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ı, 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 daraltma ve kullanılmayan kaynakları kaldırmayı etkinleştirin. R8/ProGuard adımının çalışması ç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 resConfigs değerini ayarlayın. Son derleme için, gerçekten kullandığınız dillerde resConfigs değerini 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, çeşitli 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.
    • Android 7.3.0 ve sonraki sürümlerde Gradle 8.11.1, Android Gradle eklentisi 8.10.0 ve Desugar kitaplığı com.android.tools:desugar_jdk_libs_nio:2.0.3 kullanılmalıdır.
    • Desugar kitaplığının app modülü ve doğrudan Navigasyon SDK'sına bağlı olan tüm modüller için etkinleştirilmesi gerekir.

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:

  1. Android Studio'da, kök düzeyindeki build.gradle dosyanızı açın ve buildscript altındaki dependencies öğ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")
        }
    }
  2. Uygulama düzeyindeki build.gradle dosyanızı açın ve aşağıdaki kodu plugins öğ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")
    }
  3. Android Studio kullanıyorsanız projenizi Gradle ile senkronize edin.
  4. Proje düzeyindeki dizininizde local.properties dosyasını açın ve aşağıdaki kodu ekleyin. YOUR_API_KEY kısmını API anahtarınızla değiştirin.
    MAPS_API_KEY=YOUR_API_KEY
  5. API anahtarını AndroidManifest.xml dosyanıza ekleyebilir veya API anahtarını programatik olarak sağlayabilirsiniz.
    • API anahtarınızı AndroidManifest.xml'ya ekleyin:
      <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 platformundaki Android için Navigation SDK 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çin com.google.android.maps.v2.API_KEY adını da destekler. Bu eski ad yalnızca Android Maps 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 istisna oluşturur.

    • API anahtarını programatik olarak sağlama:

      Secrets Gradle Plugin, anahtarı BuildConfig sınıfında kullanılabilir hale getirir. Uygulamanızın başlatma işleminde (örneğin, Application.onCreate() yönteminizde) yöntemi aşağıdaki şekilde çağırın:

      Kotlin

      1. Aşağıdaki içe aktarma ifadelerini ekleyin:
        import com.google.android.libraries.navigation.NavigationApi
      2. Application.onCreate() yönteminize aşağıdakileri ekleyin:
        NavigationApi.setApiKey(BuildConfig.MAPS_API_KEY)

      Java

      1. Aşağıdaki içe aktarma ifadelerini ekleyin:
        import com.google.android.libraries.navigation.NavigationApi;
      2. Application.onCreate() yönteminize aşağıdakileri ekleyin:
        NavigationApi.setApiKey(BuildConfig.MAPS_API_KEY);
      Not: setApiKey() kullanırken aşağıdakileri göz önünde bulundurun:
      • Boş olmayan bir API anahtarı sağlayın.
      • Uygulamanızın kullanım süresi boyunca setApiKey() yalnızca bir kez çağrılmalıdır. Yöntem, birden fazla kez çağrılırsa IllegalStateException oluşturur.
      • setApiKey() gibi diğer Navigasyon SDK bileşenlerini başlatmadan önce Navigator işlevini çağırın.
      • Bu yöntemle sağladığınız anahtar, AndroidManifest.xml içindeki tüm API anahtarlarını geçersiz kılar.
      • Navigation SDK'nın 7.6 veya daha yeni bir sürümünü kullanın.

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 atıf metnini ve açık kaynak lisanslarını Android için Navigation SDK zip dosyasında bulabilirsiniz:

  • NOTICE.txt
  • LICENSES.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.