Interview Prep

Android Developer Interview Questions & Answers (with Model Answers)

Android Developer interviews probe your command of the Android lifecycle, Kotlin idioms, and how you architect responsive, memory-safe apps. Expect a mix of framework internals, concurrency, and UI rendering questions. This page gives you real questions with model answers you can adapt to your own projects.

Written & reviewed by the CVWon Editorial Team · Updated June 2026

Build Your CV

The STAR Method

Structure your behavioural and situational answers below with the STAR method — four steps that turn a vague reply into a concrete, memorable story.

S

Situation

Set the scene — briefly describe the context and your role.

T

Task

Explain the challenge or responsibility you faced.

A

Action

Detail the specific steps you personally took.

R

Result

Share the measurable outcome — ideally with numbers.

Questions & Answers

Interview Questions & Model Answers

Prepare for these commonly asked questions with detailed model answers.

Why This Is Asked

They want to see that you think in layers and can justify architectural choices rather than dumping logic into activities.

Model Answer

I start by defining the feature's UI states and user flows, then pick an architecture such as MVVM or MVI to keep state unidirectional. I expose state from a ViewModel via StateFlow, keep the UI layer declarative with Jetpack Compose, and push business rules into use-case classes backed by a repository. I wire dependencies with Hilt so each layer is testable in isolation. Before writing UI, I sketch the data contracts so the network and persistence layers can be built in parallel.

Name a concrete architecture and tie each layer to testability and state management.

Why This Is Asked

Responsiveness is a core quality bar; they are checking you understand the main-thread constraint.

Model Answer

I keep the main thread free of blocking work by moving I/O, parsing, and heavy computation onto Dispatchers.IO or Default with coroutines. I profile with the Android Studio profiler and StrictMode to catch disk or network calls on the UI thread. For long lists I use paging and avoid over-recomposition in Compose with stable keys and remembered state. I also watch for synchronous Binder calls and main-thread database queries, which are common ANR sources.

Mention the 5-second ANR threshold and a specific profiling tool you actually use.

Why This Is Asked

They want evidence you can measure, not guess, when solving performance issues.

Model Answer

In a media app, scrolling stuttered on mid-range devices. I captured a systrace and found bitmap decoding happening on the main thread during binding. I moved decoding off-thread, added a memory and disk cache, and downsampled images to the target view size. Jank dropped from frequent dropped frames to a smooth 60fps, confirmed by the frame-timing metrics.

Quote a before/after metric so the impact is concrete.

Why This Is Asked

Fragmentation is a daily reality; they want to know you handle it deliberately.

Model Answer

I set a sensible minSdk based on the user base and use the AndroidX libraries and Jetpack so newer APIs are back-ported where possible. I guard version-specific calls with Build.VERSION checks and lean on compat wrappers like ContextCompat. I test on a matrix of API levels via emulators and Firebase Test Lab, paying special attention to behavior changes like background execution limits and scoped storage.

Reference a concrete behavior change such as scoped storage or notification permissions.

Why This Is Asked

They are checking you build a sustainable test pyramid rather than relying on manual checks.

Model Answer

I write unit tests for ViewModels and use cases with JUnit and mock the repository, using a test dispatcher to control coroutines. For UI I use Compose testing or Espresso for critical user journeys. I keep a fast unit layer and a thinner instrumented layer, and run them in CI on every pull request. I treat flaky tests as bugs and isolate timing dependencies with idling resources or fake clocks.

Describe the test pyramid and how you keep coroutine tests deterministic.

Technical

What Technical Interview Questions Does an Android Developer Get Asked?

Expect these role-specific technical questions during your interview.

launch starts a coroutine that returns a Job and is used for fire-and-forget work, while async returns a Deferred that produces a result you retrieve with await. Use async only when you need a concurrent result, and call await inside a coroutine scope. Both respect structured concurrency, so a failure cancels the parent scope unless you use a SupervisorJob.

An Activity moves through onCreate, onStart, onResume, onPause, onStop, and onDestroy as it becomes visible or is torn down. onSaveInstanceState lets you persist transient UI state before the system may destroy the Activity, for example on rotation or low memory, so you can restore it in onCreate or onRestoreInstanceState. ViewModel survives configuration changes, so I keep durable UI state there and use the bundle only for small parcelable data.

