Android development is one of the most critical engineering disciplines in Indian product companies: India is the world's largest Android market by device volume. Companies like Swiggy, Meesho, PhonePe, CRED, ShareChat, and BYJU's have large Android teams and competitive interviews.
Core Kotlin and Android Questions
Kotlin is now the standard language for Android development, and interviews test Kotlin-specific features alongside Android fundamentals.
Kotlin coroutines: structured concurrency model: coroutines vs threads (coroutines are lightweight, run on threads but suspend without blocking). suspend functions, CoroutineScope, launch vs async. Common question: 'What is the difference between launch and async in Kotlin coroutines?': launch returns Job (fire-and-forget); async returns Deferred (use await() for the result). Kotlin data classes: automatic equals(), hashCode(), copy(), toString(): why they matter for immutable state in ViewModels. Sealed classes: exhaustive when expressions: the standard pattern for representing states (Loading, Success, Error) in Android UIs. Extension functions: adding methods to existing classes without inheritance: common question: 'Write an extension function on Context to show a Toast in one line.'
Android Architecture
Architecture knowledge is tested at mid-to-senior level Android interviews across Indian companies.
MVVM (Model-View-ViewModel): the standard Android architecture. ViewModel survives configuration changes (screen rotation); LiveData or StateFlow observes data from the View. Separating business logic from UI makes the code testable. Repository pattern: abstracts the data layer: ViewModel talks to Repository; Repository decides whether to fetch from network (Retrofit) or cache (Room). Single source of truth: Room database as the source of truth; network data flows through Room to the UI. Dependency injection: Hilt (the standard Android DI framework, built on Dagger 2). Common question: 'Why use dependency injection in Android?': testability (inject mocks), loose coupling, and lifecycle-aware provision of dependencies.
Jetpack Compose
Jetpack Compose is the modern UI toolkit for Android and is tested at mid-level and above at Indian companies.
Composable functions: annotated with @Composable: they are regular Kotlin functions that describe UI. They can be called and re-called as state changes (recomposition). State in Compose: remember (state that survives recomposition), rememberSaveable (state that survives configuration changes), State hoisting (lifting state up to the parent so it can be shared). Side effects: LaunchedEffect (runs coroutines tied to the composable lifecycle), SideEffect (runs after every successful recomposition), DisposableEffect (for cleanup). Common question: 'How does Compose know when to recompose?': Compose tracks reads of State objects; when State changes, only the Composables that read that State are recomposed.
Practise Android developer interview questions including architecture and Kotlin with HireStepX's AI mock interviewer.
Practice freePerformance and Low-End Android
Performance questions are uniquely important in India-focused Android interviews: India's user base skews heavily toward low-end Android devices.
Memory management: avoid holding Context references in static variables (causes memory leaks), use WeakReference when necessary, use LeakCanary to detect leaks. Image loading: Glide or Coil: async loading, disk caching, downsampling for low-memory devices. RecyclerView optimisation: ViewHolder pattern, DiffUtil for efficient list updates, setRecycledViewPool for nested RecyclerViews. App size: APK vs AAB (Android App Bundle: Play Store delivers only the assets needed for the device). ProGuard/R8 for code shrinking. Common question: 'How do you handle your app on a device with 2GB RAM running Android 11?': test for OutOfMemoryError, use memory monitoring tools, provide degraded fallbacks for heavy features.
Testing and CI/CD for Android
Android testing is increasingly tested in senior interviews at Indian product companies.
Unit testing: JUnit + Mockito for ViewModel and Repository logic: test the logic independent of Android framework. UI testing: Espresso for instrumented tests (run on device/emulator), Compose Testing for Composables. Test doubles: Mock (Mockito), Fake (hand-written implementation), Stub (hardcoded returns). CI/CD for Android: GitHub Actions or Bitrise: build, run unit tests, generate a signed APK or AAB, upload to Play Store internal track. Firebase App Distribution for distributing beta builds to QA teams.
Frequently asked questions
Practice these questions on HireStepX