本指南列出了使用 Navigation SDK for Android 的 build 配置要求。以下说明假定您已安装 Android IDE 并且熟悉 Android 开发。
使用 Navigation SDK 的最低要求
启用了 Navigation SDK 的 Google Cloud Console 项目。如需预配,请咨询您的 Google Maps Platform 代表。
您的应用必须以 Navigation SDK(版本 16)或更高版本为目标平台。
如需运行使用 Navigation SDK 构建的应用,Android 设备必须安装并启用 Google Play 服务。
必须在应用中添加提供方说明和许可文本。
设置您的项目:Google Cloud 控制台项目和 Android 项目
您需要先创建 Cloud 控制台项目并添加 API 密钥凭据,然后才能构建或测试应用。项目必须具有预配才能访问 Navigation SDK。Cloud Console 项目中的所有密钥都将获得对 Navigation SDK 的相同访问权限。一个密钥可以关联多个开发项目。如果您已有控制台项目,则可以向当前项目添加密钥。
要进行设置
- 在您喜爱的网络浏览器(例如 Chrome)中,登录 Google Cloud Console 并创建 Google Cloud Console 项目。
- 在您的 IDE(例如 Android Studio)中,创建一个 Android 应用开发项目并记下软件包名称。
- 如需为您的 Google Cloud 控制台项目提供 Navigation SDK 的访问权限,请与您的 Google Maps Platform 代表联系。
- 在网络浏览器中的 Google Cloud 控制台信息中心内,创建凭据以生成具有限制的 API 密钥。
- 在 API 密钥页面,点击 *应用限制区域中的 Android 应用。
- 点击添加软件包名称和指纹,然后输入开发项目的软件包名称和该密钥的 SHA-1 指纹。
- 点击保存。
将 Navigation SDK 添加到您的应用
Navigation SDK 以 aar 软件包的形式提供。创建开发项目后,您可以集成 SDK。以下说明假定您在 IDE 中使用 Android Studio。
下载并解压缩 Navigation SDK ZIP 文件。
在 Android Studio 中,打开一个项目,然后使用 SDK 管理器添加 Google Play 服务软件包。
从 zip 文件目录中,将
libs/google_navigation.aar
复制到项目的app/libs
目录中。
配置构建
创建项目后,您可以配置设置,以便成功构建并使用 Navigation SDK。
更新本地房源
- 在 Gradle Scripts 文件夹中,打开
local.properties
文件并添加android.useDeprecatedNdk=true
。
更新 Gradle 构建脚本
打开
build.gradle (Module:app)
文件并按照以下准则更新设置,以满足 Navigation SDK 的要求,并考虑也设置优化选项。Navigation SDK 的必需设置
- 将
minSdkVersion
设置为 16 或更高版本。 - 针对 API 21 设置“targetSDKversion”,将权限处理工作转移至 API。 对于以前的版本,您需要在应用中明确添加权限流程。
- 添加用于增加
javaMaxHeapSize
的dexOptions
设置。 - 设置其他库的位置。
- 为 Navigation SDK 添加
repositories
和dependencies
。 - 将依赖项中的版本号替换为最新的可用版本。
用于缩短构建时间的可选设置
- 将
以下是应用的 Gradle 构建脚本示例。
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'
}
更新应用的清单
在清单文件夹中,打开
AndroidManifest.xml
文件。在
<application>
元素中添加您的 API 密钥。您必须使用在 Google Cloud 控制台项目中定义的 API 密钥(如上文所述)。在此示例显示的部分清单中,您需要将
YOUR_API_KEY
替换为您自己的 API 密钥:<meta-data android:name="com.google.android.geo.API_KEY" android:value="YOUR_API_KEY"/>
下面是一个完整清单,其中显示了 API 密钥的设置,以及启动时运行的
MainActivity
的空intent
。<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> ```
在您的应用中添加必要的提供方说明
如果您在应用中使用 Navigation SDK for Android,则必须在应用的法律声明部分中包含提供方说明文本和开源许可。
您可以在 Navigation SDK for Android 的 ZIP 文件中找到必需的提供方说明文本和开源许可:
NOTICE.txt
LICENSES.txt
下一步
了解如何绘制路线。