Configurazione del progetto

Questa guida elenca i requisiti di configurazione della build per l'utilizzo dell'SDK di navigazione per Android. Le istruzioni presuppongono che tu abbia installato un IDE Android e dimestichezza con lo sviluppo Android.

Requisiti minimi per l'utilizzo dell'SDK di navigazione

  • Un progetto della console Google Cloud con l'SDK di navigazione abilitato. Per il provisioning, rivolgiti al tuo rappresentante di Google Maps Platform.

  • La tua app deve avere come target l'SDK di navigazione (versione 16) o successive.

  • Per eseguire un'app creata con l'SDK di navigazione, sul dispositivo Android deve essere installato e attivato Google Play Services.

  • Il testo delle attribuzioni e della licenza deve essere aggiunto all'app.

Configurare i progetti: progetto Google Cloud Console e progetto Android

Prima di poter creare o testare un'app, devi creare un progetto della console Cloud e aggiungere le credenziali della chiave API. Il progetto deve disporre del provisioning per accedere a Navigatore SDK. A tutte le chiavi all'interno del progetto della console Cloud viene concesso lo stesso accesso a Navigation SDK. A una chiave può essere associato più di un progetto di sviluppo. Se hai già un progetto della console, puoi aggiungere una chiave al progetto attuale.

Per configurare

  1. Nel tuo browser web preferito, ad esempio Chrome, accedi alla console Google Cloud e crea il tuo progetto Google Cloud Console.
  2. Nel tuo IDE, ad esempio Android Studio, crea un progetto di sviluppo di app Android e prendi nota del nome del pacchetto.
  3. Contatta il rappresentante di Google Maps Platform per fornire l'accesso all'SDK di navigazione per il tuo progetto nella console Google Cloud.
  4. Nella dashboard di Google Cloud Console nel browser web, crea le credenziali per generare una chiave API con restrizioni.
  5. Nella pagina Chiave API, fai clic su App Android nell'area *Limitazioni delle applicazioni.
  6. Fai clic su Aggiungi il nome del pacchetto e la fingerprint, quindi inserisci il nome del pacchetto del progetto di sviluppo e l'impronta SHA-1 per la chiave.
  7. Fai clic su Salva.

Aggiungi l'SDK di navigazione alla tua app

L'SDK di navigazione è disponibile come pacchetto aar. Dopo aver creato il progetto di sviluppo, puoi integrare l'SDK. In queste istruzioni si presume l'utilizzo di Android Studio per il tuo IDE.

  1. Scarica e decomprimi il file ZIP dell'SDK di navigazione.

  2. In Android Studio, apri un progetto e aggiungi il pacchetto Google Play Services utilizzando il gestore SDK.

  3. Dalla directory del file ZIP, copia libs/google_navigation.aar nella directory app/libs del tuo progetto.

Configura la build

Dopo aver creato il progetto, puoi configurare le impostazioni per una build e l'utilizzo corretti dell'SDK di navigazione.

Aggiorna proprietà locali

  • Nella cartella Gradle Scripts, apri il file local.properties e aggiungi android.useDeprecatedNdk=true.

Aggiorna lo script di build Gradle

  • Apri il file build.gradle (Module:app) e segui le linee guida che seguono per aggiornare le impostazioni in modo da soddisfare i requisiti dell'SDK di navigazione e valutare anche la possibilità di impostare le opzioni di ottimizzazione.

    Impostazioni obbligatorie per l'SDK Navigazione

    1. Imposta minSdkVersion su 16 o un valore superiore.
    2. Imposta "targetSDKversion" per l'API 21 per spostare la gestione delle autorizzazioni all'API. Per le versioni precedenti, devi includere esplicitamente i flussi di autorizzazioni nella tua app.
    3. Aggiungi un'impostazione dexOptions che aumenta il valore di javaMaxHeapSize.
    4. Imposta la località per le librerie aggiuntive.
    5. Aggiungi repositories e dependencies per l'SDK di navigazione.
    6. Sostituisci i numeri di versione nelle dipendenze con le versioni più recenti disponibili.

    Impostazioni facoltative per ridurre i tempi di compilazione

    • Per migliorare il tempo di creazione della tua app
    • Per ottimizzare l'utilizzo delle dipendenze, abilita ProGuard e la riduzione delle risorse. ProGuard rimuove le risorse e il codice inutilizzati dalle dipendenze. Se il passaggio ProGuard è troppo lungo, valuta la possibilità di attivare multidex per le attività di sviluppo.
    • Riduci il numero di traduzioni in diverse lingue incluse nella build. Imposta resConfigs per un linguaggio durante lo sviluppo. Per la build finale, imposta "resConfigs" per le lingue che usi effettivamente. Per impostazione predefinita, Gradle include stringhe di risorse per tutte le lingue supportate dall'SDK di navigazione.

