Google Play Core Library 總覽

本資訊頁面說明 Google Play Core Library,以及如何將其新增至專案。

什麼是 Play Core?

Play Core 程式庫是您的應用程式與 Google Play 商店之間的執行階段介面。以下為 Play Core 支援的幾項功能:

我們提供 Java原生Unity 版 的 Play Core Library。如要進一步瞭解最新的 Play Core 程式庫版本,請參閱版本資訊

將 Play Core 程式庫新增至專案

開始使用 Play Core 程式庫之前,您需先將其新增至應用程式專案。您需要採取的步驟,取決於您使用 Java、Kotlin、原生,還是使用 Unity 開發。

Java 或 Kotlin

如果您使用 Java 或 Kotlin 開發專案,可以將 Play Core 程式庫匯入 Android 專案中,作為 Gradle 依附元件,如下所示:

Groovy

// In your app’s build.gradle file:
...
dependencies {
    // This dependency is downloaded from the Google’s Maven repository.
    // So, make sure you also include that repository in your project's build.gradle file.
    implementation 'com.google.android.play:core:1.10.3'

    // For Kotlin users also add the Kotlin extensions library for Play Core:
    implementation 'com.google.android.play:core-ktx:1.8.1'
    ...
}

Kotlin

// In your app’s build.gradle file:
...
dependencies {
    // This dependency is downloaded from the Google’s Maven repository.
    // So, make sure you also include that repository in your project's build.gradle file.
    implementation("com.google.android.play:core:1.10.3")

    // For Kotlin users also import the Kotlin extensions library for Play Core:
    implementation("com.google.android.play:core-ktx:1.8.1")
    ...
}

Play Core KTX 程式庫是選用項目,能針對一般 Play Core 程式庫中的非同步方法呼叫提供 Kotlin 協同程式版本,以及提供其他有用的擴充功能,讓從 Kotlin 使用 API 更符合語言習慣。

原生

Play Core 原生 SDK 為 Play Asset Delivery 提供 C/C++ API 介面。這個 SDK 旨在使用 CMake 建構 ARM 和 x86 原生資料庫,並且使用 Gradle 產生 Android App Bundle 和 APK。

