Hướng dẫn nhanh về SDK Bản đồ dành cho Android

Tạo một ứng dụng Android hiển thị bản đồ bằng cách sử dụng mẫu Chế độ xem Google Maps cho Android Studio. Nếu bạn muốn thiết lập một dự án Android Studio hiện có, hãy xem phần Thiết lập dự án Android Studio.

Phần bắt đầu nhanh này dành cho những nhà phát triển đã quen thuộc với việc phát triển Android cơ bản bằng Kotlin hoặc Java.

Giới thiệu về môi trường phát triển

Phần hướng dẫn nhanh này được phát triển bằng Android Studio Hedgehogtrình bổ trợ Android cho Gradle phiên bản 8.2.

Thiết lập thiết bị Android

Để chạy một ứng dụng sử dụng SDK Maps cho Android, bạn phải triển khai ứng dụng đó trên một thiết bị Android hoặc trình mô phỏng Android dựa trên Android 5.0 trở lên và bao gồm các API của Google.

  • Để sử dụng thiết bị Android, hãy làm theo hướng dẫn tại phần Chạy ứng dụng trên thiết bị phần cứng.
  • Để sử dụng trình mô phỏng Android, bạn có thể tạo một thiết bị ảo và cài đặt trình mô phỏng bằng cách sử dụng Trình quản lý thiết bị ảo Android (AVD) đi kèm với Android Studio.

Tạo dự án Google Maps trong Android Studio

Quy trình tạo dự án Google Maps trong Android Studio đã được thay đổi trong Flamingo và các bản phát hành Android Studio sau đó.

  1. Mở Android Studio rồi nhấp vào New Project (Dự án mới) trong cửa sổ Welcome to Android Studio (Chào mừng bạn đến với Android Studio).

  2. Trong cửa sổ New Project (Dự án mới), trong danh mục Phone and Tablet (Điện thoại và máy tính bảng), hãy chọn No Activity (Không có hoạt động) rồi nhấp vào Next (Tiếp theo).

  3. Hoàn tất biểu mẫu New Project (Dự án mới):

    • Đặt Language (Ngôn ngữ) thành Java hoặc Kotlin. Cả hai ngôn ngữ này đều được SDK Bản đồ dành cho Android hỗ trợ đầy đủ. Để tìm hiểu thêm về Kotlin, hãy xem bài viết Phát triển ứng dụng Android bằng Kotlin.

    • Đặt Minimum SDK (SDK tối thiểu) thành một phiên bản SDK tương thích với thiết bị thử nghiệm của bạn. Bạn phải chọn một phiên bản cao hơn phiên bản tối thiểu mà SDK Maps cho Android phiên bản 19.0.x yêu cầu, tức là Android API cấp 21 ("Lollipop"; Android 5.0) trở lên. Hãy xem Ghi chú phát hành để biết thông tin mới nhất về các yêu cầu đối với phiên bản SDK.

    • Đặt Build configuration language (Ngôn ngữ cấu hình bản dựng) thành Kotlin DSL hoặc Groovy DSL. Đoạn mã cho cả hai ngôn ngữ cấu hình bản dựng được hiển thị trong các quy trình sau.

  4. Nhấp vào Hoàn tất.

    Android Studio sẽ khởi động Gradle và tạo dự án. Quá trình này có thể mất chút thời gian.

  5. Thêm Hoạt động xem trên Google Maps:

    1. Nhấp chuột phải vào thư mục app trong dự án.
    2. Chọn New > Google > Google Maps Views Activity (Mới > Google > Hoạt động của thành phần hiển thị trên Google Maps).

      Thêm hoạt động trên Maps.

    3. Trong hộp thoại New Android Activity (Hoạt động mới trên Android), hãy đánh dấu vào hộp Launcher Activity (Hoạt động của trình chạy).

    4. Chọn Finish (Hoàn tất).

      Để biết thêm thông tin, hãy xem phần Thêm mã từ một mẫu

  6. Khi bản dựng hoàn tất, Android Studio sẽ mở các tệp AndroidManifest.xmlMapsActivity. Hoạt động của bạn có thể có tên khác, nhưng đó là tên mà bạn đã định cấu hình trong quá trình thiết lập.

Thiết lập dự án Google Cloud

Hoàn tất các bước thiết lập bắt buộc trong Cloud Console bằng cách nhấp vào các thẻ sau:

Bước 1

