首页 » AppInventor » 调试 App Inventor 应用的正确方法

调试 App Inventor 应用的正确方法

制作 App Inventor 应用时,总有遇到需要窥探某个变量,或者是查看事件参数等的时候,常见的做法有2种:1、在屏幕添加标签等可以显示文本的组件,将信息显示为组件的文本;2、使用对话框组件,将信息在对话框中弹出,或者在通知中显示。

显然,这两种做法都有非常严重的缺陷:1、调试增加的组件破坏了应用原本的逻辑,在生成APK前必须隐藏或删除,增加又删除组件需要花费大量时间,效率低;2、调试信息的显示不及时,例如需要在循环中查看某个变量,对话框组件就不能胜任,使用组件又太混乱;3、组件显示出来的调试信息,难以定位到底是由哪个代码块输出。

针对这些问题,下面介绍本篇的主角 —— “输出调试信息”块,并以百度语音识别为例,介绍该代码块的使用。

这个块输出的信息,只有连接AI伴侣时才有效果。输出文本显示到浏览器逻辑视图的调试信息面板,在生成的APK中无效,所以生成APK前无需禁用或删除。

在“人工智能”分类的百度语音识别组件中,有3个识别结果事件,分别是“获得中间结果”、“获得最终结果”和“获得语义结果”。顾名思义,“获得中间结果”在识别的过程中触发,系统会根据上下文自动更正识别结果,中间结果与最终结果可能不一致。“获得最终结果”在识别结束之后触发,“获得语义结果”只有使用语义模型时才触发。在设计视图中拖出所需的组件,如图:

切换到逻辑视图,拼接按钮的点击事件及识别结果事件的代码块,如图:

上面代码块在屏幕中动态创建标签,并把识别结果显示到标签中。

连接上AI伴侣,点击“开始识别”按钮,对着手机说话:

在第二次识别时,从中间结果可以看出“zheng”开始被识别为“郑”,读出“zhengque”之后,系统自动更正为“正确”。百度语音识别系统给予“郑”更高的优先级,可能是基于词频统计等原因。

当我们要将制作的APK分享给其他人时,并不希望显示大段的中间结果,只能在逻辑视图中将这些块禁用,下次需要调试又要启用,是不是多此一举?下面我们使用“输出调试信息”块:

将“获得中间结果”事件中的创建标签块禁用,增加“输出调试信息”块,开始识别后,工作面板右边的“调试信息面板”会自动展开,显示输出的中间结果。

点击调试面板中的输出信息,自动跳转到对应的”输出调试信息“块。

原文链接:调试 App Inventor 应用的正确方法,转载请注明来源!