Role preparation
Android Developer interview questions and answers.
Kotlin, Android lifecycle, and responsive mobile interfaces.
Questions
Technical questions to practise out loud
- 01
What is structured concurrency in Kotlin coroutines?
Structured concurrency binds child coroutines to a parent scope, so completion, cancellation, and failure have a defined owner; use lifecycle-aware scopes and avoid unowned GlobalScope work.
Read the full breakdown - 02
How do ViewModels work with the Android lifecycle?
A ViewModel retains screen state across configuration changes and is cleared when its owner finishes; it should expose UI state and launch work in viewModelScope without holding Activity or View references.
Read the full breakdown - 03
What triggers recomposition in Jetpack Compose?
Compose recomposes functions that read state when that state changes; stable inputs, correctly scoped state, keys, and derivedStateOf reduce unnecessary work without suppressing required UI updates.
Read the full breakdown - 04
How do you find Android memory leaks?
Find Android leaks by reproducing lifecycle transitions, watching retained objects with LeakCanary or a heap dump, then tracing the reference chain—commonly static state, callbacks, adapters, or coroutines.
Read the full breakdown - 05
How do you design an offline-first Android app?
An offline-first app reads from a local source of truth, synchronises with the network in the background, records pending writes, and defines conflict resolution, retry, freshness, and user-visible sync state.
Read the full breakdown - 06
How do you handle networking on Android?
Android networking needs typed API contracts, timeouts, cancellation, retry only for transient idempotent work, mapped errors, authentication refresh, secure transport, and repository-level caching or persistence.
Read the full breakdown - 07
How do you structure Android navigation?
Model navigation as explicit destinations and arguments, keep navigation decisions outside reusable UI, restore state after process death, and handle deep links and back-stack behaviour as tested product flows.
Read the full breakdown - 08
What is your Android testing strategy?
Test Android logic on the JVM where possible, use Compose or instrumentation tests for platform interaction, isolate repositories, control dispatchers and clocks, and keep a small end-to-end set for critical journeys.
Read the full breakdown - 09
How do you improve Android app performance?
Improve Android performance by measuring startup, frame timing, memory, battery and network with Macrobenchmark, profiler and traces; fix main-thread blocking, excessive recomposition, allocations, or oversized work.
Read the full breakdown - 10
How do you store sensitive data on Android?
Store sensitive Android data minimally, use platform-backed encrypted storage or Keystore keys, never hard-code secrets, protect exported components, validate deep links, and assume a compromised client cannot keep server secrets.
Read the full breakdown