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
About the role and your experience
Openers that check you understand the job and have done the work.
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.
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.
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.
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.
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.
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.
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.
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 answerHide the 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.
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".
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.
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.
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.
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.
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.
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 answerHide the 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.
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.
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
Interview questions for roles close to android developer
- Mobile Developer
A mobile developer builds apps for Android and iPhone, and most remote roles open to Nigerians use a cross-platform framework, React Native (often with Expo) or Flutter, so one codebase ships to both stores. It can be done fully remotely from Nigeria, but you need apps people can download, and some real-device testing on iOS.
- iOS Developer
An iOS developer builds native apps for iPhone and iPad in Swift, mostly with SwiftUI and some UIKit. You can do it remotely from Nigeria, but it costs more to start than Android: you need a Mac for Xcode, ideally an iPhone, and $99 a year to publish on the App Store.
- Software Engineer
A software engineer designs, writes, tests and maintains the code behind products, and it is one of the remote jobs Nigerians most often get with foreign companies. Entry-level remote roles are rare, so most people get their first two years of experience locally or through freelance work before landing a dollar-paid contract.
- QA Engineer
A QA engineer makes sure software works before users find out it does not, by planning tests, finding bugs and, increasingly, writing automated tests in code with tools like Playwright, Cypress and Postman. Remote QA roles open to Nigerians exist, especially for automation engineers (often called SDETs); purely manual testing roles are fewer and pay less.