Giao diện dòng lệnh

  1. Trong Google Cloud Console, trên trang bộ chọn dự án, hãy nhấp vào Create Project (Tạo dự án) để bắt đầu tạo một dự án mới trên Google Cloud.

    Chuyển đến trang bộ chọn dự án

  2. Đảm bảo bạn đã bật tính năng thanh toán cho dự án trên Cloud. Xác nhận rằng bạn đã bật tính năng thanh toán cho dự án của mình.

    Google Cloud cung cấp gói dùng thử không tính phí. Thời gian dùng thử sẽ kết thúc sau 90 ngày hoặc sau khi tài khoản tích luỹ đủ khoản phí trị giá 300 USD, tuỳ vào thời điểm nào đến trước. Bạn có thể huỷ bất cứ lúc nào. Nền tảng Google Maps cung cấp khoản tín dụng định kỳ trị giá 200 USD mỗi tháng. Để biết thêm thông tin, hãy xem phần Thẻ tín dụng cho tài khoản thanh toánThanh toán.

SDK đám mây

gcloud projects create "PROJECT"

Đọc thêm về Google Cloud SDK, cách cài đặt Cloud SDK và các lệnh sau:

Bước 2

Để sử dụng Nền tảng Google Maps, bạn phải bật các API hoặc SDK mà bạn dự định sử dụng cho dự án của mình.

Giao diện dòng lệnh

Bật SDK Bản đồ dành cho Android

SDK đám mây

gcloud services enable \
    --project "PROJECT" \
    "maps-android-backend.googleapis.com"

Đọc thêm về Google Cloud SDK, cách cài đặt Cloud SDK và các lệnh sau:

Bước 3

Bước này chỉ thực hiện quy trình tạo Khoá API. Nếu sử dụng Khoá API trong phiên bản chính thức, bạn nên hạn chế khoá API của mình. Bạn có thể tìm thêm thông tin trong trang Sử dụng khoá API dành riêng cho sản phẩm.

Khoá API là giá trị nhận dạng duy nhất xác thực các yêu cầu liên kết với dự án của bạn cho mục đích sử dụng và thanh toán. Bạn phải có ít nhất một khoá API được liên kết với dự án của mình.

Cách tạo khoá API:

Giao diện dòng lệnh

  1. Chuyển đến trang Nền tảng Google Maps > Thông tin xác thực.

    Chuyển đến trang Thông tin xác thực

  2. Trên trang Thông tin xác thực, hãy nhấp vào Tạo thông tin xác thực > Khoá API.
    Hộp thoại API key created (Khoá API đã tạo) hiển thị khoá API mới tạo.
  3. Nhấp vào Đóng.
    Khoá API mới được liệt kê trên trang Thông tin xác thực trong phần Khoá API.
    (Hãy nhớ hạn chế khoá API trước khi sử dụng khoá đó trong môi trường sản xuất.)

SDK đám mây

gcloud alpha services api-keys create \
    --project "PROJECT" \
    --display-name "DISPLAY_NAME"

Đọc thêm về Google Cloud SDK, cách cài đặt Cloud SDK và các lệnh sau:

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 khoá đó một cách an toàn. Bạn không nên kiểm tra khoá API vào 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 phần Tệp thuộc tính Gradle.

Để đơn giản hoá nhiệm 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:

  1. Trong Android Studio, hãy mở tệp build.gradle.kts hoặc build.gradle cấp cao nhất và thêm mã sau vào phần tử dependencies trong buildscript.

    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"
        }
    }
    
  2. Mở tệp build.gradle.kts hoặc build.gradle ở cấp mô-đun và 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'
    }
  3. Trong tệp build.gradle.kts hoặc build.gradle ở cấp mô-đun, hãy đảm bảo rằng bạn đặt targetSdkcompileSdk thành 34.
  4. Lưu tệp và đồng bộ hoá dự án với Gradle.
  5. Mở tệp secrets.properties trong thư mục cấp cao nhất, sau đó thêm 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
  6. Lưu tệp.
  7. Tạo tệp local.defaults.properties trong thư mục cấp cao nhất, cùng thư mục với tệp secrets.properties, sau đó thêm mã sau.

    MAPS_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 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 nhân bản ứng dụng từ một hệ thống quản lý phiên bản bỏ qua secrets.properties và bạn chưa tạo tệp secrets.properties cục bộ để cung cấp khoá API.

  8. Lưu tệp.
  9. Trong tệp AndroidManifest.xml, hãy chuyển đến com.google.android.geo.API_KEY rồi cập nhật android: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}" />

    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 Maps SDK for Android. For backwards compatibility, the API also supports the name com.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.

  10. In Android Studio, open your module-level build.gradle.kts or build.gradle file and edit the secrets property. If the secrets property does not exist, add it.

    Edit the properties of the plugin to set propertiesFileName to secrets.properties, set defaultPropertiesFileName to local.defaults.properties, and set any other properties.

    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"
    
        // 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.*"
    }
            

    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"
    
        // 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.*"
    }
            

Xem mã