Di seguito è riportato un esempio dello script di build Gradle per l'applicazione.

  
  apply plugin: 'com.android.application'

  ext {
      supportVersion = "27.1.1"
      lifecycle_version = "1.1.1"
  }

  android {
      compileSdkVersion 27
      buildToolsVersion '28.0.3'

      defaultConfig {
          applicationId "com.example.navigationapidemo"
          minSdkVersion 16
          targetSdkVersion 27
          versionCode 1
          versionName "1.0"
          resConfigs "en"
      }

      dexOptions {
          // This increases the amount of memory available to the dexer. This is
          // required to build apps using the Navigation SDK.
          javaMaxHeapSize "4g"
      }
      buildTypes {
          all {
              minifyEnabled true
              proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
          }
      }
      compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
      }
  }

  // Specify where to find additional libraries and the location of google_navigation.aar file.
  repositories {
      flatDir {
          dirs 'libs'
      }
      google()
  }
  dependencies {
      api fileTree(include: ['*.jar'], dir: 'libs')

      // Include the Google Navigation API library
      api(name: 'google_navigation', ext: 'aar')

      // These dependencies are required for the Navigation API to function
      // properly at runtime.
      api "org.chromium.net:cronet-fallback:69.3497.100"
      // Optional for Cronet users:
      // api "org.chromium.net:cronet-api:69.3497.100"
      api "com.android.support:appcompat-v7:${supportVersion}"
      api "com.android.support:cardview-v7:${supportVersion}"
      api "com.android.support:design:${supportVersion}"
      api "com.android.support:mediarouter-v7:${supportVersion}"
      api "com.android.support:preference-v7:${supportVersion}"
      api "com.android.support:recyclerview-v7:${supportVersion}"
      api 'com.github.bumptech.glide:glide:4.9.0'
      api 'com.github.bumptech.glide:okhttp-integration:4.9.0'
      api "android.arch.lifecycle:common-java8:$lifecycle_version"
      api 'com.google.android.datatransport:transport-api:2.2.0'
      api 'com.google.android.datatransport:transport-backend-cct:2.2.0'
      api 'com.google.android.datatransport:transport-runtime:2.2.0'
      api 'joda-time:joda-time:2.9.9'

      // The Navigation SDK does not require the
      // Places API; however, the demo app for does.
      api 'com.google.android.gms:play-services-places:10.2.1'

      annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
  }

Aggiorna il file manifest dell'app

  1. Nella cartella Manifest, apri il file AndroidManifest.xml.

  2. Aggiungi la chiave API all'interno dell'elemento <application>. Devi utilizzare la chiave API definita nel progetto della console Google Cloud descritto nel passaggio sopra.

    In un manifest parziale mostrato in questo esempio, dovresti sostituire YOUR_API_KEY con la tua chiave API:

          <meta-data
              android:name="com.google.android.geo.API_KEY"
              android:value="YOUR_API_KEY"/>
    

    Il file manifest completo di seguito mostra l'impostazione per la chiave API e il valore intent vuoto per MainActivity in esecuzione all'avvio.

    
      <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.navigationapidemo" >
    
          <application
              android:allowBackup="true"
              android:icon="@mipmap/ic_launcher"
              android:label="@string/app_name"
              android:supportsRtl="true"
              android:theme="@style/_AppTheme" >
    
              <meta-data
                  android:name="com.google.android.geo.API_KEY"
                  android:value="YOUR_API_KEY"/>
    
              <activity android:name=".MainActivity" >
                  <intent-filter>
                      <action android:name="android.intent.action.MAIN" />
                      <category android:name="android.intent.category.LAUNCHER" />
                  </intent-filter>
              </activity>
          </application>
        </manifest>
    
        ```
    

Includi le attribuzioni richieste nella tua app

Se utilizzi l'SDK Navigation per Android nella tua app, devi includere il testo dell'attribuzione e le licenze open source nella sezione delle note legali dell'app.

Puoi trovare il testo di attribuzione e le licenze open source richiesti nel file ZIP dell'SDK di navigazione per Android:

  • NOTICE.txt
  • LICENSES.txt

Passaggio successivo

Scopri come tracciare un percorso.