ActivityManager中的奇怪函数:isUserAMonkey。这是什么意思,它有什么用途?

164

我在 android.app.ActivityManager 包中找到了下面这个函数。

public static boolean isUserAMonkey ()

文档 描述:

public static boolean isUserAMonkey () 自 API 等级 8 起。

如果用户界面当前被猴子搞乱,返回“true”。

我对这个奇怪的函数感到震惊,并有几个问题:

  • 什么是“用户界面当前被猴子搞乱”?

  • 这个函数有什么实际用途?

  • 为什么要使用 isUserAMonkey 作为函数名?


2
没有适当的文档。那么我们如何使用这个函数呢?他们应该对他们的文档进行审查。 - Mahendran
10
震惊猴子 - Jeff Axelrod
1
在我看来,这似乎是测试代码泄漏到生产库中的情况,例如ActivityManager。让你的生产代码知道它当前是否正在进行测试,并根据该知识改变其操作方式,这与测试代码的整个目的相悖,很容易导致隐藏缺陷。它还会增加API的复杂性,使其更难理解和维护。这个SO问题的存在就足以证明这一点。 - Melinda Green
1
当我看到这个方法时,我笑了。 - Marcos Vasconcelos
我认为它源自术语“猴子测试”,可以通过ADB启动。用于随机点击按钮,输入文本等等...以确保系统不会崩溃。 - greysqrl
显示剩余2条评论
3个回答

111

20
没问题,这是网址:http://developer.android.com/guide/developing/tools/monkey.html。建议查看一下。 - Kibi

37

1
这种方法的创造故事非常有趣,我忍不住要分享一下。我认为它完美地解释了为什么需要这样一种方法。
“有一天,我走进猴子实验室听到一个声音说:‘911-你有什么紧急情况?’ 这种情况导致 Dianne 添加了一个新的 API 功能,isUserAMonkey(),用于在测试期间限制猴子不应该执行的操作(包括拨打电话和重置设备)。”
引用自:《Androids: The Team That Built the Android Operating System (Haase, Chet)》

请问您能提供这个轶事的来源链接吗? - Ayxan Haqverdili
@AyxanHaqverdili 修改了我的答案,如果你正在寻找特定的章节,我现在无法提供。 - Sarantis Tofas
@RobIII,我看到一个用外语显示的错误信息。你能提供一下截图吗? - undefined
1
@AykhanHagverdili 这个怎么样?这本书应该是这个。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接