SDK điều hướng được cung cấp thông qua Maven. Sau khi tạo dự án phát triển, bạn có thể tích hợp SDK vào dự án đó bằng một trong các phương pháp sau.
Sử dụng Maven cho SDK điều hướng (nên dùng)
Phần sau đây sử dụng kho lưu trữ Maven google()
. Đây là cách đơn giản nhất và nên dùng để thêm SDK điều hướng vào dự án của bạn.
Thêm phần phụ thuộc sau vào cấu hình Gradle hoặc Maven, thay thế phần giữ chỗ
VERSION_NUMBER
cho phiên bản mong muốn của SDK điều hướng cho Android.Gradle
Thêm đoạn mã sau vào
build.gradle
cấp mô-đun:dependencies { ... implementation 'com.google.android.libraries.navigation:navigation:VERSION_NUMBER' }
Nếu nâng cấp từ kho lưu trữ Maven ban đầu, hãy lưu ý rằng tên nhóm và cấu phần phần mềm đã thay đổi, đồng thời trình bổ trợ
com.google.cloud.artifactregistry.gradle-plugin
không còn cần thiết nữa.Và thêm đoạn mã sau vào
build.gradle
cấp cao nhất:allprojects { ... // Required: you must exclude the Google Play service Maps SDK from // your transitive dependencies. This is to ensure there won't be // multiple copies of Google Maps SDK in your binary, as the Navigation // SDK already bundles the Google Maps SDK. configurations { implementation { exclude group: 'com.google.android.gms', module: 'play-services-maps' } } }
Maven
Thêm phần sau vào
pom.xml
:<dependencies> ... <dependency> <groupId>com.google.android.libraries.navigation</groupId> <artifactId>navigation</artifactId> <version>VERSION_NUMBER</version> </dependency> </dependencies>
Nếu có bất kỳ phần phụ thuộc nào sử dụng SDK Maps, bạn phải loại trừ phần phụ thuộc đó trong từng phần phụ thuộc đã khai báo dựa trên SDK Maps.
<dependencies> <dependency> <groupId>project.that.brings.in.maps</groupId> <artifactId>MapsConsumer</artifactId> <version>1.0</version> <exclusions> <!-- Navigation SDK already bundles Maps SDK. You must exclude it to prevent duplication--> <exclusion> <!-- declare the exclusion here --> <groupId>com.google.android.gms</groupId> <artifactId>play-services-maps</artifactId> </exclusion> </exclusions> </dependency> </dependencies>
Định cấu hình bản dựng
Sau khi tạo dự án, bạn có thể định cấu hình các chế độ cài đặt để tạo bản dựng thành công và sử dụng SDK điều hướng.
Cập nhật các cơ sở lưu trú tại địa phương
- Trong thư mục Gradle Scripts (Tập lệnh Gradle), hãy mở tệp
local.properties
rồi thêmandroid.useDeprecatedNdk=true
.
Cập nhật tập lệnh bản dựng Gradle
Mở tệp
build.gradle (Module:app)
và làm theo các nguyên tắc sau để cập nhật chế độ cài đặt nhằm đáp ứng các yêu cầu đối với SDK điều hướng, đồng thời cân nhắc việc đặt các tuỳ chọn tối ưu hoá.Các chế độ cài đặt bắt buộc cho SDK điều hướng
- Đặt
minSdkVersion
thành 23 trở lên. - Đặt
targetSdkVersion
thành 33 trở lên. - Thêm một chế độ cài đặt
dexOptions
để tăngjavaMaxHeapSize
. - Đặt vị trí cho các thư viện khác.
- Thêm
repositories
vàdependencies
cho SDK điều hướng. - Thay thế số phiên bản trong các phần phụ thuộc bằng các phiên bản mới nhất hiện có.
Các chế độ cài đặt không bắt buộc để giảm thời gian xây dựng
- Bật tính năng rút gọn mã và rút gọn tài nguyên bằng R8/ProGuard để xoá mã và tài nguyên không dùng đến khỏi các phần phụ thuộc. Nếu bước R8/ProGuard mất quá nhiều thời gian để chạy, hãy cân nhắc bật multidex cho công việc phát triển.
- Giảm số lượng bản dịch ngôn ngữ có trong bản dựng: Đặt
resConfigs
cho một ngôn ngữ trong quá trình phát triển. Đối với bản dựng hoàn chỉnh, hãy đặtresConfigs
cho các ngôn ngữ bạn thực sự sử dụng. Theo mặc định, Gradle sẽ bao gồm các chuỗi tài nguyên cho mọi ngôn ngữ mà SDK điều hướng hỗ trợ.
Thêm quá trình đơn giản hoá để hỗ trợ Java8
- Nếu bạn đang xây dựng ứng dụng bằng trình bổ trợ Android cho Gradle 4.0.0 trở lên, thì trình bổ trợ này sẽ mở rộng khả năng hỗ trợ sử dụng một số API ngôn ngữ Java 8. Hãy xem bài viết Hỗ trợ đơn giản hoá Java 8 để biết thêm thông tin. Hãy xem đoạn mã tập lệnh bản dựng mẫu bên dưới để biết cách biên dịch và các tuỳ chọn phần phụ thuộc.
- Đặt
Dưới đây là ví dụ về tập lệnh bản dựng Gradle cho ứng dụng. Kiểm tra ứng dụng mẫu để biết các nhóm phần phụ thuộc mới cập nhật, vì phiên bản SDK điều hướng mà bạn đang sử dụng có thể xuất hiện phía trước hoặc phía sau tài liệu này một chút.
apply plugin: 'com.android.application'
ext {
navSdk = "__NAVSDK_VERSION__"
}
android {
compileSdk 33
buildToolsVersion='28.0.3'
defaultConfig {
applicationId "<your id>"
// Navigation SDK supports SDK 23 and later.
minSdkVersion 23
targetSdkVersion 33
versionCode 1
versionName "1.0"
// Set this to the languages you actually use, otherwise you'll include resource strings
// for all languages supported by the Navigation SDK.
resConfigs "en"
multiDexEnabled true
}
dexOptions {
// This increases the amount of memory available to the dexer. This is required to build
// apps using the Navigation SDK.
javaMaxHeapSize "4g"
}
buildTypes {
// Run ProGuard. Note that the Navigation SDK includes its own ProGuard configuration.
// The configuration is included transitively by depending on the Navigation SDK.
// If the ProGuard step takes too long, consider enabling multidex for development work
// instead.
all {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
// Flag to enable support for the new language APIs
coreLibraryDesugaringEnabled true
// Sets Java compatibility to Java 8
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
repositories {
// Navigation SDK for Android and other libraries are hosted on Google's Maven repository.
google()
}
dependencies {
// Include the Google Navigation SDK.
// Note: remember to exclude Google Play service Maps SDK from your transitive
// dependencies to avoid duplicate copies of the Google Maps SDK.
api "com.google.android.libraries.navigation:navigation:${navSdk}"
// Declare other dependencies for your app here.
annotationProcessor "androidx.annotation:annotation:1.7.0"
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.9'
}
Thêm khoá API vào ứng dụng của bạn
Phần này mô tả cách lưu trữ khoá API để ứng dụng của bạn có thể tham chiếu một cách an toàn. Bạn không nên kiểm tra khoá API trong hệ thống quản lý phiên bản. Vì vậy, bạn nên lưu trữ khoá đó trong tệp secrets.properties
, nằm trong thư mục gốc của dự án. Để biết thêm thông tin về tệp secrets.properties
, hãy xem các tệp thuộc tính Gradle.
Để đơn giản hoá tác vụ này, bạn nên sử dụng Trình bổ trợ Secrets Gradle cho Android.
Cách cài đặt trình bổ trợ Secrets Gradle cho Android trong dự án Google Maps:
-
Trong Android Studio, hãy mở tệp
build.gradle
hoặcbuild.gradle.kts
ở cấp cao nhất rồi thêm mã sau vào phần tửdependencies
trongbuildscript
.Groovy
buildscript { dependencies { classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" } }
Kotlin
buildscript { dependencies { classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") } }
-
Mở tệp
build.gradle
ở cấp mô-đun và thêm mã sau vào phần tửplugins
.Groovy
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
Kotlin
plugins { id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
- Trong tệp
build.gradle
ở cấp mô-đun, hãy đảm bảo rằngtargetSdk
vàcompileSdk
được đặt thành 34. - Lưu tệp và đồng bộ hoá dự án của bạn với Gradle.
-
Mở tệp
secrets.properties
trong thư mục cấp cao nhất của bạn, sau đó thêm mã sau. Thay thếYOUR_API_KEY
bằng khoá API. Lưu trữ khoá của bạn trong tệp này vìsecrets.properties
sẽ không được kiểm tra trong một hệ thống quản lý phiên bản.NAV_API_KEY=YOUR_API_KEY
- Lưu tệp.
-
Tạo tệp
local.defaults.properties
trong thư mục cấp cao nhất, cùng thư mục với tệpsecrets.properties
, sau đó thêm mã sau.NAV_API_KEY=DEFAULT_API_KEY
Mục đích của tệp này là cung cấp vị trí sao lưu cho khoá API nếu hệ thống không tìm thấy tệp
secrets.properties
để các bản dựng sẽ không bị lỗi. Điều này có thể xảy ra nếu bạn sao chép ứng dụng từ một hệ thống quản lý phiên bản bỏ quasecrets.properties
và bạn chưa tạo tệpsecrets.properties
cục bộ để cung cấp khoá API. - Lưu tệp.
-
Trong tệp
AndroidManifest.xml
, hãy chuyển đếncom.google.android.geo.API_KEY
rồi cập nhậtandroid:value attribute
. Nếu thẻ<meta-data>
chưa tồn tại, hãy tạo thẻ đó làm thẻ con của thẻ<application>
.<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />
Note:
com.google.android.geo.API_KEY
is the recommended metadata name for the API key. A key with this name can be used to authenticate to multiple Google Maps-based APIs on the Android platform, including the Navigation SDK for Android. For backwards compatibility, the API also supports the namecom.google.android.maps.v2.API_KEY
. This legacy name allows authentication to the Android Maps API v2 only. An application can specify only one of the API key metadata names. If both are specified, the API throws an exception. -
In Android Studio, open your module-level
build.gradle
orbuild.gradle.kts
file and edit thesecrets
property. If thesecrets
property does not exist, add it.Edit the properties of the plugin to set
propertiesFileName
tosecrets.properties
, setdefaultPropertiesFileName
tolocal.defaults.properties
, and set any other properties.Groovy
secrets { // Optionally specify a different file name containing your secrets. // The plugin defaults to "local.properties" propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = "local.defaults.properties" // Configure which keys should be ignored by the plugin by providing regular expressions. // "sdk.dir" is ignored by default. ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore" ignoreList.add("sdk.*") // Ignore all keys matching the regexp "sdk.*" }
Kotlin
secrets { // Optionally specify a different file name containing your secrets. // The plugin defaults to "local.properties" propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = "local.defaults.properties" // Configure which keys should be ignored by the plugin by providing regular expressions. // "sdk.dir" is ignored by default. ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore" ignoreList.add("sdk.*") // Ignore all keys matching the regexp "sdk.*" }
Đưa các thuộc tính bắt buộc vào ứng dụng của bạn
Nếu sử dụng SDK điều hướng dành cho Android trong ứng dụng của mình, thì bạn phải đưa văn bản phân bổ và giấy phép nguồn mở vào mục thông báo pháp lý của ứng dụng.
Bạn có thể tìm thấy văn bản ghi nhận tác giả và giấy phép nguồn mở cần thiết trong SDK điều hướng dành cho tệp zip của Android:
NOTICE.txt
LICENSES.txt
Nếu bạn là khách hàng dùng dịch vụ giao hàng cho động cơ hoặc dịch vụ di động
Nếu bạn là khách hàng dùng Dịch vụ di động hoặc Phân phối công cụ di chuyển, hãy tìm hiểu về cách thanh toán trong tài liệu về Dịch vụ di động. Để biết thêm thông tin về việc ghi lại các giao dịch, hãy xem các bài viết Thiết lập thông tin thanh toán, Ghi lại các giao dịch có thể tính phí, Báo cáo và Ghi lại các giao dịch phải trả (Android).
Trừ khi có lưu ý khác, nội dung của trang này được cấp phép theo Giấy phép ghi nhận tác giả 4.0 của Creative Commons và các mẫu mã lập trình được cấp phép theo Giấy phép Apache 2.0. Để biết thông tin chi tiết, vui lòng tham khảo Chính sách trang web của Google Developers. Java là nhãn hiệu đã đăng ký của Oracle và/hoặc các đơn vị liên kết với Oracle.
Cập nhật lần gần đây nhất: 2024-06-27 UTC.
[] []