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 esteja familiarizado com o desenvolvimento em Android.

Requisitos mínimos para usar o SDK do Navigation

  • Um projeto do Console do Google Cloud com o SDK de navegação ativado. Para provisionar, fale com seu representante da Plataforma Google Maps.

  • O 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.

  • É necessário adicionar atribuições e textos de licenciamento ao app.

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

Antes de criar ou testar um app, é preciso criar um projeto do Console do Cloud e adicionar credenciais de chave de API. O projeto precisa ter provisionamento para acessar o SDK do Navigation. 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á tiver um projeto no console, poderá adicionar uma chave ao seu projeto atual.

Para configurar

  1. Em um 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 conceder acesso ao SDK de navegação do 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 o nome do pacote e a impressão digital e insira o nome do pacote do projeto de desenvolvimento e a impressão digital SHA-1 para essa 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, é possível integrar o SDK. Essas instruções consideram 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 do 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. Também é recomendável definir as opções de otimização.

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

    1. Defina minSdkVersion como 16 ou mais.
    2. Defina "targetSDKversion" da API 21 para mudar o processamento de permissões para a API. Para versões anteriores, é necessário incluir explicitamente os fluxos de permissões no app.
    3. Adicione uma configuração dexOptions que aumente a javaMaxHeapSize.
    4. Defina o local das bibliotecas adicionais.
    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 código e recursos não utilizados das dependências. Se a etapa do ProGuard for executada muito longa, ative o multidex para o trabalho de desenvolvimento.
    • Reduza o número de traduções de idiomas incluídas no build. Defina resConfigs para um idioma durante o desenvolvimento. Para o build final, defina "resConfigs" para as linguagens que você realmente usa. Por padrão, o Gradle inclui strings de recursos para todos os idiomas com suporte no SDK do Navigation.

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

  
  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 do manifesto, abra o arquivo AndroidManifest.xml.

  2. Adicione a chave de API ao elemento <application>. É necessário usar 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 a intent vazia para a MainActivity executada 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 seu 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 e as licenças de código aberto necessários estão disponíveis no arquivo ZIP do SDK do Navigation para Android:

  • NOTICE.txt
  • LICENSES.txt

Próxima etapa

Saiba como traçar um trajeto.