迁移概览

Google Play 游戏服务 games v1 SDK 依赖于 Android 版 Google 登录,该功能已弃用,并将于 2025 年从 Google Play 服务 Auth SDK (com.google.android.gms:play-services-auth) 中移除。新游戏应用可以在 2025 年之前使用 games v1。Google 登录的移除为现有游戏应用带来了依赖项问题。将现有游戏应用从 games v1 SDK 迁移到 games v2 SDK 可解决 Google 登录移除导致的依赖项问题。

本文档可帮助您了解游戏应用与各种 SDK 之间的交互。本文档还比较了应用的特性与 Play 游戏服务 games v1 和 games v2 SDK 的特性。

SDK 交互

这些图表说明了 Android 上的游戏应用、Google 移动服务 (GMS) Core、Play 游戏服务和第三方 (3P) 游戏服务器之间的交互。它重点说明了应用如何使用 Google 服务进行身份验证和游戏功能,同时还与单独的第三方系统进行交互。

games v2(当前)

Interaction between a Games Application on
    Android, GMS Core, Play Games Services,
    and a third-party (3P) games server.
Android 上的游戏应用、GMS Core、Play 游戏服务和第三方 (3P) 游戏服务器之间的交互(点击放大)。

games v1(旧版)

Interaction between a Games Application on
    Android, GMS Core, Play Games Services,
    and a third-party (3P) games server.
Android 上的游戏应用、GMS Core、Play 游戏服务和第三方 (3P) 游戏服务器之间的交互(点击放大)。

以下是组件和 SDK 的简要概览

  • 游戏应用。
    • 这代表用户在 Android 设备上运行的游戏应用。
    • 它包含两个主要组件
      • games v1 或 games v2 SDK。负责与 Play 游戏服务交互的客户端 SDK。
      • Auth SDK。Google Play 服务 Auth SDK 负责处理 games v1 中的用户身份验证和授权流程。
    • 两个 SDK 均使用 AIDL (Android Interface Definition Language) 进行通信,这表示不同进程或服务之间的通信模式。
  • GMS Core,也称为 Google Play 服务。
    • 这是 Android 上的 Google 专有层。
    • 游戏应用使用两个 GMS Core 模块
      • Games 模块。提供游戏专用功能,例如排行榜、成就和游戏状态管理。
      • Auth 模块。处理用户身份验证和授权操作。
    • 游戏应用中的 Games 和 Auth SDK 使用 AIDL 接口与相应的模块进行通信,这表示进程间通信 (IPC)。

  • Play 游戏服务网关。
    • 一个逻辑网关,用于协调 GMS Core 与 Play 游戏服务服务器之间的通信。
    • 处理服务器通信的 API 请求、数据转换和身份验证。
  • Play 游戏服务服务器。
    • 代表 Play 游戏服务后端服务,负责存储游戏数据、管理用户帐户和促进多人游戏功能。
  • 第三方游戏网关。
    • 如果您的游戏应用符合第三方 (3P) 应用的条件,则客户端库通过第三方游戏服务器与 Play 游戏服务服务器进行通信。
    • 这意味着该应用还可以使用不同的服务提供商进行身份验证。
  • 第三方游戏服务器。
    • 代表游戏应用可以与其交互的可选外部服务器,可能用于自定义功能或数据管理。
    • 通过第三方游戏网关与应用进行通信。

功能比较

此表提供了 games v1 和 games v2 SDK 之间的功能比较


功能

games v1 SDK

games v2 SDK

身份验证

需要与 play-services-auth 集成。

简化和精简;无需 play-services-auth

授权

成功、失败和重试需要额外的代码。

由 SDK 管理

服务器访问令牌

可以使用 GoogleSigninClient 请求额外的 OAuth 2.0 范围。

在登录期间处理错误需要额外的代码。

不允许额外的范围。

使用 serverAuthcode 的成功失败回调的额外代码。

登录流程

使用 GoogleSigninClient

处理自动登录和错误处理的样板代码需要额外代码。

使用 GamesSignInClient

SDK 处理样板代码、自动登录和错误处理。

欢迎弹出窗口

需要额外代码。
开发者可以控制其位置和时间。

无需额外代码。所有使用 games v2 SDK 配置的游戏都具有一致的用户界面。

依赖项

需要 play-services-auth

Games 模块负责授权和身份验证。您无需添加任何额外的依赖项。
退出

使用 GoogleSignInClient.signOut

不支持退出 API。

多个 Play 游戏服务帐户和每游戏设置

可以在您的游戏中进行帐户管理。

用户可以在移动设备设置中更改 Play 游戏服务个人资料。如需了解详情,请参阅 如何在移动设备上切换 Play 游戏个人资料