¿Cuál es la historia detrás del método UserManager.isUserAGoat () en Android 4.2?

Puede leer comentarios divertidos en el rastreador de problemas de Google Chrome para “una gran cantidad de cabras teletransportadas”:
Edición 31482 – cromo – Gran cantidad de cabras teletransportadas – Un proyecto de navegador de código abierto para ayudar a que la web avance. – Alojamiento de proyectos de Google

La API de Android tiene algunas referencias que hacen que los desarrolladores como nosotros se rían un poco mientras revisamos seriamente la documentación. El método isUserAGoat () parece ser otra broma de Google.

Recuerdo, otro método llamado isUserAMonkey () que se introdujo en el nivel 8 de API
“Devuelve” verdadero “si la interfaz de usuario está siendo alterada por un mono”. [1]

lo que posiblemente recibió su nombre del hecho de que Android ya tiene una herramienta Monkey que genera secuencias pseudoaleatorias de eventos de usuario para aplicaciones de prueba de esfuerzo [2].
y que una prueba de Monkey es una prueba unitaria que se ejecuta sin una prueba específica en mente [3].

[1] ActivityManager | Desarrolladores de Android
[2] UI / Aplicación Ejercitador Mono
[3] Prueba de mono

de Dan Echlin en StackOverFlow:
No sé si este fue “el” caso de uso oficial, pero lo siguiente produce una advertencia en Java (que puede producir aún más errores de compilación si se combina con declaraciones de retorno, lo que lleva a un código inalcanzable):

si (1 == 2) {
System.out.println (“Código inalcanzable”);
}

Sin embargo, esto es legal:

if (isUserAGoat ()) {
System.out.println (“Inaccesible pero determinado en tiempo de ejecución, no en tiempo de compilación”);
}

Entonces, a menudo me encuentro escribiendo un método de utilidad tonto para la forma más rápida de anular un bloque de código, y luego, al completar la depuración, encontrar todas las llamadas. Entonces, siempre que la implementación no cambie, esto se puede usar para eso.

En realidad aquí hay una explicación de esto

Diff – 988ae30ff7729ac0e9a44ee665c7e00f1961e7cd ^! – plataforma / frameworks / base – Git en Google

así que ahora solo puedes instalar esta aplicación Aplicaciones de Android en Google Play y convertirte en una cabra jajaja)