Android developer interview questions for remote jobs

Remote Android interviews concentrate on Kotlin, coroutines, Jetpack Compose, lifecycle and architecture, plus how you keep an app fast and stable on many devices. Expect a take-home or live exercise and a deep technical conversation about your choices.

These are questions we see often in interviews for remote Android roles open to Nigerian developers.

Updated October 2026 by the WorkRemote careers team

On this page
  1. About the role and your experience
  2. Technical questions
  3. Behavioural questions
  4. Situational questions
  5. Remote work questions
  6. Remote interview tips
  7. FAQs

About the role and your experience

Openers that check you understand the job and have done the work.

  1. Why native Android rather than cross-platform?

    Why they ask

    They want to know you understand when native is worth it.

    How to answer

    Full access to platform APIs, best performance and the newest features first. Say you understand why some companies choose cross-platform, and that you can read Kotlin Multiplatform or Flutter code if needed.

Technical questions

What you know and how you'd do the work, often with a live task or test.

  1. What happens to an Activity when the user rotates the phone, and how do you keep state?

    Why they ask

    Configuration changes are a basic Android concept that still causes bugs.

    How to answer

    By default the Activity is destroyed and recreated. A ViewModel survives configuration changes, so keep screen state there. It does not survive process death, so save small essential state with SavedStateHandle, and in Compose use rememberSaveable for UI state such as text in a field.

  2. What is process death, and how do you test for it?

    Why they ask

    Many apps lose user data when the system kills them in the background.

    How to answer

    Android can kill your app's process while it is in the background to free memory. When the user returns, the system recreates the Activity but your in-memory state is gone. Persist important state with SavedStateHandle or local storage. Test it with the "Don't keep activities" developer option or by killing the process with adb while the app is in the background.

  3. Explain coroutines, scopes and dispatchers in Android.

    Why they ask

    Concurrency is central to modern Android code.

    How to answer

    Coroutines are lightweight, suspendable tasks. A scope (viewModelScope, lifecycleScope) ties them to a lifecycle so they are cancelled automatically. Dispatchers choose the thread pool: Main for UI, IO for disk and network, Default for CPU work. Use withContext to switch, and handle cancellation and exceptions properly.

  4. What is the difference between StateFlow and SharedFlow?

    Why they ask

    Exposing UI state correctly is a daily task.

    How to answer

    StateFlow always holds a current value and replays it to new collectors, which suits UI state. SharedFlow can be configured with no replay, suiting one-off events such as showing a snackbar, though many teams now model events as state instead. Collect flows in the UI with collectAsStateWithLifecycle or repeatOnLifecycle to avoid working while the app is in the background.

  5. What is recomposition in Jetpack Compose, and how do you avoid unnecessary recompositions?

    Why they ask

    Compose performance problems usually come from misunderstanding recomposition.

    How to answer

    When state a composable reads changes, Compose re-runs that composable. Keep state reads as low in the tree as possible, use stable or immutable types for parameters, use remember for expensive calculations, use derivedStateOf when a value changes less often than its inputs, and provide keys in lazy lists. Check with the Layout Inspector's recomposition counts.

  6. What is state hoisting?

    Why they ask

    A core Compose pattern that shows whether you write reusable components.

    How to answer

    Moving state out of a composable to its caller, passing down the value and an event callback such as onValueChange. It makes components stateless, reusable and easy to test, and keeps a single source of truth.

  7. What causes an ANR, and how do you fix one?

    Why they ask

    ANRs hurt Play Store visibility and user ratings.

    How to answer

    An ANR happens when the main thread is blocked too long, for example the app does not respond to an input event within about five seconds. Common causes are disk or network work on the main thread, heavy work in a BroadcastReceiver, or lock contention. Find them in Play Console's Android vitals and traces, move work to background dispatchers or WorkManager, and use StrictMode in development to catch main-thread I/O.

    Show a sample answer

    In a wallet app I worked on, ANRs spiked after a release. The Play Console trace showed we were reading a large encrypted SharedPreferences file on the main thread during startup. I moved it to DataStore, loaded it on Dispatchers.IO behind a splash state, and the ANR rate dropped by more than half in the next release.

  8. When would you use WorkManager instead of a coroutine?

    Why they ask

    Background work rules on Android are strict and change often.

    How to answer

    Use a coroutine for work tied to a screen or the app being open. Use WorkManager for deferrable work that must happen even if the app is closed or the phone restarts, such as uploading logs or syncing data, with constraints like "only on Wi-Fi" or "when charging".

  9. How do you structure an Android app?

    Why they ask

    They want to know you can work in and build a maintainable codebase.

    How to answer

    Describe the recommended layers: UI (composables and ViewModels), an optional domain layer for shared business logic, and a data layer with repositories over network and local sources. Explain unidirectional data flow, dependency injection with Hilt, and splitting into feature modules as the app grows.

  10. How would you cause, find and fix a memory leak?

    Why they ask

    Leaks cause crashes on low-memory devices.

    How to answer

    A classic leak is a singleton or long-running coroutine holding an Activity context or a view. Detect it with LeakCanary or the Android Studio memory profiler. Fix it by using the application context where possible, scoping work to the right lifecycle and clearing references.

  11. How do you write a Room migration safely?

    Why they ask

    Bad migrations crash apps for existing users only, which is easy to miss in testing.

    How to answer

    Increase the database version, write a Migration with the SQL changes, export schemas, and test with MigrationTestHelper from the old schema to the new one. Avoid fallbackToDestructiveMigration in production unless losing local data is acceptable.

