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

Posted

技术标签:

【中文标题】ActivityManager 中的奇怪函数:isUserAMonkey。这是啥意思,它有啥用?【英文标题】:Strange function in ActivityManager: isUserAMonkey. What does this mean, what is its use?ActivityManager 中的奇怪函数:isUserAMonkey。这是什么意思,它有什么用? 【发布时间】:2011-12-09 04:17:15 【问题描述】:

我在包android.app.ActivityManager中找到了以下函数。

public static boolean isUserAMonkey ()

reference 描述:

public static boolean isUserAMonkey () 自:API 8 级

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

我被这个奇怪的功能震惊了。还有几个问题。

这是做什么的(用户界面当前被 猴子)是什么意思?

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

为什么他们使用isUserAMonkey 作为函数名?

【问题讨论】:

没有适当的文档。那么我们如何使用该功能。他们应该对他们的文档进行审查。 根据HefferWolf的回答,这个方法用于android框架的一些自动测试(我认为),所以我们根本不需要使用这个功能..所以不需要PROPER文档。 震惊猴子 在我看来,它就像泄漏到生产库中的测试代码,在本例中是 ActivityManager。让您的生产代码知道它当前是否正在测试,并且可能基于该知识以任何方式改变它的行为,这与测试代码的整个点相悖,这很容易导致海森错误。它还增加了 API 的复杂性,使其更难理解和维护。这个 SO 问题甚至存在的事实就足够了。 看到这个方法我笑了 【参考方案1】:

此方法用于检查当前用户是否为test user by some automatic testing, called 'monkey' by Android devs。

【讨论】:

没错。这个页面值得一看:developer.android.com/guide/developing/tools/monkey.html【参考方案2】:

Monkey 是在您的模拟器或设备上运行并生成 用户事件的伪随机流,例如点击、触摸或手势, 以及一些系统级事件。你可以用猴子来 以随机但可重复的方式对您正在开发的应用程序进行压力测试。

也请参考这些链接:

http://developer.android.com/tools/help/monkey.html what is the use of ActivityManager.isUserAMonkey() method?

【讨论】:

以上是关于ActivityManager 中的奇怪函数:isUserAMonkey。这是啥意思,它有啥用?的主要内容,如果未能解决你的问题,请参考以下文章

python中的关于is的奇怪现象

模式匹配 Erlang 字符串作为函数中的列表

android中的哪个进程要求ActivityManager广播BOOT_COMPLETED

ActivityManager的代理模式

Android的Framework分析---5 ActivityManager分析

ActivityManager的使用