5 pontos por GN⁺ 2025-06-17 | 2 comentários | Compartilhar no WhatsApp
  • A API pública do Android esconde métodos e constantes bem-humorados
  • Entre os exemplos mais conhecidos estão métodos como isUserAMonkey() e isUserAGoat(), que combinam utilidade real com elementos de piada
  • DISALLOW_FUN, Log.wtf() e outros itens embutem descrições brincalhonas ou comportamentos curiosos na API oficial
  • Convenções de nomes criativas ou paródias (por exemplo, TWEET_TRANSACTION, GRAVITY_DEATH_STAR_I) aparecem com frequência na documentação oficial ou no código
  • Esses elementos cumprem o papel de oferecer diversão e pequenas descobertas aos desenvolvedores

Piadas e elementos de humor na API pública do Android

A API aberta do Android inclui, junto com funcionalidades reais, diversos trocadilhos engenhosos e easter eggs voltados aos desenvolvedores

ActivityManager.isUserAMonkey()

  • É um método para detectar quando a ferramenta de desenvolvimento UI Exerciser Monkey está em execução
  • Foi criado para permitir a restrição de certos comportamentos em ambientes de teste de estresse de apps, simulando entradas aleatórias na interface
  • Foi introduzido para limitar funções importantes (por exemplo, chamadas de emergência) quando um monkey estiver usando o app no lugar de um usuário real
  • Foi adicionado à API pública no Android 2.2 (Froyo, API 8)
  • Sua implementação surgiu nos primórdios do Android para resolver problemas acidentais reais

UserManager.isUserAGoat()

  • A documentação oficial diz que ele serve para verificar se o usuário é um alvo de teletransporte, mas isso é uma piada
  • No início sempre retornava false, mas após o lançamento de Goat Simulator, foi alterado para retornar true quando o jogo estivesse instalado
  • No Android 11 (API 30) ou superior, passou a retornar sempre false por motivos de privacidade
  • Havia uma lógica de detecção do app Goat Simulator, mas ela foi modificada para evitar vazamento de informações diante das mudanças nas políticas de acesso à lista de apps
  • Foi inspirado em um easter egg do Gerenciador de Tarefas do Google Chrome

UserManager.DISALLOW_FUN

  • Representa uma política de restrição de diversão adicionada no Android 6 Marshmallow (API 23)
  • A documentação oficial afirma que ela pode ser usada para impedir que o usuário sinta alegria ou diversão
  • Na prática, é usada como uma política para o proprietário do dispositivo bloquear parte das funções do usuário
  • Alguns apps ou o próprio sistema podem detectar essa política para desativar recursos “divertidos”, como easter eggs
  • Pode ser usada em instituições de ensino, por exemplo, para desabilitar recursos que causem distração

Chronometer.isTheFinalCountdown()

  • O método isTheFinalCountdown foi adicionado no Android 8 Oreo (API 26)
  • Quando chamado, ele abre automaticamente o vídeo do YouTube de “The Final Countdown” do Europe
  • Não tem utilidade prática direta e é claramente uma piada/referência
  • Isso fica evidente pelo comando Intent no código
  • Oferece uma pequena brincadeira aos desenvolvedores

PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND

  • É uma constante para indicar suporte a multitoque adicionada no Android 2.3 Gingerbread (API 8)
  • O nome é uma paródia de jazz hands (gesto performático musical)
  • Significa suporte ao reconhecimento simultâneo de até cinco dedos

Log.wtf()

  • É a sigla de What a Terrible Failure, usada para registrar situações que jamais deveriam acontecer
  • É classificado como um log grave em nível de asserção
  • É uma das APIs com tom de piada mais conhecidas entre os desenvolvedores

AdapterViewFlipper.fyiWillBeAdvancedByHostKThx()

  • Adicionado no Android 3.0 Honeycomb (API 11)
  • Tem um nome informal e bem-humorado e é chamado quando a view é avançada pelo host
  • Presume-se que tenha surgido de uma ideia cômica durante o processo de nomeação
  • Expressa com humor o clássico problema da ciência da computação: a dificuldade de dar nomes

IBinder.TWEET_TRANSACTION

  • É um tipo de transação introduzido no Android 3.2 Honeycomb (API 13)
  • Sugere o envio de um tweet, mas na prática não faz nada, e o limite de 130 caracteres faz referência à antiga política do Twitter
  • O próprio nome é uma paródia completa

IBinder.LIKE_TRANSACTION

  • É a transação LIKE adicionada no Android 4.0.3 ICS (API 15)
  • Serve para enviar um sinal de que o chamador gosta do app, mas não há registro nem contagem real
  • Existe uma explicação em tom de piada dizendo que isso aumenta a autoestima do app

SensorManager.SENSOR_TRICORDER

  • É uma constante batizada em homenagem ao Tricorder de Star Trek
  • Existe desde a época do Android 1.0, mas depois foi marcada como deprecated
  • O Tricorder é um dispositivo fictício de ficção científica, o que dá um toque de humor aos desenvolvedores

SensorManager.GRAVITY_*

  • Dentro de SensorManager existem constantes com valores de gravidade de vários corpos celestes (Sol, Plutão etc.)
  • Entre elas, GRAVITY_DEATH_STAR_I (a Estrela da Morte de Star Wars) e GRAVITY_THE_ISLAND (a ilha da série LOST) são piadas
  • Algumas delas têm mais valor de paródia do que utilidade prática

