PC 版 Google Play 游戏要求您对游戏进行 PC 兼容性和优化更改。这些更改可确保您的游戏能在 PC 上运行,并且用户体验针对该平台进行了优化。
此外,PC 版 Google Play 游戏还对图形、设备输入和跨设备畅玩有要求。如需了解更多信息,请参阅入门指南。
在进行 PC 兼容性和优化更改(x86-64 支持除外)时,您可以设置您的游戏以检测 PC 版 Google Play 游戏,然后禁用或启用特定于平台的功能。这使您可以将相同的 APK 或应用 Bundle 用于您的 Android 移动版和 PC 版发布。
以下是本页面上的要求和建议摘要
- 包含 x86-64 ABI(必需)
- 在运行时检测 Google Play 游戏(推荐)
- 处理 onPause 事件(推荐)
- 更新 UI 元素(必需)
- 禁用 Android 应用权限对话框(必需)
- 禁用不支持的 Android 功能和权限(必需)
- 将 WebView 替换为浏览器意图(推荐)
- 禁用不支持的 Google Play 服务 API(必需)
- 启用分区存储(必需)
- 迁移到 Google Analytics(分析)4(推荐)
包含 x86-64 ABI 架构
发布流程要求
您的游戏包含的所有库都需要 x86-64 ABI 兼容版本,以确保在该平台上获得最佳性能和稳定性。
如果您的游戏在技术上无法发布 64 位 x86 可执行文件,您必须联系审核团队申请例外。您的游戏在获得例外后无法达到完整认证,但可以作为“可玩”游戏放入目录中。
库编译
为确保最佳的 x86-64 处理器兼容性,在编译库时不要使用 atom 指令集。例如,使用 gcc
时,请避免使用 -march=atom
,而是使用 -march=x86-64
。
Unity 中的目标架构
Unity 2019 和 2020 的某些版本在 Android 上缺少 x86-64 架构支持。请确保您使用的是 Unity 2019.4.31f1、2020.3.19f1 或更高版本。
如果您的游戏使用兼容的 Unity 游戏引擎版本,请执行以下操作以启用 x86-64 Android 目标:
转到 Player Settings > Other Settings > Configuration > Scripting Backend,然后从下拉菜单中选择 IL2CPP 以启用 IL2CPP 脚本后端。
为您的 Unity 版本启用 x86-64 Android 目标
Unity 2018 及更早版本:转到 Player Settings > Other Settings > Target Architecture,然后选中 x86 复选框。由于 Unity 2018 仅支持 x86 目标,您将无法构建 x86-64。此构建将需要审核团队的例外批准。请联系您的 Google 联系人以请求 x86 例外。
Unity 2019 长期支持 (LTS) 版本及更高版本:转到 Player Settings > Other Settings > Target Architectures 并启用 x86-64 (ChromeOS)。
检测 PC 版 Google Play 游戏
您可以在运行时检测 PC 版 Google Play 游戏平台,从而在游戏中启用或禁用特定于平台的功能。
检查系统功能 com.google.android.play.feature.HPE_EXPERIENCE
以确定您的游戏是否正在 PC 版 Google Play 游戏平台上运行
Kotlin
var isPC = packageManager.hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")
Java
PackageManager pm = getPackageManager(); boolean isPC = pm.hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")
C#
var unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); var currentActivity = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity"); var packageManager = currentActivity.Call<AndroidJavaObject>("getPackageManager"); var isPC = packageManager.Call<bool>("hasSystemFeature", "com.google.android.play.feature.HPE_EXPERIENCE");
处理 Android 生命周期事件
在 PC 版 Google Play 游戏环境中处理 onPause
(c++)事件非常重要。当玩家激活模拟器叠加层时,您的游戏是可见的,因此未能侦听 onPause
事件可能会导致糟糕的用户体验。
更新 UI
某些 UI 元素和手势不适用于 PC,应进行更新。
必需
- 替换需要两根或更多手指的 UI 操作(多点触控手势)。例如,您应该用相应的鼠标和键盘输入替换双指张合缩放和其他多点触控手势。有关设备输入更改的详细信息,请参阅输入支持。
推荐
- 所有用户可见的文本都应显示“点击”而不是“轻触”。
- 可滚动列表应具有滚动条。
- 用户可以平移的区域应具有滚动条或以其他方式快速遍历大距离。
- 不要在屏幕上显示可点击的键盘用于文本输入。
- 所有文本输入都应在文本字段边界内。
- 对可见元素的点击应
- 接受元素可见边界内的任何位置的点击。
- 不接受在可见元素区域外的点击。
- 对话框应具有可见的关闭按钮。不要检测对话框边界之外的点击。
禁用大多数权限对话框
除了麦克风和通知权限外,PC 版 Google Play 游戏不显示权限对话框,因此您不应尝试在运行时显示它们或请求权限。如果您之前显示过权限对话框,则应更新您的游戏,使其不再在 PC 上显示这些对话框。
不支持的 Android 功能和权限
发布流程要求
移动手机和平板电脑上的一些常见硬件功能在 PC 上不可用。这包括摄像头或玩家位置等硬件功能。任何需要缺少功能的游戏都无法在玩家的 PC 上下载和安装。对 PC 上任何缺少功能的请求都会自动失败。
您可以通过键入以下内容查看可用功能的完整列表:
adb shell pm list features
为了使您的游戏与 PC 兼容,需要进行以下更改:
请通过在
<uses-feature>
声明中添加android:required="false"
将功能标记为可选。这仅适用于已在应用清单中声明的功能。请勿尝试在运行时使用缺少的功能。如果您的移动版和 PC 版都使用相同的 APK,请在运行时检测 PC 环境并避免相关的代码路径。
请勿在运行时请求不支持的 Android 权限。如果您的移动版和 PC 版都使用相同的 APK,请在运行时检测 PC 环境并避免相关的代码路径。您无需更新您的清单。
有关应用清单兼容性的更多信息,请参阅 Chromebook 应用清单兼容性指南。
功能测试要求
在向 Google Play 管理中心提交第一个测试版本之前,移除以下硬件功能:
android.hardware.wifi
android.hardware.bluetooth
android.hardware.camera
android.hardware.location
出于兼容性原因,运行 pm list features
时,其中一些功能可能被列为支持,但并未完全实现。有关如何移除 android.hardware.wifi
功能的更多信息,请参阅监控连接状态和连接计量。有关不支持功能的完整列表,请参阅 Chromebook 应用清单兼容性指南。
质量测试要求
这些常用硬件功能与 PC 不兼容,因此您必须在向 Google Play 管理中心进行最终提交之前将其移除:
android.hardware.audio.pro
android.hardware.bluetooth
android.hardware.camera
android.hardware.consumerir
android.hardware.location
android.hardware.nfc
android.hardware.sensor.light
android.hardware.sensor.accelerometer
android.hardware.sensor.barometer
android.hardware.sensor.compass
android.hardware.sensor.gyroscope
android.hardware.sensor.proximity
android.hardware.telephony
android.hardware.touchscreen
android.hardware.usb.accessory
android.hardware.usb.host
android.hardware.wifi
android.software.midi
不支持的权限
以下常用权限在 PC 上不受支持,因此您的游戏必须为 PC 版 Google Play 游戏禁用它们:
android.permission.ACCESS_COARSE_LOCATION
android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_WIFI_STATE
android.permission.BLUETOOTH
android.permission.CAMERA
android.permission.FOREGROUND_SERVICE
android.permission.GET_ACCOUNTS
android.permission.INSTALL_PACKAGES
android.permission.READ_CONTACTS
android.permission.READ_EXTERNAL_STORAGE
android.permission.READ_PHONE_STATE
android.permission.RECEIVE_BOOT_COMPLETED
android.permission.REQUEST_INSTALL_PACKAGES
android.permission.SYSTEM_ALERT_WINDOW
android.permission.USE_CREDENTIALS
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.WRITE_SETTINGS
com.google.android.gms.permission.ACTIVITY_RECOGNITION
外部网站和 WebView
浏览器意图会在 PC 的原生网络浏览器中加载,而不是在 PC 版 Google Play 游戏环境中加载。在大多数情况下,这对玩家来说是理想的体验。
为了便于移植,PC 版 Google Play 游戏确实支持 WebView。由于这会在 PC 版 Google Play 游戏环境中打开,它将缺乏典型的桌面浏览器功能。如果您之前使用 WebView
来分享您的服务条款、隐私政策或其他类似内容,您应该改为调用浏览器意图。
禁用不支持的 Google Play 服务 API
发布流程要求
PC 版 Google Play 游戏附带其自己的 Google Play 服务变体,该变体仅包含 Google Play 服务 API 的子集。您需要确认您的应用不强烈依赖于在 PC 上省略或不支持的模块。请注意,某些模块可能可用,但其功能并非始终受支持。例如,当 PC 版 Google Play 游戏关闭时,Firebase Cloud Messaging 将无法运行。
支持的模块
这些模块目前在 PC 版 Google Play 游戏上可用并受支持,并计划提供额外的功能支持:
有限支持
以下模块部分可用。我们将尽最大努力在 PC 版 Google Play 游戏上支持它们,但我们无法保证其功能。
- Google Cloud Messaging(已弃用,请使用 Firebase Cloud Messaging)
- Firebase Authentication(电话号码身份验证无法使用)
- Firebase Cloud Messaging
- Firebase Common Libraries
- Firebase ML
- Firebase Remote Config
- Firebase Analytics
不支持
这些模块在 PC 版 Google Play 游戏上不受支持,但在它们失败时不会在 PC 版 Google Play 游戏上引起问题:
- Google Analytics(分析)(已弃用,请使用 Firebase Analytics)
- Google Cast
- Awareness API
- 云端硬盘(已弃用,即将移除)
- FIDO
- Firebase Realtime Database
- Firestore
- Firebase A/B Testing
- Google Fit
- Address API
- Instant Apps API
- Location API
- Google Maps SDK
- Nearby
- Panorama
- Places
- Google+
- SafetyNet(已弃用,请填写意向表以选择加入即将推出的 Play Integrity API)
- Google Tag Manager
- Wear OS
损坏
发布流程要求
您不得在 PC 上使用这些模块,因为它们可能会导致 PC 版 Google Play 游戏出现意外行为。
启用分区存储
发布流程要求
本节适用于您的游戏读取或写入外部存储的情况。分区存储强制执行是读取和写入存储的替代方式。这样做消除了向玩家提示这些敏感权限的需要。
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
有关分区存储的更多信息,请参阅:
分析
旧版 Google Analytics(分析)产品在 PC 版 Google Play 游戏上无法运行。如果这适用于您的游戏,您应该将其迁移到Google Analytics(分析)4。
这只有在您当前使用Google Analytics(分析)360时才会影响您的游戏。如果您正在使用 Firebase SDK 来跟踪游戏中的分析事件,并且可以在 Google Analytics(分析)控制台中将您的游戏视为一个属性,那么您无需采取任何进一步的行动。