Compose tracks state reads inside composables and re-invokes only the composables that read changed state, skipping the rest. To make this efficient, state should be stable and observable through State or StateFlow, and lists should provide stable keys. Unstable parameters or unnecessary lambdas can force extra recompositions, which the Layout Inspector and recomposition counts help you detect.

A ViewModel holds and exposes UI-related state and survives configuration changes because it is retained by the ViewModelStore tied to the lifecycle owner, not the Activity instance. This avoids reloading data on rotation. It should never hold a reference to a View or Context that can leak, and it is cleared in onCleared when the owner is permanently destroyed.

I store tokens in EncryptedSharedPreferences or the Jetpack Security library, which uses keys backed by the Android Keystore. I avoid plain SharedPreferences and never log tokens. For higher sensitivity I keep tokens in memory only and refresh them, and I gate access behind biometric or device credentials where appropriate.

Situational

What Situational Interview Questions Should an Android Developer Prepare For?

Behavioural and situational scenarios you may encounter.

Situation: a release pushed crash rate up sharply the morning after rollout. Task: I had to stabilize users fast. Action: I checked Crashlytics, traced the top crash to a null map response on a new endpoint, and used staged rollout controls to halt the release while shipping a hotfix with a null-safe parse. Result: crash-free users returned to baseline within hours and I added a contract test to catch the missing field earlier.

Situation: a designer wanted an animation that dropped frames on older devices. Task: I needed to honor the intent without harming performance. Action: I profiled the animation, showed the jank on a mid-range device, and proposed a lighter property animation that preserved the feel. Result: we shipped a version that looked polished and held 60fps, and we agreed on a device-tier checklist for future motion work.

Situation: a god-Activity blocked a new feature and was untestable. Task: I had to add the feature without a risky rewrite. Action: I carved the logic into a ViewModel and repository behind tests, migrating one screen at a time using the strangler pattern. Result: the feature shipped on time, and the extracted code gained unit coverage that prevented later regressions.

Situation: the APK was too large and rejected by users on limited data plans. Task: I needed a meaningful size cut. Action: I enabled R8 shrinking and resource optimization, switched to App Bundles for per-device delivery, and replaced bulky drawables with vectors and WebP. Result: download size dropped notably and install conversion improved on emerging-market devices.

Preparation

Preparation Tips

1

Build or polish a small open-source app using Kotlin, coroutines, and Jetpack Compose so you can speak from current, hands-on code.

2

Be ready to draw the Activity and Fragment lifecycles on a whiteboard and explain where you place state restoration.

3

Practice live-coding a coroutine or Flow example, since interviewers often ask you to handle concurrency on the spot.

4

Review recent platform behavior changes such as scoped storage, background limits, and the notification runtime permission.

5

Prepare two performance war stories with measured before-and-after numbers from profiling tools you have actually used.

How to Answer: "What Are Your Salary Expectations?"

I have researched current Android Developer ranges for this market and seniority, and based on my experience shipping production apps with Kotlin and Compose I am targeting a band rather than a single number. For a mid-to-senior role here that lands roughly in the regional market band for the level, and I am open to aligning on the exact figure once we confirm scope and ownership. What matters most to me is the impact and growth, so if the total package including equity and learning budget is strong I am flexible within that range. Could you share the band you have allocated so we can find the overlap?

FAQ

Frequently Asked Questions

Kotlin is the expected default for new Android development and most interviews assume it. Java knowledge is still useful for legacy codebases, but you should be fluent in Kotlin idioms like coroutines, extension functions, and null safety.

Often yes, either a small algorithm or an Android-specific task such as wiring a ViewModel or handling a Flow. Practice coding while explaining your reasoning out loud, since communication is assessed alongside correctness.

Compose is now the recommended toolkit and increasingly expected, but many production apps still use Views, so know both. Be able to explain recomposition and interoperability between Compose and the legacy View system.

For mid and senior roles yes, expect to design an app feature end to end covering data flow, offline support, caching, and pagination. Focus on trade-offs rather than a single perfect answer.

They look for clear communication, collaboration with designers and backend engineers, and pragmatism about device fragmentation and deadlines. Showing how you make trade-offs visible to the team carries real weight.

Ready to Ace Your Interview?

Build Your CV

Related

Related Job Titles

Data Scientist

Technology

Data Analyst

Technology

DevOps Engineer

Technology

Product Manager

Technology

UX Designer

Technology

UI Designer

Technology