Behavioural questions

Past situations. Answer with a real example: what happened, what you did, what changed.

  1. Tell me about the most complex Android feature you built.

    Why they ask

    Shows depth and how you explain technical work.

    How to answer

    Pick one: offline sync, a camera or document scanning flow, a payment SDK integration, a complex Compose UI. Explain the problem, the design, a hard bug and the result.

  2. How do you keep up with Android changes each year?

    Why they ask

    The platform changes fast: new APIs, Play policy updates, target SDK deadlines.

    How to answer

    Mention specific habits: Android Developers blog, release notes for each Android version, Now in Android, migrating your own projects to new target SDKs.

Situational questions

Hypotheticals about problems you'd meet in the job.

  1. Your crash rate jumped after a release. What do you do?

    Why they ask

    Shows how you handle production incidents on mobile, where fixes are slower.

    How to answer

    Halt the staged rollout in Play Console, look at Crashlytics for the top new crash and the affected devices and OS versions, fix and ship a hotfix, and tell the team what happened. Afterwards, add a test or check that would have caught it.

    Show a sample answer

    We had a 2% crash rate on day one of a release, mostly on older Tecno phones running Android 7. I paused the rollout at 20%, found that a new date-formatting library used an API not available on that OS version, swapped it for java.time with desugaring, and shipped the fix the next day. We restarted the rollout once crash-free users were back above 99.5%.

Remote work questions

How you'll work from Nigeria with a team elsewhere: hours, power, internet, communication.

  1. How do you coordinate with an iOS developer on the same feature when you are in different time zones?

    Why they ask

    Mobile features usually ship on both platforms together.

    How to answer

    Agree behaviour and API needs in a written spec, share screenshots or recordings of both versions, and flag platform differences early. Use a shared ticket so QA can test both.

  2. How do you test on devices you do not own?

    Why they ask

    Device variety is a real issue, and they want a practical answer.

    How to answer

    Emulators with different screen sizes and API levels, Firebase Test Lab for real devices, staged rollouts with close monitoring, and asking teammates or beta testers on specific devices.

Remote interview tips

Keep Android Studio open with your portfolio project built before a call. Gradle can take minutes to sync on a fresh open, and you do not want to wait on camera.

If they ask you to share a running app, mirror a real phone with scrcpy or use the emulator, and test the setup the day before.

Plan for data use. Emulator images and Gradle dependencies are large, so download them on a stable connection before interview week.

Questions people ask

What is a common Android take-home test?

A list-detail app using a public API, written in Kotlin with Compose, a ViewModel, offline caching with Room and some tests. Expect four to eight hours.

Do Android interviews include data structures and algorithms?

Larger companies often include a coding round. Startups usually focus on Android-specific questions and a practical task.

Will they ask about Java?

Sometimes, if the codebase is older. Kotlin is the focus in most interviews.

Updated October 2026 by the WorkRemote careers team

Share or discuss this guide