Configuração do projeto

Este guia lista os requisitos de configuração do build para usar o SDK do Navigation para Android. As instruções presumem que você tenha um ambiente de desenvolvimento integrado do Android instalado e conheça o desenvolvimento nesse sistema.

Requisitos mínimos para usar o SDK do Navigation

  • Um projeto do Console do Google Cloud com o SDK do Navigation ativado. Para o provisionamento, pergunte ao seu representante da Plataforma Google Maps.

  • Seu app precisa ser direcionado ao SDK do Navigation (versão 16) ou mais recente.

  • Para executar um app criado com o SDK do Navigation, o dispositivo Android precisa ter o Google Play Services instalado e ativado.

  • Os textos de atribuições e licenças precisam ser adicionados ao app.

Configurar seus projetos: projeto do console do Google Cloud e projeto Android

Antes de criar ou testar um app, você precisa criar um projeto do Console do Cloud e adicionar credenciais de chave de API. O projeto precisa ter provisionamento para acessar o SDK de navegação. Todas as chaves no projeto do Console do Cloud recebem o mesmo acesso ao SDK do Navigation. Uma chave pode ter mais de um projeto de desenvolvimento associado a ela. Se você já tem um projeto no console, é possível adicionar uma chave ao projeto atual.

Para configurar

  1. No seu navegador da Web favorito, como o Chrome, faça login no Console do Google Cloud e crie seu projeto do Console do Google Cloud.
  2. No seu IDE, como o Android Studio, crie um projeto de desenvolvimento de apps Android e anote o nome do pacote.
  3. Entre em contato com seu representante da Plataforma Google Maps para dar acesso ao SDK do Navigation para seu projeto do console do Google Cloud.
  4. No painel do Console do Google Cloud no navegador da Web, crie credenciais para gerar uma chave de API com restrições.
  5. Na página da chave de API, clique em "Apps Android" na área *Restrições do aplicativo.
  6. Clique em Adicionar nome do pacote e impressão digital e, em seguida, insira o nome do pacote do projeto de desenvolvimento e a impressão digital SHA-1 dessa chave.
  7. Clique em Salvar.

Adicionar o SDK do Navigation ao seu app

O SDK do Navigation está disponível como um pacote aar. Depois de criar o projeto de desenvolvimento, será possível integrar o SDK. Estas instruções pressupõem o uso do Android Studio para seu ambiente de desenvolvimento integrado.

  1. Faça o download e descompacte o arquivo ZIP do SDK do Navigation.

  2. No Android Studio, abra um projeto e adicione o pacote Google Play Services usando o SDK Manager.

  3. No diretório do arquivo ZIP, copie libs/google_navigation.aar para o diretório app/libs do projeto.

Configure o build

Depois de criar o projeto, você pode definir as configurações para um build e uso bem-sucedidos do SDK do Navigation.

Atualizar propriedades locais

  • Na pasta "Gradle Scripts", abra o arquivo local.properties e adicione android.useDeprecatedNdk=true.

Atualizar o script de build do Gradle

  • Abra o arquivo build.gradle (Module:app) e use as diretrizes abaixo para atualizar as configurações e atender aos requisitos do SDK do Navigation. Além disso, considere definir as opções de otimização.

    Configurações necessárias para o SDK do Navigation

    1. Defina minSdkVersion como 16 ou mais.
    2. "targetSDKversion" foi definido para a API 21 para transferir o gerenciamento de permissões para a API. Para versões anteriores, era preciso incluir explicitamente os fluxos de permissões no app.
    3. Adicione uma configuração dexOptions para aumentar o javaMaxHeapSize.
    4. Defina o local de outras bibliotecas.
    5. Adicione repositories e dependencies ao SDK do Navigation.
    6. Substitua os números de versão nas dependências pelas versões mais recentes disponíveis.

    Configurações opcionais para diminuir o tempo de build

    • Para melhorar o tempo de build do app
    • Para otimizar o uso das dependências, ative o ProGuard e a redução de recursos. O ProGuard remove o código e os recursos não utilizados das dependências. Se a etapa do ProGuard for muito longa, ative o multidex para trabalhos de desenvolvimento.
    • Reduza o número de traduções de idiomas incluídas no build. Defina resConfigs para um idioma durante o desenvolvimento. Para a versão final, defina "resConfigs" para os idiomas que você realmente usa. Por padrão, o Gradle inclui strings de recursos para todos os idiomas com suporte do SDK do Navigation.

Confira abaixo um exemplo do script de build do Gradle para o aplicativo.

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

Atualizar o manifesto do app

  1. Na pasta de manifesto, abra o arquivo AndroidManifest.xml.

  2. Adicione sua chave de API ao elemento <application>. Use a chave de API definida no projeto do console do Google Cloud descrito na etapa acima.

    Em um manifesto parcial mostrado neste exemplo, substitua YOUR_API_KEY pela sua própria chave de API:

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

    Um manifesto completo abaixo mostra a configuração da chave de API e o intent vazio para o MainActivity executado na inicialização.

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

Incluir as atribuições necessárias no app

Se você usa o SDK do Navigation para Android no seu app, é necessário incluir texto de atribuição e licenças de código aberto como parte da seção de avisos legais do app.

O texto de atribuição necessário e as licenças de código aberto estão disponíveis no arquivo ZIP do SDK do Navigation para Android:

  • NOTICE.txt
  • LICENSES.txt

Próxima etapa

Saiba como plotar um trajeto.