Google Play 游戏 on PC 开发者模拟器 是针对 Google Play 游戏 on PC 的开发者专用模拟器。与玩家体验不同,您可以安装和调试自己的软件包。您还可以模拟各种玩家配置,例如纵横比、鼠标模拟和图形后端,以帮助您确保您的游戏在各种 PC 配置中都能如预期般运行。
启动模拟器
安装后,您将有一个“Google Play 游戏开发者模拟器”开始菜单元素和一个桌面快捷方式来启动模拟器。当您关闭窗口时,模拟器将驻留在系统托盘中。
登录
第一次运行模拟器时,系统会要求您登录您的 Google 帐户。使用您计划用于开发的相同登录凭据。
您可以通过右键单击系统托盘图标,选择开发者选项,然后单击强制退出来退出登录。这样做后,模拟器会立即重新启动并再次要求您登录。
导航
启动后,您将看到一个典型的 Android 主屏幕。左键单击直接转换为手指点击,如同在鼠标模拟模式中一样。为开发而加载到侧面的游戏将出现在应用程序列表中,您可以通过点击并向上拖动桌面(模拟在手机或平板电脑上向上滑动)进入应用程序列表。
除了鼠标转换外,Google Play 游戏 on PC 开发者模拟器还提供键盘快捷键来改进导航
ctrl + h : 按主页按钮ctrl + b : 按后退按钮F11 或alt + enter : 在全屏模式和窗口模式之间切换shift + tab : 打开 Google Play 游戏 on PC 覆盖层,包括输入 SDK 的当前按键映射
安装游戏
Google Play 游戏 on PC 开发者模拟器使用 Android 调试桥 (adb) 来安装软件包。
adb 兼容性
当前版本的 adb
与 Google Play 游戏 on PC 开发者模拟器兼容。此外,在您安装模拟器时,一个兼容的版本将安装在 C:\Program Files\Google\Play Games Developer Emulator\current\emulator
中。
要按照这些说明操作,adb 应该在您的 $PATH
中可用。您可以使用 adb devices
命令验证 adb
是否已正确配置。
adb devices
List of devices attached
localhost:6520 device
安装游戏
- 启动
Google Play 游戏 for PC Emulator
在命令提示符中键入
adb devices
。您应该看到adb devices List of devices attached localhost:6520 device
疑难解答
- 如果您遇到错误,请验证您是否已按照 Adb 兼容性 中的说明操作。
- 如果看不到设备,请尝试通过端口
6520
重新连接
adb connect localhost:6520
键入
adb install path\to\your\game.apk
以安装您的游戏。如果您已生成 Android 应用包 (aab),请参阅有关 bundletool 的说明,并使用bundletool install-apks
代替。通过以下任一方法运行您的游戏
- 键入
adb shell monkey -p your.package.name 1
以运行您的游戏,将your.package.name
替换为您的游戏的包名称。 - 在 Google Play 游戏 on PC 开发者模拟器中,单击图标以运行您的游戏。就像在 Android 手机上一样,您必须在主屏幕上“向上滑动”才能看到已安装游戏的列表。
- 键入
调试游戏
使用 Android 调试桥 (adb) 进行调试,就像您对任何其他游戏一样。模拟器显示为通过 localhost:6520
连接的设备。
adb logcat
按预期工作,帮助美化或过滤 logcat 输出的工具也是如此,包括 Android Studio。
除了 adb
外,您还可以从 %LOCALAPPDATA%\Google\Play Games Developer Emulator\Logs
目录访问日志。这里最有用的是 AndroidSerial.log
,它表示模拟器启动后 adb logcat
将回显的所有内容。
开发者设置
Google Play 游戏 on PC 开发者模拟器专注于开发效率,而不是最终用户体验。这意味着您可以无障碍访问 Android 系统,包括使用标准 Android 启动器而不是 Google Play 游戏 on PC 体验,以及控制对玩家通常自动启用和禁用的功能的控制。
测试鼠标输入
在开发过程中,Google Play 游戏 on PC 开发者模拟器默认情况下使用触摸模拟,而不是为您提供直接的鼠标输入。您可以通过右键单击系统托盘图标,选择开发者选项,然后选择PC 模式 (KiwiMouse) 来启用直接鼠标输入。
Google Play 游戏 on PC 有两种鼠标模式:一种是模拟模式,它将鼠标点击转换为单次点击,另一种是直通“PC 模式”,它允许游戏以原生方式处理鼠标操作并执行指针捕获。有关 Google Play 游戏 on PC 中鼠标输入的详细信息,请参阅 设置鼠标输入。
在玩家客户端中,可以通过将以下内容添加到清单中来禁用模拟
<manifest ...>
<uses-feature
android:name="android.hardware.type.pc"
android:required="false" />
...
</manifest>
此功能标志在开发环境中不起作用。
测试纵横比
开发者模拟器以 16:9 的纵横比启动,这与玩家客户端不同,后者从主显示器获取其纵横比。通过右键单击系统托盘图标,选择开发者选项,然后选择显示比例部分中的任何选项,您可以测试游戏在不同玩家的屏幕上的显示效果。
配置纵横比的首选方法是使用 android:minAspectRatio
和 android:maxAspectRatio
。
例如,纵向游戏将具有 9/16
或 0.5625
的纵横比,因此您可能希望将最大纵横比设置为 1
以防止您的游戏比正方形更宽
<activity android:maxAspectRatio="1">
...
</activity>
类似地,横向游戏将为 16/9
或大约 1.778
,因此您可能希望将最小纵横比设置为 1
以防止它比正方形更窄
<activity android:minAspectRatio="1">
...
</activity>
测试内容
如果您的游戏只支持清单中的纵向模式,您可以选择下拉列表中的9:16 (纵向) 以查看它在玩家的 PC 上的显示效果。否则,验证您的游戏是否在清单中支持的最宽和最窄的横向比例下工作,记住16:9 (默认)(或如果您的游戏是纵向模式,则为9:16 (纵向))是完整认证所必需的.
测试渲染后端
Google Play 游戏在 PC 上使用 ANGLE 作为兼容层,以确保 OpenGL ES 调用通过 DirectX 或 Vulkan 后端在主机 PC 上得到正确处理。模拟器也直接支持 Vulkan,但不在 DirectX 上。此层还将移动专用压缩纹理格式转换为 PC 兼容格式。通过右键单击系统托盘图标并选择 **图形堆栈覆盖**,您可以将其设置为系统默认值或强制打开或关闭 Vulkan 以进行兼容性测试。
测试内容
支持的纹理格式以及在桌面模拟各种移动功能所需的步骤略有不同。在分析和优化游戏时,可能值得检查每个后端。
分析您的 PC 游戏
由于模拟器使用与消费者客户端相同的技术,因此它是进行性能分析的理想环境。
Perfetto 是用于分析 Android 上性能的工具。您可以使用以下步骤收集和查看 Perfetto 跟踪
在 PowerShell 提示符下,使用
adb
启动跟踪adb shell perfetto --time 10s gfx wm sched --out /data/misc/perfetto-traces/example.trace
- 该
--time
标志指定要收集的跟踪持续时间。在本例中,跟踪持续时间为 10 秒。 - 该
--time
标志后面的参数指示要跟踪的事件。在本例中,gfx
表示图形,wm
表示窗口管理,以及sched
表示进程调度信息。这些是分析游戏的常见标志,完整参考 可用。 - 该
--out
标志指定输出文件,该文件将在下一步中从模拟器拉出到主机上。
- 该
从主机拉取跟踪
adb pull /data/misc/perfetto-traces/example.trace $HOME/Downloads/example.trace
在 Perfetto UI 中打开跟踪
- 打开 ui.perfetto.dev。
- 从 **导航** 下的左上角选择 **打开跟踪文件**。
- 打开
example.trace
您在上一步中下载到Downloads/
目录的文件。
在 Perfetto UI 中检查跟踪。一些提示
- 每个进程都有自己的行,可以展开以显示该进程中的所有线程。如果您正在分析游戏,那么它的进程很可能是第一行。
- 您可以按住 Control 并使用滚轮来放大和缩小。
- 使用
sched
事件时,每个线程都有一个行显示该线程的运行、可运行、睡眠或阻塞状态。 - 启用
gfx
等事件时,您可以看到不同线程执行的各种图形调用。您可以选择单个“切片”以查看它们花费的时间,或者您可以在一行上拖动,导致“切片”部分在底部打开并显示您在所选时间窗口内所有切片花费的时间。
图形分析
可以使用 RenderDoc 执行一些图形分析。
- 设置环境变量
ANDROID_EMU_RENDERDOC
为非空字符串(例如"1"
)。 设置环境变量
TMP
为%USERPROFILE%\AppData\LocalLow
。这告诉 Renderdoc 将其日志文件放在模拟器沙箱中可访问的位置。如果您使用的是 Vulkan 后端。选择 **图形设置** > **Vulkan 实例隐式层** 并确保选中 **VKLAYER_RENDERDOC_Capture**。
启动 Google Play 游戏在 PC 开发人员模拟器上。只要支持启用,Renderdoc 叠加就会在顶部绘制。
在 Google Play 游戏在 PC 开发人员模拟器启动之前或之后随时启动 Renderdoc。
单击 **文件** > **附加到正在运行的实例** 并选择 **crosvm**。
指定环境变量
为了使 Renderdoc 正常工作,您必须在 Windows 中添加或更改环境变量。您可以使用 UI、PowerShell 或 cmd.exe 更改环境变量。
使用 UI
- 按
Win+R 打开运行对话框。 - 输入
sysdm.cpl
打开 **系统属性** 窗口。 - 如果尚未激活,请选择 **高级** 选项卡。
- 单击 **环境变量** 按钮。
从这里,您可以单击 **新建** 按钮创建新的环境变量,也可以选择一个变量并单击 **编辑** 按钮对其进行编辑。
使用 PowerShell
在 PowerShell 窗口中,输入
$Env:VARIABLE_NAME=VALUE
将 VARIABLE_NAME
和 VALUE
替换为要设置的值。例如,要设置 ANDROID_EMU_RENDERDOC
为 "1"
,请输入
$Env:ANDROID_EMU_RENDERDOC="1"
使用 cmd.exe
在 cmd.exe 窗口中,输入
set VARIABLE_NAME=VALUE
将 VARIABLE_NAME
和 VALUE
替换为要设置的值。例如,要设置 ANDROID_EMU_RENDERDOC
为 "1"
,请输入
set ANDROID_EMU_RENDERDOC="1"
适用于 Android 11(API 级别 30)或更高版本的提示
Google Play 游戏在 PC 上会随着最新的 Android 版本而更新。以下是一些使用最新版 Android 的提示。
使工具保持最新
Android Studio 安装了与开发人员模拟器兼容的 adb 版本;但是,一些游戏引擎包含旧版本的 adb。在这种情况下,在安装开发人员模拟器后,您可以在 C:\Program Files\Google\Play Games Developer Emulator\current\emulator
中找到与之兼容的 adb
版本。
如果您启动一个版本的 adb
,它将终止另一个版本。这意味着,如果您的游戏引擎自动启动其自己的 adb
实例,则您可能必须在每次部署时重新启动并重新连接随开发人员模拟器附带的 adb
版本。
如果您使用的是 Android 应用包,则必须从 GitHub 存储库 安装最新版本的 Bundletool。
作用域存储
Android 11(API 级别 30)或更高版本包含 作用域存储,它可以更好地保护外部存储上的应用和用户数据。除了使您的游戏与 作用域存储要求 兼容之外,您还需要执行额外的步骤才能将 APK 扩展文件 (obb) 或资产数据加载到 Google Play 游戏在 PC 开发人员模拟器上。如果您在从游戏中访问这些文件时遇到问题,请按照以下步骤操作
- 创建您的应用可以读取的目录。
- 将您的扩展文件推送到模拟器。
adb shell mkdir /sdcard/Android/obb/com.example.game
adb push main.com.example.game.obb /sdcard/Android/obb/com.example.game
包可见性
由于新的 包可见性 规则,针对 Android 11(API 级别 30)或更高版本的应用无法查询有关设备上安装的其他应用的信息。这意味着,您的游戏在通过 adb
侧载而不是通过 Play 商店安装时,无法访问 Play 服务。要使用侧载游戏测试您的 IAP,您必须在 AndroidManifest.xml
文件中添加对包 "com.android.vending
" 的查询,如下所示
<manifest>
<queries>
<package android:name="com.android.vending" />
</queries>
</manifest>
在消费者客户端中安装您的游戏
在游戏列入 Play 游戏服务目录之前,您无法在消费者客户端上安装游戏。在游戏发布后,您可以创建一个 内部测试轨道,在发布之前验证未来的更新。
玩家客户端不支持 Google Play 游戏在 PC 开发人员模拟器上的面向开发人员的功能。这最适合在发布之前进行质量保证,以测试初始发布后的端到端玩家体验。