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
- En tu navegador web favorito, como Chrome, accede a la consola de Google Cloud y crea tu proyecto de la consola de Google Cloud.
- En tu IDE, como Android Studio, crea un proyecto de desarrollo de apps para Android y anota el nombre del paquete.
- 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.
- En el panel de la consola de Google Cloud en tu navegador web, crea credenciales para generar una clave de API con restricciones.
- En la página de claves de API, haz clic en Apps para Android en el área *Restricciones de aplicaciones.
- 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.
- 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.
Descarga y descomprime el archivo ZIP del SDK de Navigation.
En Android Studio, abre un proyecto y agrega el paquete de Servicios de Google Play con SDK Manager.
En el directorio de archivos ZIP, copia
libs/google_navigation.aar
en el directorioapp/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 agregaandroid.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
- Establece
minSdkVersion
en 16 o más. - 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.
- Agrega un parámetro de configuración de
dexOptions
que aumente eljavaMaxHeapSize
. - Establece la ubicación para otras bibliotecas.
- Agrega
repositories
ydependencies
para el SDK de Navigation. - 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.
- Establece
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
En la carpeta del manifiesto, abre el archivo
AndroidManifest.xml
.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 elMainActivity
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.