5

在使用 Monkey 调试我的应用程序(这几乎和真实的东西一样有趣)时,我设法崩溃了!是的,这就是它的用途,对吧?

查看日志(并在观看时)我注意到 Monkey 偶尔会这样做:

:Sending Flip keyboardOpen=true

这似乎是我的问题的一部分。发生这种情况时,模拟器中的屏幕会旋转 90 度,但这与通过按 KEYPAD_7 获得的常规旋转不同。这是一张图片:

屏幕方向异常

在我看来,模拟器正在模拟键盘打开(翻转),这与旋转略有不同。

所以问题是:我如何自己模仿?当然,运行 Monkey 很整洁,但是等待它随机选择发送一个keyboardOpen 消息是没有办法调试程序的。

4

1 回答 1

2

也许使用将--pct-majornav猴子限制为“主要”导航事件(我假设键盘更改是“主要”,但我不确定)。

您还可以考虑基于不同但相似的 monkeyrunner 框架编写特定测试:http: //developer.android.com/guide/developing/tools/monkeyrunner_concepts.html ...但我看不到任何注入方式键盘翻转代码。

我发现了这个相关的 SO 问题: 在模拟器中模拟打开/关闭硬件键盘,但那里的“答案”令人困惑并且似乎不够。

不是你的问题,而是与你的根本问题有关:

您是否忘记在清单文件的“android:configChanges”部分中包含“keyboardHidden”?(或者您是否包含它,但您不处理配置更改回调?)

键盘隐藏/显示将重新启动您的活动。您可以声明您处理该重新启动,或者如果您不这样做,操作系统将停止并重新启动应用程序本身。

请参阅http://developer.android.com/guide/topics/resources/runtime-changes.html

更新

我相信是猴子应用程序键盘翻转事件的来源。看起来注入键盘翻转事件相对简单:打开 /dev/input/input0 并向其中写入 16 个神奇字节。

此外,来源似乎有一个未记录的 --pct-flip 用于控制键盘翻转率的选项:链接

于 2011-10-14T17:57:10.713 回答