Android App Development Interview Questions & Answers
All 200 unique questions in one place — 60 easy, 99 medium, 41 hard — grouped by topic.
Practise by topic
Practise the way your interview works
How does Kotlin handle null safety?
Show answer
What is a data class and what does the compiler generate for it?
Show answer
Write a sealed interface for a screen state and handle it with when.
Show answer
What is the difference between == and === in Kotlin?
Show answer
What are higher-order functions and lambdas in Kotlin?
Show answer
Write a Kotlin function that groups a list of orders by city and returns total amount per city.
Show answer
How do default and named arguments reduce the need for overloads?
Show answer
A teammate uses !! everywhere to silence compiler errors. How do you handle this in code review?
Show answer
Write a function that safely parses a string to an Int and returns a default on failure.
Show answer
Tell me about a time you learned a new language or framework quickly for a project.
Show answer
Why should we hire you as a fresher Android developer?
Show answer
Explain the difference between let, run, with, apply and also.
Show answer
What is a sealed class and when would you use it on Android?
Show answer
What are extension functions and how are they resolved?
Show answer
What is the difference between lateinit and by lazy?
Show answer
Explain object, companion object and object expressions.
Show answer
What is the difference between List and MutableList, and is List truly immutable?
Show answer
What are sequences in Kotlin and when are they better than collections?
Show answer
Your team is migrating a Java Android app to Kotlin. How would you plan it?
Show answer
A crash report shows a NullPointerException in Kotlin code. How can that happen if Kotlin is null safe?
Show answer
Write a delegated property that logs whenever a value changes.
Show answer
What does the inline keyword do and when should you use reified?
Show answer
Explain generics variance with in and out in Kotlin.
Show answer
What are value classes and why use them?
Show answer
What is a coroutine and how is it different from a thread?
Show answer
What does the suspend keyword mean?
Show answer
Explain Dispatchers.Main, IO and Default.
Show answer
What is the difference between launch and async?
Show answer
What is Kotlin Flow and how is it different from a suspend function?
Show answer
How do you keep up with changes in Kotlin and Android?
Show answer
What is structured concurrency?
Show answer
What is the difference between viewModelScope and lifecycleScope?
Show answer
Write code to fetch two API results in parallel inside a ViewModel.
Show answer
How do you handle exceptions in coroutines?
Show answer
Explain StateFlow versus SharedFlow.
Show answer
How should a Fragment or Activity collect a Flow safely?
Show answer
Write a Flow that combines user settings and product list into one UI state.
Show answer
The app shows an ANR when the user taps Save. The save function is suspend. What could be wrong?
Show answer
A screen shows a snackbar again every time the device rotates. How do you fix it?
Show answer
Network calls keep running after the user leaves a screen and results arrive late. How do you fix this?
Show answer
Describe a time you fixed a difficult concurrency bug.
Show answer
How does coroutine cancellation work, and why must code be cooperative?
Show answer
What is the difference between Job and SupervisorJob?
Show answer
Write a search flow that debounces user input and cancels stale requests.
Show answer
What do flatMapLatest, flatMapConcat and flatMapMerge do?
Show answer
Write a suspend function that wraps a callback-based API.
Show answer
How do you unit test a ViewModel that uses coroutines and StateFlow?
Show answer
You need to sync 500 images to a server without overloading the network. How would you design it with coroutines?
Show answer
Explain backpressure handling in Flow with buffer, conflate and collectLatest.
Show answer
What are the four main Android app components?
Show answer
Explain the Activity lifecycle.
Show answer
What happens on a configuration change such as screen rotation?
Show answer
What is the difference between explicit and implicit intents?
Show answer
How do runtime permissions work in modern Android?
Show answer
What is the role of AndroidManifest.xml?
Show answer
What is the difference between Parcelable and Serializable?
Show answer
How do you explain a technical limitation to a non-technical product manager?
Show answer
Explain the Fragment lifecycle and why viewLifecycleOwner matters.
Show answer
What are launch modes and task affinity?
Show answer
What is the difference between a started service, bound service and foreground service?
Show answer
Write code to request camera permission using the Activity Result API.
Show answer
What is a BroadcastReceiver and what limits apply since Android 8?
Show answer
What is a ContentProvider and when would you build one?
Show answer
How do you pass data between screens and what is the size limit?
Show answer
Write a manifest entry for a deep link that opens a product screen.
Show answer
What is the difference between a deep link and an Android App Link?
Show answer
Users report the app loses form data when they switch to another app and come back after a while. Why?
Show answer
Write code to show a notification with a channel.
Show answer
How do you build a single-activity app with the Navigation component?
Show answer
Tell me about a time you handled a production crash under pressure.
Show answer
A crash says IllegalStateException: Can not perform this action after onSaveInstanceState. What is happening?
Show answer
The product team wants location tracking for delivery partners even when the app is closed. How do you implement it?
Show answer
How does Android handle background execution limits and Doze mode?
Show answer
What is the predictive back gesture and how do you support it?
Show answer
What is Jetpack Compose and how is it different from XML views?
Show answer
What is recomposition?
Show answer
What is the difference between remember and rememberSaveable?
Show answer
What is state hoisting in Compose?
Show answer
Write a stateless text field with a hoisted state and validation message.
Show answer
Write a LazyColumn that shows a list of products with keys and a click handler.
Show answer
Why does the order of modifiers matter?
Show answer
How do you collect a ViewModel StateFlow in a composable?
Show answer
A composable makes an API call every time the screen recomposes. What is wrong and how do you fix it?
Show answer
A text field loses its typed value after rotation. How do you fix it?
Show answer
Explain LaunchedEffect, DisposableEffect and SideEffect.
Show answer
What does derivedStateOf do and when should you use it?
Show answer
How do LazyColumn keys improve performance and correctness?
Show answer
What is CompositionLocal and when should you use it?
Show answer
How do you implement theming with Material 3 in Compose?
Show answer
How do you test a Compose UI?
Show answer
Write a Compose UI test that checks an error appears when login is clicked with an empty email.
Show answer
How does Compose interoperate with existing XML views?
Show answer
Your team wants to migrate a large XML app to Compose. How would you plan it?
Show answer
Tell me about a time you disagreed with a designer about a UI decision.
Show answer
How do you make Compose UI accessible?
Show answer
What are stable and unstable types in Compose?
Show answer
A Compose list scrolls with jank on low-end phones. How do you investigate and fix it?
Show answer
How do you build an adaptive layout for phones, foldables and tablets in Compose?
Show answer
Explain the three phases of a Compose frame.
Show answer
What is MVVM and why is it recommended for Android?
Show answer
Why should a ViewModel never hold a reference to an Activity, Fragment or View?
Show answer
What is unidirectional data flow?
Show answer
What is dependency injection and why use Hilt?
Show answer
Unit tests for a ViewModel are hard to write because it creates the repository inside itself. What do you change?
Show answer
A new developer asks why we need interfaces for every repository. How do you answer?
Show answer
Explain the recommended layers in Android app architecture.
Show answer
What is the difference between MVVM and MVI?
Show answer
What is a repository and why is it the single source of truth?
Show answer
What is a use case in the domain layer and when is it worth adding?
Show answer
Write a Hilt module that provides Retrofit and a repository binding.
Show answer
Write a HiltViewModel that exposes a single UiState using StateFlow.
Show answer
What is the difference between @Provides and @Binds in Hilt?
Show answer
What is SavedStateHandle and when do you use it?
Show answer
A ViewModel has grown to 1500 lines handling many responsibilities. How would you refactor it?
Show answer
Two screens show different values for the same cart count. How do you fix the architecture?
Show answer
You are starting a new app for a fintech startup. Which architecture and libraries would you choose and why?
Show answer
How do you share data between two screens in a checkout flow?
Show answer
Write a use case that combines cart items and a coupon into a final total.
Show answer
How do you handle one-time navigation after a successful login in MVVM?
Show answer
Describe a project where you improved code quality for the whole team.
Show answer
How do you mentor junior Android developers?
Show answer
How do you structure a large Android app into modules?
Show answer
Product wants a feature flag to turn a new checkout on or off without releasing an update. How do you design it?
Show answer
How would you lead an architecture decision when senior developers disagree?
Show answer
What is Room and what are its main components?
Show answer
Write a Room entity and DAO for notes with a Flow query.
Show answer
What is DataStore and why does it replace SharedPreferences?
Show answer
Write code to save and read a dark mode preference with Preferences DataStore.
Show answer
What is WorkManager and when should you use it?
Show answer
How do you prioritise when you have several bugs and a feature deadline in the same week?
Show answer
A user complains the app uses too much storage. How do you find and reduce it?
Show answer
How do Room migrations work?
Show answer
Write a periodic sync job with WorkManager that runs only on unmetered network.
Show answer
How do you store relationships in Room, such as orders with items?
Show answer
After an app update, users report that the app crashes on launch. Logs show a Room migration error. What do you do?
Show answer
A Room query on a large table is slow and causes jank. How do you fix it?
Show answer
You need to cache API responses so the home screen opens instantly. What approach do you take?
Show answer
Users who reinstall the app lose all their settings. How can you restore them?
Show answer
How do you write tests for a Room DAO?
Show answer
What file storage options does Android provide and how does scoped storage affect them?
Show answer
What conflict strategies does Room offer for inserts?
Show answer
How do you migrate from SharedPreferences to DataStore without losing user data?
Show answer
Write a Room database class with a migration that adds a column.
Show answer
Tell me about a time a bug you introduced reached production. How did you handle it?
Show answer
How do you store sensitive data such as tokens securely on Android?
Show answer
What is the Paging 3 library and how does it work with Room?
Show answer
How would you design an offline-first notes app?
Show answer
A WorkManager job is not running on some phones from certain manufacturers. How do you investigate?
Show answer
Explain how you would use Room with Kotlin Multiplatform.
Show answer
What is Retrofit and how does it work with coroutines?
Show answer
Write a Retrofit interface for listing products with paging and fetching one product.
Show answer
How do you check network connectivity in modern Android?
Show answer
How do you handle a situation where you are blocked by another team's API not being ready?
Show answer
What are OkHttp interceptors and give common uses.
Show answer
Write an OkHttp interceptor that adds a bearer token to every request.
Show answer
Compare kotlinx.serialization, Moshi and Gson for JSON parsing.
Show answer
How do you model API results and errors cleanly for the UI?
Show answer
Users on slow 2G and 3G networks in small towns report the app keeps failing. How do you improve it?
Show answer
The backend team changed a field from a number to a string and the app crashed for all users. How do you prevent this?
Show answer
How do you handle push notifications with Firebase Cloud Messaging?
Show answer
Images in a feed load slowly and the app runs out of memory. What do you change?
Show answer
How do you test Retrofit networking code?
Show answer
Write a function that retries a suspend call with exponential backoff.
Show answer
Where should API keys go in an Android app?
Show answer
A payment SDK integration fails only in release builds. What would you check?
Show answer
Explain the network security configuration file.
Show answer
Tell me about a time you worked closely with a backend team to solve a problem.
Show answer
Describe a situation where you had to push back on an unrealistic deadline.
Show answer
How do you refresh an expired access token automatically?
Show answer
How does certificate pinning work and what are its risks?
Show answer
Your app shows duplicate orders when users tap Pay twice on a slow network. How do you fix it?
Show answer
How would you implement real-time order tracking updates in an app?
Show answer
The API team wants to switch to GraphQL. What changes on the Android side?
Show answer
How do you design an Android client to support API versioning and forced updates?
Show answer
What types of tests do you write for an Android app?
Show answer
What is an ANR and how do you prevent it?
Show answer
What is an Android App Bundle and why does Play require it?
Show answer
Explain the steps to publish an app on the Play Store.
Show answer
Tell me about an app or feature you are proud of building.
Show answer
Where do you see yourself in five years as an Android developer?
Show answer
How do you handle a code review comment you disagree with?
Show answer
Write a unit test for a ViewModel using a fake repository and runTest.
Show answer
How do you find and fix memory leaks in an Android app?
Show answer
What does R8 do in a release build?
Show answer
What is targetSdkVersion and why does Play enforce updates?
Show answer
Write a Gradle configuration for release signing and minification using environment variables.
Show answer
How do you set up CI/CD for an Android app?
Show answer
The crash-free rate dropped after a release only on Android 15 devices. How do you respond?
Show answer
The Play Store rejected your update for a policy violation about permissions. What do you do?
Show answer
The APK size grew to 120 MB and installs from small towns are dropping. How do you reduce it?
Show answer
QA says a bug happens only on one manufacturer's phones. How do you debug it?
Show answer
The app's cold start takes 4 seconds. How do you improve it?
Show answer
What are Baseline Profiles?
Show answer
Your banking app must pass a security audit. What would you check on the Android side?
Show answer
How would you roll out a risky new feature to millions of users safely?
Show answer
Users report battery drain after the latest update. How do you investigate?
Show answer
Your app has 60 Gradle modules and builds take 15 minutes. How would you speed them up?
Show answer
How do you measure app quality after release?
Show answer
Describe a time you improved app performance with measurable results.
Show answer
Frequently asked questions
What jobs can I get after learning Android App Development?
You can apply for roles such as Junior Android Developer, Android Developer, Kotlin Developer, Mobile Engineer and Android UI Engineer. With experience you can grow into Senior Android Engineer, Android Tech Lead or Mobile Architect. Employers include e-commerce, fintech, food delivery, banking, telecom and edtech companies, plus IT services firms building apps for global clients. A strong portfolio of published apps and clean GitHub code matters as much as your degree when applying.
Who is eligible to learn Android development?
Anyone with basic computer skills and logical thinking can start. B.Tech, BCA, MCA, B.Sc and diploma students are common learners, and working professionals from testing, support or web development also switch successfully. Prior programming helps but is not required, because the course starts with Kotlin basics. You need a laptop with at least 8 GB RAM, ideally 16 GB, to run Android Studio and the emulator smoothly.
How long does it take to become job-ready in Android development?
With consistent daily practice of two to three hours, most learners become job-ready for junior roles in about four to six months. The 16-week course covers the core skills, and the remaining time goes into building two or three portfolio apps and interview preparation. People with prior programming experience often move faster. Becoming confident with architecture, performance and production issues takes one to two years of real project work.
Should I learn Kotlin or Java for Android in 2026?
Learn Kotlin. Google has been Kotlin-first since 2019, Jetpack Compose is Kotlin-only, and almost all new Android code and official samples use Kotlin. Java knowledge is still useful because many older codebases and libraries use it, and Kotlin interoperates fully with Java, so you can read and maintain such code later. Interviews for Android roles in India now expect Kotlin, coroutines and Compose.
Is there a certification for Android developers?
Google retired its Associate Android Developer exam, so there is currently no official Google certification widely required by employers. Companies judge Android candidates mainly through portfolio apps, GitHub code, live coding and technical interviews. A course completion certificate shows structured learning, but published apps on the Play Store with good architecture and tests are the strongest proof of skill you can show recruiters.
Is native Android still worth learning when cross-platform tools exist?
Yes. Large consumer apps with complex features, heavy performance needs or deep hardware use usually stay native, and many companies hire dedicated Android engineers. Cross-platform tools like Flutter and React Native are popular too, but knowing native Android makes you better at those, because you understand lifecycles, permissions and performance underneath. Kotlin Multiplatform also lets Android developers share code with iOS, extending the value of Kotlin skills.