Trang này giải thích cách tích hợp Navigation SDK vào dự án phát triển của bạn.
Thêm Navigation SDK vào dự án của bạn
Navigation SDK có sẵn thông qua Kho lưu trữ Maven của Google.
Bạn có thể thêm SDK vào dự án bằng cách sử dụng cấu hình build.gradle
Gradle hoặc pom.xml
Maven.
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 Navigation SDK for Android mà bạn muốn.Gradle
Thêm nội dung sau vào
build.gradle
ở cấp mô-đun:dependencies { ... implementation 'com.google.android.libraries.navigation:navigation:VERSION_NUMBER' }
Maven
Thêm nội dung 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 Maps SDK, bạn phải loại trừ phần phụ thuộc đó trong mỗi phần phụ thuộc đã khai báo dựa trên Maps SDK.
Gradle
Thêm nội dung 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 to make sure 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 nội dung sau vào
pom.xml
:<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 và sử dụng Navigation SDK thành công.
Cập nhật các thuộc tính 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à sử dụng 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 Navigation SDK, đồng thời cân nhắc việc thiết lập các lựa chọn tối ưu hoá.Chế độ cài đặt bắt buộc cho Navigation SDK
- Đặt
minSdkVersion
thành 23 trở lên. - Đặt
targetSdkVersion
thành 34 trở lên. - Thêm chế độ cài đặt
dexOptions
để tăngjavaMaxHeapSize
. - Đặt vị trí cho các thư viện bổ sung.
- Thêm
repositories
vàdependencies
cho Navigation SDK. - Thay thế số phiên bản trong các phần phụ thuộc bằng phiên bản mới nhất hiện 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à tài nguyên bằng R8/ProGuard để loại bỏ 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 việ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 cuối cùng, hãy đặtresConfigs
cho những ngôn ngữ mà 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 tất cả ngôn ngữ mà Navigation SDK hỗ trợ.
Thêm tính năng đơ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ợ sẽ mở rộng khả năng hỗ trợ sử dụng một số API ngôn ngữ Java 8. Hãy xem phần Hỗ trợ việc loại bỏ đường cú pháp 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 lựa chọn về phần phụ thuộc.
- Bạn nên sử dụng Gradle 8.4, trình bổ trợ Android cho Gradle phiên bản 8.3.0 và thư viện Desugar
com.android.tools:desugar_jdk_libs_nio:2.0.3
. Thiết lập này tương thích với Navigation SDK cho Android phiên bản 6.0.0 trở lên. - Bạn cần bật thư viện Desugar cho mô-đun
app
và mọi mô-đun trực tiếp phụ thuộc vào Navigation SDK.
- Đặt
Dưới đây là một ví dụ về tập lệnh bản dựng Gradle cho ứng dụng. Hãy kiểm tra các ứng dụng mẫu để biết các nhóm phần phụ thuộc mới nhất, vì phiên bản Navigation SDK mà bạn đang dùng có thể mới hơn hoặc cũ hơn một chút so với tài liệu này.
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 34
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_nio:2.0.3'
}
Thêm khoá API vào ứng dụng
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 kiểm soát phiên bản. Vì vậy, bạn nên lưu trữ khoá này 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 phần 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.kts
hoặcbuild.gradle
cấp cao nhất rồi thêm mã sau vào phần tửdependencies
trongbuildscript
.Kotlin
buildscript { dependencies { classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") } }
Groovy
buildscript { dependencies { classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" } }
-
Mở tệp
build.gradle.kts
hoặcbuild.gradle
ở cấp mô-đun rồi thêm đoạn mã sau vào phần tửplugins
.Kotlin
plugins { // ... id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
Groovy
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
- Trong tệp
build.gradle.kts
hoặcbuild.gradle
ở cấp mô-đun, hãy đảm bảo rằngtargetSdk
vàcompileSdk
được đặt thành 34. - Đồ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, sau đó thêm đoạn mã sau. Thay thếYOUR_API_KEY
bằng khoá API của bạn. Lưu trữ khoá của bạn trong tệp này vìsecrets.properties
không được đưa vào hệ thống quản lý phiên bản.MAPS_API_KEY=YOUR_API_KEY
-
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
), rồi thêm mã sau.MAPS_API_KEY=DEFAULT_API_KEY
Mục đích của tệp này là cung cấp một vị trí sao lưu cho khoá API nếu không tìm thấy tệp
secrets.properties
để các bản dựng 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 kiểm soát 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. -
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>
không tồn tại, hãy tạo thẻ này dưới dạng thẻ con của thẻ<application>
.<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />
Lưu ý:
com.google.android.geo.API_KEY
là tên siêu dữ liệu được đề xuất cho khoá API. Bạn có thể dùng một khoá có tên này để xác thực với nhiều API dựa trên Google Maps trên nền tảng Android, bao gồm cả Navigation SDK cho Android. Để đảm bảo khả năng tương thích ngược, API này cũng hỗ trợ têncom.google.android.maps.v2.API_KEY
. Tên cũ này chỉ cho phép xác thực với Android Maps API phiên bản 2. Một ứng dụng chỉ có thể chỉ định một trong các tên siêu dữ liệu khoá API. Nếu bạn chỉ định cả hai, API sẽ gửi một trường hợp ngoại lệ. -
Trong Android Studio, hãy mở tệp
build.gradle.kts
hoặcbuild.gradle
ở cấp mô-đun rồi chỉnh sửa thuộc tínhsecrets
. Nếu thuộc tínhsecrets
không tồn tại, hãy thêm thuộc tính đó.Chỉnh sửa các thuộc tính của trình bổ trợ để đặt
propertiesFileName
thànhsecrets.properties
, đặtdefaultPropertiesFileName
thànhlocal.defaults.properties
và đặt mọi thuộc tính khác.Kotlin
secrets { // To add your Maps API key to this project: // 1. If the secrets.properties file does not exist, create it in the same folder as the local.properties file. // 2. Add this line, where YOUR_API_KEY is your API key: // MAPS_API_KEY=YOUR_API_KEY propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = "local.defaults.properties" }
Groovy
secrets { // To add your Maps API key to this project: // 1. If the secrets.properties file does not exist, create it in the same folder as the local.properties file. // 2. Add this line, where YOUR_API_KEY is your API key: // MAPS_API_KEY=YOUR_API_KEY propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = "local.defaults.properties" }
Thêm thông tin ghi nhận quyền tác giả bắt buộc vào ứng dụng của bạn
Nếu sử dụng Navigation SDK cho Android trong ứng dụng, bạn phải thêm văn bản ghi nhận quyền tác giả và giấy phép nguồn mở vào phần 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 quyền tác giả và giấy phép nguồn mở bắt buộc trong tệp zip Navigation SDK cho Android:
NOTICE.txt
LICENSES.txt
Nếu bạn là khách hàng sử dụng Mobility hoặc Fleet Engine Deliveries
Nếu bạn là khách hàng sử dụng Mobility hoặc Fleet Engine Deliveries, hãy tìm hiểu về việc thanh toán trong tài liệu về Mobility. Để biết thêm thông tin về cách ghi lại giao dịch, hãy xem bài viết Thiết lập thông tin thanh toán, Ghi lại giao dịch có tính phí, Báo cáo và Ghi lại giao dịch có tính phí (Android).