Loading...
Loading...
Browse 7 real-world technical and behavioral interview questions about Android. Review scenarios, edge cases, and architectural best practices.
Pick devices from your own analytics rather than from a market-share article, spread the choice across OS version, screen size, memory class and manufacturer skin, and keep real hardware for anything involving the camera, sensors, radios, battery or vendor-modified behaviour.
Jank in a Compose list is usually excessive or unstable recomposition, caused by unstable parameter types, reading state too high in the tree, or lambdas that break skipping, found with the Layout Inspector's recomposition counts and fixed by narrowing what each composable reads.
Evaluate the candidate's ability to reduce Android app size and optimise delivery using Dynamic Feature Modules, the Play Core Library, and reversed dependency injection structures. Use this MOBILE answer to show the decision, trade-off, and evidence rather than a memorised definition.
Evaluate the candidate's understanding of offline-first principles, background processing using Android's WorkManager, conflict resolution strategies, and battery optimization techniques. Use this MOBILE answer to show the decision, trade-off, and evidence rather than a memorised definition.
Structured concurrency ties a coroutine's lifetime to a CoroutineScope so cancellation propagates automatically, but a leak still happens when a coroutine is launched in a scope that outlives the component that should own it, such as GlobalScope or a manually retained scope nobody cancels. Use this KOTLIN answer to show the decision, trade-off, and evidence rather than a memorised definition.
A ViewModel outlives a configuration change like rotation because the Activity is recreated while the ViewModelStore is retained, but it does not survive process death from memory pressure, which is what SavedStateHandle exists to restore state across.
WorkManager is the default for deferrable work that must eventually run, a foreground service is for work the user is actively aware of right now, and AlarmManager is only for work that must fire at a specific wall-clock time regardless of system state.