Android development remains one of the highest-demand specialisations in Indian tech: India has the second-largest Android user base in the world, and every consumer product company (Swiggy, Meesho, PhonePe, Zepto, Blinkit) has a large Android engineering team. This guide covers Android and Kotlin interview questions at Indian product companies across experience levels.
Kotlin Fundamentals for Android Interviews
Kotlin basics expected at every level: val vs var: val is read-only (like Java final), var is mutable. Kotlin null safety: ?: (Elvis operator), ?. (safe call), !! (non-null assertion: use sparingly). Data classes: automatic equals(), hashCode(), copy(), and toString() based on constructor properties. Sealed classes: a restricted class hierarchy where all subclasses are defined in the same file. Perfect for representing UI state (Loading, Success, Error). Object keyword: defines a singleton (companion object for static-like members). Extension functions: add methods to existing classes without inheritance. Kotlin coroutines: structured concurrency for async operations. suspend functions, launch, async, await, withContext. Coroutines are the modern replacement for AsyncTask, RxJava, and callbacks for Android async work.
Android Architecture Questions
Android architecture is heavily tested at mid and senior levels: MVVM (Model-View-ViewModel): the standard Android architecture. ViewModel survives configuration changes (screen rotation). LiveData / StateFlow: observable data holders. UI observes state; ViewModel holds and transforms data. Room: Android ORM over SQLite. Entities, DAOs, Database, and migrations. Dependency injection: Hilt (Dagger under the hood, recommended by Google) is the current standard. Inject ViewModels, repositories, and data sources. Repository pattern: abstracts data sources (local DB, remote API) from the ViewModel. Clean Architecture: Presentation (ViewModel, UI), Domain (UseCases, interfaces), Data (Room, Retrofit, repositories). Navigation Component: handles fragment transactions, deep links, and back stack automatically. WorkManager: for guaranteed background work (uploading data, syncing) that persists across process death and reboots.
Jetpack Compose Questions
Jetpack Compose is now expected knowledge at most Indian product companies for Android roles: What is composition vs. recomposition? Compose builds a UI tree from composable functions. Recomposition re-runs only the composables whose input data changed: triggered by state changes. State management: remember{} for local state, rememberSaveable for surviving configuration changes. ViewModel + StateFlow/LiveData for complex state. LaunchedEffect, SideEffect, DisposableEffect: Compose side-effect APIs. LaunchedEffect runs a coroutine scoped to a composable key. State hoisting: move state up to the parent composable so children are stateless and more reusable. Lazy lists: LazyColumn and LazyRow replace RecyclerView. Significantly simpler API. Compose vs View system: Compose is declarative (describe what the UI should look like), View system is imperative (tell it how to change). No XML layouts in Compose.
Android interviews combine Kotlin depth with system design thinking. Practise explaining your architecture decisions clearly with HireStepX.
Practice freeNetworking, Performance, and Android-Specific Questions
Networking: Retrofit with OkHttp is the standard HTTP client. Interceptors for logging and auth headers. Gson or Moshi for JSON parsing. Coil for image loading (Glide is still common). Performance questions: RecyclerView optimisations: DiffUtil for efficient list updates, view holder pattern, avoid allocations in onBindViewHolder. Memory leaks: common in Android: context leaks (holding Activity reference in singleton), anonymous inner classes in long-lived objects. LeakCanary for detection. Bitmap handling: BitmapFactory.Options with inSampleSize to load downscaled images. ANR (Application Not Responding): the system shows this dialog when the main thread is blocked for > 5 seconds for user input. Fix by moving work off the main thread. Battery optimisation: Doze mode restrictions, JobScheduler for deferred work, WorkManager for persistent work. Deep links: Intent filters and Android App Links (verified, https-based, no app chooser dialog).
Frequently asked questions
Practice these questions on HireStepX