移动应用调试

MobileTogether 是一款用于构建高度复杂、优雅且跨平台的解决方案的工具。开发人员需要移动应用程序调试工具,以便在开发过程中进行故障排除,并了解应用程序的行为。MobileTogether Designer 提供了全面的应用程序执行流程调试功能,可以在动作树内部进行调试 XPath/XQuery 函数的调试. 这些功能被整合到一个工具中,并通过两个移动应用调试视图提供给用户。

“操作调试器”视图允许开发者调试控件事件或页面事件中的“操作”。当在处理过程中遇到已选定用于调试的“操作”时,该视图将可用。 “XPath 调试器”视图会打开 XPath/XQuery 评估器窗口,用于深入跟踪和调试表达式。

开发者可以在代码的多个位置设置断点,然后逐行执行程序,并在任何一个界面暂停,以便检查完整的运行环境。

让我们来看看移动应用调试的实际操作:

在之前的一篇文章中,我们介绍了用于移动应用开发的编程技巧,并使用一个空气质量应用来演示移动应用中的一个子程序。这个子程序,以MobileTogether动作组的形式实现,它根据API返回的数据(以格林威治标准时间GMT和调整值形式提供)计算出空气质量数据的本地时间。我们可以调试这个子程序,以确保我们的计算结果是准确的。

首先,我们将在“Calc 本地时间”动作组的顶部设置一个断点,以便在调用该子程序时暂停执行

您可以添加任意数量的断点,并且无需担心以后难以找到它们。这些断点可以通过主调试菜单进行管理:

我们还使用了菜单来设置“在下一个断点处停止”的选项。现在,我们可以运行我们的应用程序在模拟器中,它会正常执行,直到调用“Calc local time”操作组。

以下图片展示了当应用程序在断点处暂停时,模拟器上的显示界面。用户选择了伦敦的城市报告,应用程序调用了API,现在它想要根据返回的数据计算当地时间:

屏幕左侧打开了两个调试窗口。在顶部,我们可以看到即将执行的操作,红色断点和绿色箭头标记了当前步骤。在下面的窗口中,我们可以看到执行流程中,通往当前操作组的调用堆栈。

调用堆栈显示中,加号按钮会显示在调用动作组时传递的参数值。我们可以在顶部点击“逐步执行”按钮,以逐个步骤继续执行:

等等,伦敦不就在英国格林威治的同一时区吗?它不应该需要根据格林威治标准时间(GMT)进行调整吗?我咨询了所有的智能助手和搜索引擎,它们都告诉我,伦敦和格林威治都使用英国夏令时,比格林威治标准时间快一个小时。

无论如何,这就是API返回的数据,所以我们可以继续。 仔细查看代码注释,我们来到了第一个“更新节点”操作:

localDateTime 节点被设置为 $time 参数的值。

再次进行:

为了与 add-hours-to-dateTime() 函数所需的语法相匹配,我们在日期和时间之间插入字母 "T"。

再次进行:

已增加调整工时。

再次进行:

有什么需要调整的吗?没有。

再次进行:

将字母“T”替换为空格。

再次进行:

注释行标志着“操作”组的结束。现在,我们可以使用位于顶部的绿色箭头“运行”按钮,继续应用程序的正常运行。一个子页面会打开,用于显示空气质量指数

因此,通过“操作视图”对移动应用程序进行调试,我们验证了我们的逻辑是正确的。

但是,在每一步都保存中间结果都非常繁琐且不必要。我们应该将这些步骤合并成一个表达式:

最初的三个操作已被禁用,并被一个包含复杂表达式的单一操作所取代。我们可以使用 XPath 调试视图来测试这个表达式。

我们本可以无缝地在不同视图之间切换,但我们暂停了第一次调试会话,以便修改表达式。现在,我们将运行这个新版本在模拟器中。这次,当它在断点处停止时,我们将使用“步入 XPath”按钮,以便在 XPath/XQuery 调试视图中启动移动应用调试:

XPath/XQuery 评估器窗口会打开,调试器开始评估表达式:

现在,我们将使用 XPath 窗口中的“步进”按钮,继续逐步分析表达式:

图像底部的区域显示了当调用动作组时,所提供的参数的内容。变量“$time”的数据来源是一个包含字符串数据的JSON节点,该节点由API返回。

再次进行:

在表达式内部,我们仍然需要确保变量 T 遵循 add-hours-to dateTime() 函数的语法规则。

再次进行:

现在我们已经真正进入了计算过程,并完成了表达式的计算。在这个过程中,原始的 $time 参数是 2020-08-03 07:00:00,而用于调整的 $adj 值是 -07:00。 最终,我们的计算结果是 2020-08-03T00:00:00。

下一步的操作是进行测试,以确定是否需要对分钟数进行调整。由于“adj”参数以“00”结尾,因此该测试会失败,此时“T”会被替换,并且会显示子页面

如果您正在进行跨平台开发,您需要一款具有移动应用调试功能的工具。请查看我们的 MobileTogether 视频演示, 更多 示例应用程序, 或者,甚至是…… 在线手册 如果您想深入了解所有相关信息,并且准备好立即开始,以最快的速度构建您自己的跨平台移动应用程序,那么 下载 MobileTogether 设计器 开始吧。