Android:你如何模仿键盘翻转?

时间:2011-10-14 17:23:41

标签: android keyboard emulation flip monkey

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

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

:Sending Flip keyboardOpen=true

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

unusual screen orientation

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

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

1 个答案:

答案 0 :(得分:2)

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

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

我发现了这个相关的SO问题: Simulating opening/closing the hardware keyboard in emulator但“答案”令人困惑,似乎不够。

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

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

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

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

更新

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

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