Configuración del proyecto

En esta guía, se enumeran los requisitos de configuración de compilación para usar el SDK de Navigation para Android. En las instrucciones, se da por sentado que tienes instalado un IDE de Android y que estás familiarizado con el desarrollo de Android.

Requisitos mínimos para usar el SDK de Navigation

  • Un proyecto de la consola de Google Cloud con el SDK de Navigation habilitado Para obtener información sobre el aprovisionamiento, comunícate con tu representante de Google Maps Platform.

  • Tu app debe orientarse al SDK de Navigation (versión 16) o una posterior.

  • Para ejecutar una app compilada con el SDK de Navigation, el dispositivo Android debe tener instalados y habilitados los Servicios de Google Play.

  • Se deben agregar las atribuciones y el texto de licencias a la app.

Configurar tus proyectos: proyecto de la consola de Google Cloud y proyecto de Android

Antes de compilar o probar una app, debes crear un proyecto de la consola de Cloud y agregar las credenciales de la clave de API. El proyecto debe tener aprovisionamiento para acceder al SDK de Navigation. Todas las claves dentro del proyecto de la consola de Cloud tienen el mismo acceso al SDK de Navigation. Una clave puede tener más de un proyecto de desarrollo asociado. Si ya tienes un proyecto de la consola, puedes agregar una clave a tu proyecto actual.

Para configurar

  1. En tu navegador web favorito, como Chrome, accede a la consola de Google Cloud y crea tu proyecto de la consola de Google Cloud.
  2. En tu IDE, como Android Studio, crea un proyecto de desarrollo de apps para Android y anota el nombre del paquete.
  3. Comunícate con tu representante de Google Maps Platform para proporcionarle acceso al SDK de Navigation para tu proyecto de la consola de Google Cloud.
  4. En el panel de la consola de Google Cloud en tu navegador web, crea credenciales para generar una clave de API con restricciones.
  5. En la página de claves de API, haz clic en Apps para Android en el área *Restricciones de aplicaciones.
  6. Haz clic en Agregar el nombre del paquete y la huella digital y, luego, ingresa el nombre del paquete de tu proyecto de desarrollo y la huella digital SHA-1 para esa clave.
  7. Haz clic en Guardar.

Cómo agregar el SDK de Navigation a tu app

El SDK de Navigation está disponible como un paquete AAR. Después de crear el proyecto de desarrollo, puedes integrar el SDK. En estas instrucciones, se da por sentado el uso de Android Studio para tu IDE.

  1. Descarga y descomprime el archivo ZIP del SDK de Navigation.

  2. En Android Studio, abre un proyecto y agrega el paquete de Servicios de Google Play con SDK Manager.

  3. En el directorio de archivos ZIP, copia libs/google_navigation.aar en el directorio app/libs de tu proyecto.

Configura la compilación

Después de crear el proyecto, puedes establecer la configuración para una compilación exitosa y el uso del SDK de Navigation.

Actualizar propiedades locales

  • En la carpeta Gradle Scripts, abre el archivo local.properties y agrega android.useDeprecatedNdk=true.

Cómo actualizar la secuencia de comandos de compilación de Gradle

  • Abre el archivo build.gradle (Module:app) y usa los siguientes lineamientos para actualizar la configuración a fin de cumplir con los requisitos del SDK de Navigation. Además, considera configurar las opciones de optimización.

    Configuración obligatoria para el SDK de Navigation

    1. Establece minSdkVersion en 16 o más.
    2. Configura "targetSDKversion" para la API 21 para cambiar el control de permisos a la API. Para versiones anteriores, debías incluir explícitamente flujos de permisos en tu app.
    3. Agrega un parámetro de configuración de dexOptions que aumente el javaMaxHeapSize.
    4. Establece la ubicación para otras bibliotecas.
    5. Agrega repositories y dependencies para el SDK de Navigation.
    6. Reemplaza los números de versión de las dependencias por las versiones más recientes disponibles.

    Parámetros de configuración opcionales para reducir el tiempo de compilación

    • Para mejorar el tiempo de compilación de tu app
    • Para optimizar el uso de las dependencias, habilita ProGuard y la reducción de recursos. ProGuard quita de las dependencias el código y los recursos que no se usan. Si el paso de ProGuard se ejecuta por demasiado tiempo, considera habilitar multidex para el trabajo de desarrollo.
    • Reduce la cantidad de traducciones de idiomas que se incluyen en la compilación. Configura resConfigs para un idioma durante el desarrollo. Para la compilación final, configura “resConfigs” para los lenguajes que realmente usas. De forma predeterminada, Gradle incluye cadenas de recursos para todos los idiomas compatibles con el SDK de Navigation.

A continuación, se muestra un ejemplo de la secuencia de comandos de compilación de Gradle para la aplicación.

  
  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'
  }

Cómo actualizar el manifiesto de tu app

  1. En la carpeta del manifiesto, abre el archivo AndroidManifest.xml.

  2. Agrega tu clave de API dentro del elemento <application>. Debes usar la clave de API definida en el proyecto de la consola de Google Cloud que se describe en el paso anterior.

    En el manifiesto parcial que se muestra en este ejemplo, debes reemplazar YOUR_API_KEY por tu propia clave de API:

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

    En un manifiesto completo a continuación, se muestra la configuración de la clave de API y el intent vacío para el MainActivity que se ejecuta al inicio.

    
      <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>
    
        ```
    

Incluye las atribuciones requeridas en tu aplicación

Si usas el SDK de Navigation para Android en tu app, debes incluir texto de atribución y licencias de código abierto como parte de la sección de avisos legales de tu app.

Puedes encontrar el texto de atribución y las licencias de código abierto necesarios en el archivo ZIP del SDK de Navigation para Android:

  • NOTICE.txt
  • LICENSES.txt

Próximo paso

Obtén información sobre cómo trazar una ruta.