青阳网>要闻>正文

研发实战:用『日志+控制台命令』辅助开发移动VR应用

2019-09-11 11:00:00 映维网 分享

查看引用/信息源请点击:映维网

用UE4开发VR应用的一系列建议

映维网 2019年07月16日)Turtle Rock是一家老牌亚博登录注册--任意三数字加yabo.com直达官网工作室,着名作品包括《求生之路》和《进化》,以及《反恐精英》系列等等。随着虚拟现实的兴起,这家工作室同样有涉足其中,并为社区带来了《Journey of the Gods》和《Face Your Fears 2》等热门亚博登录注册--任意三数字加yabo.com直达官网。

日前,Turtle Rock工作室的Brock Heinz介绍了利用Ureal 4引擎来开发VR应用的一系列建议。下面是映维网的具体整理,希望能够给你带来一定的借鉴参考。

如果你是刚开始涉足Quest,Go或Gear VR,你在开发UE4亚博登录注册--任意三数字加yabo.com直达官网时或许不知道所有可用的标准开发工具。对于这篇博文,我将向你说明在为基于Android的移动VR亚博登录注册--任意三数字加yabo.com直达官网时应如何选择获取这种工具。我们在为Oculus Quest带来《Journey of the Gods》和《Face Your Fears 2》时都是利用了这些相同的工具。

1. 利用ADB来控制设备

你会用到Android Debug Bridge(adb)命令行工具。要使用它,请打开命令提示符并键入“adb”,然后键入所需的命令:

C:Temp>adb devices
List of devices attached
e6555e96 device

1.1 检索日志

你可以通过adb“pull”命令来从设备中检索文件。只要你知道完整路径,就可以使用它来提取日志和其他文件:

adb pull /sdcard/UE4Game/ProjectName/ProjectName/Saved/Logs

1.2 截图

你可以直接通过命令行来获取截图,然后再将它从设备拿到PC。

adb shell screencap -p /sdcard/screencap.png
adb pull /sdcard/screencap.png

1.3 安装应用程序

UE4的软件包构建过程将生成可用于安装/卸载应用程序的.bat文件,但如果需要,你可以通过adb手动完成。 你可以用文件名进行安装,并提供“-g” flag以授予应用程序所有权限。你可以通过指定APK文件名来安装:

adb install -g ProjectName-armv7-es2.apk

1.4 卸载应用程序

你可以通过指定APK文件名来卸载:

adb uninstall com.yourcompany.yourproject

1.5 启动应用程序

你可以通过向应用程序管理器发出命令,并提供应用程序的程序包名称来启动应用程序:

adb shell am start -n
com.yourcompany.yourproject/com.epicgames.ue4.GameActivity

1.6 停止应用程序

adb shell am force-stop com.yourcompany.yourproject

2. 实时获取日志

利用Android的实时日志获取功能,你可以获得大量有用的信息,亦即所谓的Logcat。打开命令提示符并运行以下命令:

adb logcat

这时你会看到:

这通常包括与你当前重点无关的信息。你可以使用过滤器来显示所需的信息。例如,这些Logcat过滤器将显示VrApi性能统计信息:

adb logcat VrApi:I –regex=”FPS=”

我们发现使用Android Device Monitor实用程序更容易从Quest获取实时日志记录数据。除了易于使用的UI之外,它同时包含许多其他有用的开发工具。

要访问Android Device Monitor,请使用指向这一批处理文件的快捷方式:

C:NVPACKandroid-sdk-windows oolsmonitor.bat

启动之后,你会看到类似这样的窗口。要从Quest看到Logcat信息,你需要在Devices列表中进行选择。

你要做的第一件事是进入首选项并增加消息缓冲区的大小:

现在创建几个过滤器。当你添加下面的过滤器时,你只会看到运行在Quest的UE4应用程序的日志消息。

3. 控制台命令

UE4提供了一种通过Broadcast Intent向运行在Android设备的亚博登录注册--任意三数字加yabo.com直达官网发送控制台命令的方法:

adb shell “am broadcast -a android.intent.action.RUN -e cmd ‘CONSOLE COMMAND GOES HERE’”

例如,这个命令将打开亚博登录注册--任意三数字加yabo.com直达官网内的帧时间显示:

adb shell “am broadcast -a android.intent.action.RUN -e cmd ‘stat unit’”

但是,它用起来有点繁琐。兴趣的是,你可以使用doskey命令来创建宏:

doskey com=adb shell “am broadcast -a android.intent.action.RUN -e cmd ‘$*’”
com stat unit

4. 诊断崩溃

如果需要调查崩溃,你有几个选择。如果崩溃容易重复出现,你可以使用Android Device Monitor来获取实时日志记录,然后触发崩溃。只要你是用Symbols安装了开发或调试版本,你就会看到一个Callstack,包括导致崩溃的函数和其他相关的信息:

如果你在亚博登录注册--任意三数字加yabo.com直达官网崩溃时没有运行Android Device Monitor,或者你需要QA团队正在使用的头显的崩溃数据,你可以通过adb从设备检索错误报告信息:

adb bugreport
/data/user_de/0/com.android.shell/files/bugreports/bugrepo…39.zip: 1 file pulled. 37.2 MB/s (1393690 bytes in 0.036s)

如果你打开zip文件,你将找到有关设备状态的大量日志和其他数据。我们需要的信息位于“data/tombstones”文件夹中。查找包含发生崩溃时对应的时间和日期戳的tombstone文件,并在文本编辑器中将其打开。只要版本包含Symbols,你应该能看到导致崩溃的函数调用,类似于Android Device Monitor的输出。

5. 发送Command Line Switches

UE4无法直接将command line switch发送给应用程序,但你可以通过一定的代码改动来添加这项功能。这是通过UE 4.21实现,但应该很容易适配其他引擎版本。

有了这个代码,当用adb启动亚博登录注册--任意三数字加yabo.com直达官网时你就可以将命令行参数发送给亚博登录注册--任意三数字加yabo.com直达官网。例如,下面的代码将启动亚博登录注册--任意三数字加yabo.com直达官网并Garbage Collection验证,这有助于减少开发中的阻碍:

adb shell am start -e extraArg -NoVerifyGC -n gg.trs.porter/com.epicgames.ue4.GameActivity

我们稍稍简化了这个过程,我们在UE4打包过程生成安装和卸载批处理文件时生成了“Launch.bat”文件。 如果你希望对项目进行相同的更改,你可以轻松通过AndroidPlatform.Automation.cs进行改动。

6. 基本的性能分析

当亚博登录注册--任意三数字加yabo.com直达官网运行在Quest或Go时,我们可以开始使用以下工具从亚博登录注册--任意三数字加yabo.com直达官网中获取一定的基本分析信息。

6.1 实时性能统计数据

你可以使用“stat unit”命令获取实时性能统计信息的屏幕显示:

com stat unit

6.2 内存使用情况

你可以随时生成内存报告。我们将在以后的帖文中进一步讨论这个问题:

com memreport -full
adb pull /sdcard/UE4Game/Redwood/Redwood/Saved/

6.3 CPU性能分析

这个Profiler工具可以帮助你捕获设备的性能分析统计信息,并将其导入至编辑器中。 你可以打开统计数据记录,打开一会亚博登录注册--任意三数字加yabo.com直达官网,然后关闭记录,并使用以下代码来获取数据:

声明:本站部分资源来源于网络,版权归原作者或者来源机构所有,如作者或来源机构不同意本站转载采用,请通知我们,我们将第一时间删除内容。本站刊载文章出于传递更多信息之目的,所刊文章观点仅代表作者本人观点,并不意味着本站赞同作者观点或证实其描述,其原创性及对文章内容的真实性、完整性、及时性本站亦不作任何保证或承诺,请读者仅作参考。
编辑:小青