Kiểm tra mã do mẫu cung cấp. Cụ thể, hãy xem các tệp sau trong dự án Android Studio.

Tệp hoạt động trên Maps

Tệp hoạt động bản đồ là hoạt động chính của ứng dụng và chứa mã để quản lý cũng như hiển thị bản đồ. Theo mặc định, tệp xác định hoạt động sẽ có tên là MapsActivity.java hoặc MapsActivity.kt nếu bạn đặt Kotlin làm ngôn ngữ cho ứng dụng.

Các phần tử chính của hoạt động trên Maps:

  • Đối tượng SupportMapFragment quản lý vòng đời của bản đồ và là phần tử mẹ của giao diện người dùng của ứng dụng.

  • Đối tượng GoogleMap cung cấp quyền truy cập vào dữ liệu bản đồ và chế độ xem. Đây là lớp chính của SDK Bản đồ dành cho Android. Hướng dẫn về Đối tượng bản đồ mô tả chi tiết hơn về đối tượng SupportMapFragmentGoogleMap.

  • Hàm moveCamera đặt bản đồ ở giữa theo toạ độ LatLng của Sydney, Úc. Các chế độ cài đặt đầu tiên cần định cấu hình khi thêm bản đồ thường là chế độ cài đặt máy ảnh và vị trí bản đồ; chẳng hạn như góc xem, hướng bản đồ và mức thu phóng. Hãy xem hướng dẫn về Máy ảnh và Chế độ xem để biết thông tin chi tiết.

  • Hàm addMarker thêm một điểm đánh dấu vào toạ độ của Sydney. Xem hướng dẫn về Điểm đánh dấu để biết thông tin chi tiết.

Tệp Gradle của mô-đun

Tệp build.gradle.kts của mô-đun bao gồm phần phụ thuộc bản đồ sau đây mà SDK Bản đồ dành cho Android yêu cầu.

dependencies {

    // Maps SDK for Android
    implementation("com.google.android.gms:play-services-maps:19.0.0")
}

Để tìm hiểu thêm về cách quản lý phần phụ thuộc Maps, hãy xem phần Tạo phiên bản.

Tệp bố cục XML

Tệp activity_maps.xmltệp bố cục XML xác định cấu trúc của giao diện người dùng của ứng dụng. Tệp này nằm trong thư mục res/layout. Tệp activity_maps.xml khai báo một mảnh bao gồm các phần tử sau:

  • tools:context đặt hoạt động mặc định của mảnh thành MapsActivity, được xác định trong tệp hoạt động của bản đồ.
  • android:name đặt tên lớp của mảnh thành SupportMapFragment, đây là loại mảnh được dùng trong tệp hoạt động của bản đồ.

Tệp bố cục XML chứa mã sau:

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MapsActivity" />

Triển khai và chạy ứng dụng

Ảnh chụp màn hình có bản đồ và điểm đánh dấu ở giữa Syndney, Úc.

Khi bạn chạy thành công ứng dụng, ứng dụng sẽ hiển thị một bản đồ có tâm là thành phố Sydney, Úc, với một điểm đánh dấu trên thành phố như trong ảnh chụp màn hình sau.

Cách triển khai và chạy ứng dụng:

  1. Trong Android Studio, hãy nhấp vào tuỳ chọn trình đơn Run (Chạy) (hoặc biểu tượng nút phát) để chạy ứng dụng.
  2. Khi được nhắc chọn thiết bị, hãy chọn một trong các tuỳ chọn sau:
    • Chọn thiết bị Android đã kết nối với máy tính.
    • Ngoài ra, hãy chọn nút chọn Launch emulator (Chạy trình mô phỏng) rồi chọn thiết bị ảo mà bạn đã thiết lập.
  3. Nhấp vào OK. Android Studio sẽ khởi động Gradle để tạo ứng dụng, sau đó hiển thị kết quả trên thiết bị hoặc trình mô phỏng. Có thể mất vài phút thì ứng dụng mới khởi chạy.

Các bước tiếp theo

  • Thiết lập bản đồ: Tài liệu này mô tả cách thiết lập chế độ cài đặt ban đầu và thời gian chạy cho bản đồ, chẳng hạn như vị trí máy ảnh, loại bản đồ, thành phần giao diện người dùng và cử chỉ.

  • Thêm bản đồ vào ứng dụng Android (Kotlin): Lớp học lập trình này sẽ hướng dẫn bạn về một ứng dụng minh hoạ một số tính năng bổ sung của SDK Maps cho Android.

  • Sử dụng thư viện Maps Android KTX: Thư viện tiện ích Kotlin (KTX) này cho phép bạn tận dụng một số tính năng của ngôn ngữ Kotlin trong khi sử dụng SDK Maps cho Android.