設定開發環境

  1. 執行下列其中一項操作:

  2. 使用 SDK Manager 安裝最新的 CMake 和 Android Native Development Kit (NDK),讓 Android Studio 準備進行原生開發。如要進一步瞭解如何建立或匯入原生專案,請參閱 NDK 入門指南

  3. 下載 ZIP 檔案,然後將其連同專案一起解壓縮。

    下載連結 大小 SHA-256 總和檢查碼
    55.6 MB 058b4069f09714da938656d43b6dc28d3bc6f821c9d406e9c96a1c3af014dc45
  4. 請更新應用程式的 build.gradle 檔案,如下所示:

    Groovy

        // App build.gradle
    
        plugins {
          id 'com.android.application'
        }
    
        // Define a path to the extracted Play Core SDK files.
        // If using a relative path, wrap it with file() since CMake requires absolute paths.
        def playcoreDir = file('../path/to/playcore-native-sdk')
    
        android {
            defaultConfig {
                ...
                externalNativeBuild {
                    cmake {
                        // Define the PLAYCORE_LOCATION directive.
                        arguments "-DANDROID_STL=c++_static",
                                  "-DPLAYCORE_LOCATION=$playcoreDir"
                    }
                }
                ndk {
                    // Skip deprecated ABIs. Only required when using NDK 16 or earlier.
                    abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
                }
            }
            buildTypes {
                release {
                    // Include Play Core Library proguard config files to strip unused code while retaining the Java symbols needed for JNI.
                    proguardFile "$playcoreDir/proguard/common.pgcfg"
                    proguardFile "$playcoreDir/proguard/per-feature-proguard-files"
                    ...
                }
                debug {
                    ...
                }
            }
            externalNativeBuild {
                cmake {
                    path 'src/main/CMakeLists.txt'
                }
            }
        }
    
        dependencies {
            // Use the Play Core AAR included with the SDK.
            implementation files("$playcoreDir/playcore.aar")
    
            // Use the following dependency for the Play Integrity API.
            implementation("com.google.android.play:integrity:1.0.0")
            ...
        }
        

    Kotlin

    // App build.gradle
    
    plugins {
        id("com.android.application")
    }
    
    // Define a path to the extracted Play Core SDK files.
    // If using a relative path, wrap it with file() since CMake requires absolute paths.
    val playcoreDir = file("../path/to/playcore-native-sdk")
    
    android {
        defaultConfig {
            ...
            externalNativeBuild {
                cmake {
                    // Define the PLAYCORE_LOCATION directive.
                    arguments += listOf("-DANDROID_STL=c++_static", "-DPLAYCORE_LOCATION=$playcoreDir")
                }
            }
            ndk {
                // Skip deprecated ABIs. Only required when using NDK 16 or earlier.
                abiFilters.clear()
                abiFilters += listOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64")
            }
        }
        buildTypes {
            release {
                // Include Play Core Library proguard config files to strip unused code while retaining the Java symbols needed for JNI.
                proguardFile("$playcoreDir/proguard/common.pgcfg")
                proguardFile("$playcoreDir/proguard/per-feature-proguard-files")
                ...
            }
            debug {
                ...
            }
        }
        externalNativeBuild {
            cmake {
                path = "src/main/CMakeLists.txt"
            }
        }
    }
    
    dependencies {
        // Use the Play Core AAR included with the SDK.
        implementation(files("$playcoreDir/playcore.aar"))
        ...
    }
    
  5. 請更新應用程式的 CMakeLists.txt 檔案,如下所示:

    cmake_minimum_required(VERSION 3.6)
    
    ...
    
    # Add a static library called “playcore” built with the c++_static STL.
    include(${PLAYCORE_LOCATION}/playcore.cmake)
    add_playcore_static_library()
    
    // In this example “main” is your native code library, i.e. libmain.so.
    add_library(main SHARED
            ...)
    
    target_include_directories(main PRIVATE
            ${PLAYCORE_LOCATION}/include
            ...)
    
    target_link_libraries(main
            android
            playcore
            ...)
    

Unity

Unity 外掛程式適用於特定 Play Core API,包括 Play Asset Delivery。從 適用於 Unity 版本的 Google Play 外掛程式 下載最新版本。這是一個單獨套件,內含 Play Core 外掛程式和其他 Play 外掛程式,例如 Play 應用程式內結帳和 Play Instant。

Download Play Core Native SDK

Before downloading, you must agree to the following terms and conditions.

Terms and Conditions

上次修改時間:2020 年 9 月 24 日
  1. 使用 Play Core 軟體開發套件,即表示您同意遵守這些條款,以及《Google API 服務條款》(以下簡稱「API 服務條款」)。如果這些條款與 API 服務條款有任何衝突,以這些條款為準。請詳閱這些條款和 API 服務條款。
  2. 就這些條款而言,「API」是指 Google 的 API、其他開發人員服務和相關軟體,包括任何可轉散發程式碼。
  3. 「可轉散發程式碼」是指 Google 提供的物件程式碼或標頭檔案,用於呼叫 API。
  4. 根據這些條款和 API 服務條款的規定,您可以複製並發布可轉散發程式碼,但只能納入為 API 用戶端的一部分。Google 及其授權人對「可轉散發的程式碼」擁有所有權利、所有權和利益,包括任何和所有智慧財產權及其他所有權益。您不得對可轉散發程式碼進行修改、翻譯,或製造衍生作品。
  5. Google 可隨時變更這些條款,如有變更會發出通知,並提供使用者拒絕繼續使用 Play Core 軟體開發套件的機會。Google 將於 https://developer.android.com/guide/playcore/license 發布條款修訂通知。變更將不溯及既往。
Download Play Core Native SDK

play-core-native-sdk-1.11.0.zip

