P
prepair.app
Começar entrevista →
EnglishУкраїнськаРусскийDeutsch
🟩

Junior Android (Kotlin)Perguntas de entrevista Android Kotlin

Junior · sem experiência / menos de 1 ano

Entrevistas de Android focam nos idioms do Kotlin, nas coroutines e no ciclo de vida da plataforma — a maioria das perguntas de nível sênior está, na verdade, testando se você entende que o seu processo pode ser encerrado a qualquer momento. Abaixo estão as perguntas mais feitas, cada uma com uma resposta modelo. Junior: teoria básica, definições e casos práticos simples.

Experimente — sem necessidade de conta
Preparando sua pergunta…

Temas para se preparar

Recursos da linguagem Kotlin
Coroutines e Flow
Ciclo de vida do Android
Jetpack Compose
Arquitetura e DI
Room, Retrofit e testes

9 perguntas de nível Junior com respostas

1

Qual é a diferença entre val e var, e val torna algo imutável?

Resposta

val significa que a referência não pode ser reatribuída; var significa que pode. Isso não torna o objeto imutável — um val guardando uma MutableList ainda pode ter itens adicionados. Para imutabilidade de verdade você precisa de um tipo imutável, não só de uma referência imutável.

2

Como funciona a null safety do Kotlin?

Resposta

Os tipos são non-null por padrão, e um que aceita null é escrito como String?. O compilador então te obriga a tratar o caso null — com ?., ?: ou um smart cast depois de uma verificação. !! abre mão disso e lança uma exceção, por isso deveria aparecer praticamente nunca em código seu.

3

O que é uma data class e o que ela te dá?

Resposta

Uma classe cujo propósito é guardar valores. O compilador gera equals, hashCode, toString, copy e destructuring a partir das propriedades do construtor primário. A pegadinha é que só as propriedades do construtor primário entram nisso, então um campo declarado no corpo da classe fica de fora do equals silenciosamente.

4

Qual é a diferença entre == e === em Kotlin?

Resposta

== chama equals — comparação estrutural. === compara referências — se é o mesmo objeto. Isso é o oposto do Java, onde == é a checagem de referência, e é o que confunde quem vem de lá.

5

Qual é o ciclo de vida da Activity e quais callbacks importam mais?

Resposta

onCreate uma vez, quando ela é construída, onStart e onResume conforme ela fica visível e interativa, e depois onPause, onStop e onDestroy na saída. Os pares importam: adquira em onStart, libere em onStop. O erro frequente é manter um recurso além do onStop, deixando-o vivo enquanto o app está em background.

6

O que acontece com uma Activity na rotação, e por que isso é um problema?

Resposta

Por padrão ela é destruída e recriada, então tudo que estava guardado em um campo desaparece e qualquer trabalho em andamento fica órfão. É por isso que o estado deve ficar em um ViewModel, que sobrevive à recriação, e o estado transitório de UI vai no onSaveInstanceState. A rotação é só o caso mais visível — a mesma coisa acontece numa troca de idioma ou de tamanho de tela.

7

O que é um Intent, e qual a diferença entre explícito e implícito?

Resposta

Uma mensagem pedindo para o sistema iniciar alguma coisa. Um Intent explícito nomeia o componente exato e é o que você usa dentro do seu próprio app. Um implícito descreve uma ação — compartilhar isso, abrir essa URL — e o sistema oferece o que puder lidar com ela, o que pode ser nada, então precisa de um fallback.

8

O que é um ANR e como evitar um?

Resposta

Application Not Responding — o sistema mostra aquele diálogo quando a thread principal fica bloqueada por cerca de cinco segundos numa entrada do usuário, ou quando um broadcast demora demais. Isso acontece porque alguém fez trabalho de rede, disco ou banco de dados na thread principal. O conserto é estrutural: qualquer coisa que possa demorar vai para uma coroutine em Dispatchers.IO, e o StrictMode em builds de debug reclama antes que um usuário chegue a ver o problema.

9

O que você precisa para mostrar uma lista em um RecyclerView?

Resposta

Um layout para uma linha, um adapter que cria e vincula view holders, e um layout manager. O ViewHolder existe para que o findViewById rode uma vez por linha reciclada em vez de uma vez a cada bind, que é o motivo inteiro do widget ter substituído o ListView. O DiffUtil calcula o conjunto mínimo de mudanças entre a lista antiga e a nova, dando animações de item e evitando que o notifyDataSetChanged redesenhe tudo.

🦎

Só ler as respostas não basta

Numa entrevista de verdade você fala sob pressão. O Cam faz essas mesmas perguntas, avalia cada resposta e mostra exatamente o que melhorar.

Praticar entrevista de Junior Android (Kotlin) →
Grátis · 3 entrevistas por mês

Outros níveis — Android (Kotlin)

Middle Android (Kotlin)Senior Android (Kotlin)Todas as perguntas de Android (Kotlin)

Outras especializações

🔍Junior QA Manual🤖Junior QA AutomationJunior Java Backend🐍Junior Python Backend🐘Junior PHP Backend🦫Junior Go Backend🟢Junior Node.js Backend💎Junior Ruby on Rails🔷Junior C++🟨Junior JavaScript