<blink> tag

  • O sistema de layout de views do Android possui uma tag oculta chamada <blink>
  • Ela faz com que as views-filhas pisquem como a antiga tag HTML <blink>
  • Não há explicação na documentação oficial, mas ela foi adicionada em um commit de 2011 e continua presente no AOSP até hoje
  • Seu uso real ainda é motivo de debate

Conclusão

Em vários pontos da API oficial do Android, há piadas, paródias e elementos de easter egg inseridos de forma intencional
Esses elementos oferecem pequenas doses de diversão e o prazer da descoberta aos desenvolvedores, além de mostrar um pouco da cultura de comunidade e do lado descontraído do Android

2 comentários

 
GN⁺ 2025-06-17
Opiniões do Hacker News
  • No FB, por muitos anos, havia o costume de adicionar sufixos como _DO_NOT_USE_OR_YOU_WILL_BE_FIRED a tokens perigosos ou já obsoletos. Todo mundo conhecia essa piada, mas depois da pandemia, com a proporção maior de pessoas novas e pouca integração remota, também surgiram reclamações de que esse tipo de piada interna causava medo ou incerteza. Isso vale apenas dentro do que eu vivi

    • Lembro de sempre achar divertido ver nomes alegres e exageradamente longos como __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED do React. Mas, infelizmente, esse tipo de "humour" vem desaparecendo aos poucos ultimamente PR relacionada

    • Antigamente no Google, havia em algum lugar da stack de rede um bloco enorme de código difícil de entender e ainda mais difícil de modificar, e ele só continuava crescendo. Nossa equipe renomeou aquele código para "[Foo]Sorcery". Por causa desse nome meio assustador e estranho, ninguém mais queria adicionar nada novo ali, e de vez em quando alguém organizava partes dele e removia trechos. Acho que essa brincadeira no nome funcionou

  • A função espirituosa de que mais gosto no código-fonte do Android é android.os.Handler.runWithScissors(), mas infelizmente ela não faz parte da API pública link do código

    • Ainda rio da frase no comentário dessa função: “@hide este método é propenso a mau uso e é melhor não colocá-lo na API; se for adicionado, talvez seja preciso trocar para um nome menos divertido, como runUnsafe()”

    • É uma pequena pena essa função não ter aparecido no texto principal. É uma das minhas favoritas

  • Um exemplo que me vem imediatamente à cabeça no X11 é a variável global "party_like_its_1989" link do código, e o changelog da extensão DRI2 está cheio de expressões como "Awesomeness!", "True excellence" e "Enlightenment attained" link do changelog

  • No BeOS (e no Haiku), existem funções chamadas "is_computer_on()" e "is_computer_on_fire()", e a explicação é excelente link de referência

    • No Delphi, existe a exceção EProgrammerNotFound, e a documentação oficial também tem um humor bem seco e sério link da documentação

    • Claro, entendo que esses nomes foram feitos para serem engraçados, mas em computadores modernos com gerenciamento avançado de energia esse tipo de estado é bem comum. O sistema operacional precisa lidar naturalmente tanto com o despertar de um modo de economia profunda quanto com uma placa-mãe a 200 graus

    • Acho que is_computer_on_fire() teria sido ainda mais divertido se fosse usado como gatilho assíncrono baseado em eventos

    • Para quem tiver curiosidade, também existe o link para o código relacionado link do código

  • Gosto que esse senso de humor esteja vivo em codebases de grandes empresas. Usando só a API, você nem percebe, mas quando lê o código-fonte diretamente, esses easter eggs ocasionais realmente fazem você sentir que o código foi escrito por pessoas. O software de hoje é frio demais, e justamente nesse contraste eu sinto certo calor humano. Sinceramente, queria que houvesse mais disso

    • De forma parecida, acho marcante como isso lembra que existiram pessoas reais por trás do código ou da API que eu uso
  • Se você quiser testar diretamente coisas como isUserAGoat e isUserAMonkey no Android, eu fiz e publiquei um pequeno app com essa função link do app. Depois quero tentar adicionar mais easter eggs

    • Também acho que seria bem divertido incluir algo como a verificação da política DISALLOW_FUN. Procurei esse código no GitHub, mas na maioria dos casos ele só é usado pelo app de Settings do sistema para ocultar o easter egg da versão. Talvez eu acabe sendo o primeiro terceiro a usar isso de forma prática

    • Mas no Android 15 o app não instala. Seria bom atualizá-lo, já que o Google está exigindo que o minimum compileSdk esteja em conformidade

  • O Gerenciador de Tarefas do Chrome já teve uma coluna oculta que mostrava o "número de bodes teleportados pelo processo do navegador". Isso não existe mais, mas dá para ver numa captura de tela antiga. Antes havia 234 colunas; agora caíram para 16, o que é meio triste

  • Sinto falta da época em que produtos de tecnologia eram cheios de easter eggs. Parece que, com tudo ficando mais corporativo, essa cultura foi desaparecendo

  • Eu queria transformar responder a esta thread numa pergunta obrigatória de entrevista. Inclusive quando forem me entrevistar. É realmente aquele tipo de momento de “há dois tipos de pessoas no mundo”

    • Por quê? Acho que as piadas que o Googler coloca em APIs têm a graça de piada de pai no jantar de Natal
  • A ideia aqui é que exista humor e brincadeiras em documentação técnica; muita gente costuma ver isso de forma negativa, mas eu adoro quando a documentação tem humor. Já escrevi sobre isso

 
roxie 2025-10-14

Será que a expressão “yuumor” foi traduzida por IA....? tremendo