Play Core 軟體開發套件服務條款

    上次修改時間:2020 年 9 月 24 日
  1. 使用 Play Core 軟體開發套件,即表示您同意遵守這些條款,以及《Google API 服務條款》(以下簡稱「API 服務條款」)。如果這些條款與 API 服務條款有任何衝突,以這些條款為準。請詳閱這些條款和 API 服務條款。
  2. 就這些條款而言,「API」是指 Google 的 API、其他開發人員服務和相關軟體,包括任何可轉散發程式碼。
  3. 「可轉散發程式碼」是指 Google 提供的物件程式碼或標頭檔案,用於呼叫 API。
  4. 根據這些條款和 API 服務條款的規定,您可以複製並發布可轉散發程式碼,但只能納入為 API 用戶端的一部分。Google 及其授權人對「可轉散發的程式碼」擁有所有權利、所有權和利益,包括任何和所有智慧財產權及其他所有權益。您不得對可轉散發程式碼進行修改、翻譯,或製造衍生作品。
  5. Google 可隨時變更這些條款,如有變更會發出通知,並提供使用者拒絕繼續使用 Play Core 軟體開發套件的機會。Google 將於 https://developer.android.com/guide/playcore/license 發布條款修訂通知。變更將不溯及既往。

Play Core SDK 資料安全性

Google Play 有一個「資料安全性」專區,可讓開發人員揭露應用程式的資料收集、分享和安全性做法。您可以參閱下方資訊,瞭解 Play Core SDK 如何處理相關資料,以便協助您完成「資料安全性」專區。

Play Core SDK 是您的應用程式與 Google Play 商店之間的執行階段介面。因此,在應用程式中使用 Play Core 時,Play 商店會執行自己的程序,包括處理符合《Google Play 服務條款》規範的資料。以下資訊說明 Play Core SDK 如何處理資料,以便處理應用程式發出的特定要求。

其他語言 API

收集到資料的使用情況 已安裝的語言清單
資料收集目的 收集到的資料會用於提供不同語言版本的應用程式,並在應用程式更新後保留已安裝的語言。
資料加密 資料已加密。
資料分享 資料不會轉移給任何第三方。
資料刪除 過了固定的保留期限後,系統會刪除資料。

Play Feature Delivery

收集到資料的使用情況 裝置中繼資料
應用程式版本
資料收集目的 收集到的資料會用於為裝置提供適當的模組,並在更新、備份及還原之後保留已安裝的模組。
資料加密 資料已加密。
資料分享 資料不會轉移給任何第三方。
資料刪除 過了固定的保留期限後,系統會刪除資料。

Play Asset Delivery

收集到資料的使用情況 裝置中繼資料
應用程式版本
資料收集目的 收集到的資料會用於為裝置提供適當的資產包,並在更新後保留已安裝的資產包。
資料加密 資料已加密。
資料分享 資料不會轉移給任何第三方。
資料刪除 過了固定的保留期限後,系統會刪除資料。

應用程式內更新

收集到資料的使用情況 裝置中繼資料
應用程式版本
已安裝的模組和資產包清單
資料收集目的 收集到的資料會用於判斷是否有可用的更新,以及預期的更新檔案大小。
資料加密 資料已加密。
資料分享 資料不會轉移給任何第三方。
資料刪除 過了固定的保留期限後,系統會刪除資料。

應用程式內評論

收集到資料的使用情況 使用者輸入的資料 (評分和任意文字評論)
資料收集目的 收集到的資料會在 Play 商店留下評論。
資料加密 資料已加密。
資料分享 收集到的資料會用於 Play 商店的公開評論中;假如應用程式位於封閉式測試群組中,我們會與應用程式開發人員私下分享收集到的資料。
資料刪除 使用者可以在 Google Play 商店帳戶或 Google 帳戶中刪除自己的評論。

Play Integrity API

收集到資料的使用情況 應用程式版本
應用程式簽署憑證
Google Play 服務產生的裝置認證權杖
資料收集目的 收集到的資料會用於驗證應用程式完整性、授權狀態和裝置完整性。
資料加密 資料已加密。
資料分享 資料不會轉移給任何第三方。
資料刪除 過了固定的保留期限後,系統會刪除資料。

雖然我們力求盡可能維持公開透明,但您必須全權負責決定如何回應 Google Play 的「資料安全性」專區中針對應用程式的使用者資料收集、分享和安全性做法。