Google Play Core 库概览

本页将介绍 Google Play Core 库以及如何将其添加到您的项目中。

什么是 Play Core?

Play Core 库是您的应用与 Google Play 商店的运行时接口。您可以使用 Play Core 执行的操作包括:

Play Core 库支持 Java原生代码Unity。如需详细了解最新的 Play Core 库版本,请参阅版本说明

将 Play Core 库添加到您的项目中

开始使用 Play Core 库之前,您需要先将其添加到您的应用项目中。您需要采取的步骤取决于您是使用 Java、Kotlin、原生开发还是使用 Unity 进行开发。

Java 或 Kotlin

如果您使用 Java 或 Kotlin 开发项目,则可以将 Play Core 库作为 Gradle 依赖项导入 Android 项目,如下所示:

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. 执行以下其中一项操作:

    • 安装 Android Studio 4.0 或更高版本。使用 SDK 管理器界面安装 Android SDK Platform 版本 10.0(API 级别 29)。
    • 安装 Android SDK 命令行工具,然后使用 sdkmanager 安装 Android SDK Platform 版本 10.0(API 级别 29)。
  2. 使用 SDK 管理器安装最新的 CMake 和 Android 原生开发套件 (NDK),让 Android Studio 做好原生开发准备。如需详细了解如何创建或导入原生项目,请参阅 NDK 入门指南

  3. 下载 zip 文件并将其解压缩到您的项目所在位置。

    下载链接 大小 SHA-256 校验和
    43.4 MB ce312a423d2284be1ca114f242b61e3c52c490d1fffc25573e9ab4e75079aeed
  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")
            ...
        }
        

    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

部分 Play Core API 提供了 Unity 插件,包括 Play Asset Delivery。从适用于 Unity 的 Google Play 插件版本页面下载最新版本。 这是一个单独的软件包,里面包含 Play Core 插件以及其他 Play 插件,例如 Play 应用内购买结算插件和 Play 免安装体验插件。

下载 Play Core Native SDK

您必须先接受以下条款及条件才能下载。

条款及条件

上次修改时间:2020 年 9 月 24 日
  1. 使用 Play Core 软件开发套件,即表示您同意在遵守 Google API 服务条款(以下简称“API 服务条款”)的同时,也遵守这些条款。如果这些条款与 API 服务条款存在冲突,以这些条款为准。请仔细阅读这些条款和 API 服务条款。
  2. 就这些条款而言,“API”是指 Google 的 API、其他开发者服务和相关软件(包括任何可再分发代码)。
  3. “可再分发代码”是指 Google 提供的调用 API 的对象代码或头文件。
  4. 根据这些条款和 API 服务条款的规定,您可以复制和分发可再分发代码,但只能纳入为您的 API 客户端的一部分。Google 及其许可人拥有可再分发代码的所有权利、所有权和利益,包括任何及所有知识产权和其他专有权利。您不得修改、翻译可再分发代码,也不得创作可再分发代码的衍生作品。
  5. Google 随时可变更这些条款,如有变更,Google 会向您发出通知,同时您可以选择不继续使用 Play Core 软件开发套件。Google 会在 https://developer.android.com/guide/playcore/license 上发布条款修改通知。变更不具有追溯效力。

下载 Play Core Native SDK

下载 Play Core Native SDK

play-core-native-sdk-1.10.2.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 随时可变更这些条款,如有变更,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 的“数据安全”部分针对您的应用的用户数据收集、分享和安全做法提供的表单,您需自行负责决定如何回应。