This guide is tailored for both beginner Android developers and those with a couple of years of experience. It covers everything from basic Android interview questions for freshers, like understanding activity lifecycle, intents, and layouts — to more advanced Android interview questions for experienced developers, such as Jetpack components, architecture patterns (MVVM, MVP), dependency injection (Dagger, Hilt), and Kotlin coroutines.
You’ll also find commonly asked Android studio interview questions, performance optimization challenges, and real coding scenarios interviewers love throwing at candidates. If you're targeting your first Android developer job, or you're just brushing up for a mid-level Android position, this list has you covered with real-world Android interview questions and smart answers to back you up.
Whether it’s a startup hiring for a product-based role or a big tech firm conducting multiple technical rounds — expect to see many of these questions. Think of this as your complete Android interview prep guide
For Freshers: Just Getting In the Game
2. What’s the role of an Activity in Android?
Think of an Activity as a single screen in your app. Like, when you open Instagram and see the feed—that's one Activity. Tap into messages? That’s another Activity. It manages the UI, the lifecycle, and the user interactions on that screen.
3. Difference between Activity and Fragment?
An Activity is the full screen. A Fragment is like a smaller piece of UI that lives inside an Activity. You use Fragments when you want a modular, reusable UI component that can be swapped out without killing the whole screen. Especially useful for tablets or multi-pane layouts.
4. What is an Intent?
An Intent is how Android lets different parts of the system talk to each other. Want to move from one screen to another? Use an Intent. Want to open the phone dialer or camera? Intent again. It’s like passing a message: "Hey, do this for me."
5. What is a Service?
A Service runs in the background. Let’s say your music app keeps playing even after you switch to WhatsApp—that’s a Service keeping it alive. But be careful: Services can eat up resources if not handled properly.
6. What’s the AndroidManifest.xml file?
It’s the central config file of your app. You declare your Activities, permissions, app metadata—basically, tell the system what your app does and what it needs. If you forget to register an Activity here, good luck getting it to launch.
7. What are the main components of Android?
There are four core building blocks:
- Activities – UI screens
- Services – Background tasks
- Broadcast Receivers – Listen to system-wide events
- Content Providers – Share data between apps
You may not use all of them on day one, but you'll touch each of these eventually if you're building something serious.
8. What is the Android Activity Lifecycle?
It’s the set of states an Activity goes through: onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy(). You manage what your app does at each stage. Forgetting to save state during onPause()? That’s how data disappears when the user rotates the screen.
9. How do you store data in Android?
Depends on what you're storing:
- For key-value pairs? SharedPreferences.
- For structured local data? Room DB (modern SQLite).
- For bigger things like files? Use internal or external storage.
- Just don’t store passwords in plain text. Ever.
10. What is RecyclerView?
RecyclerView is a more powerful, flexible version of ListView. It's how you show lists in Android—feeds, messages, search results. It’s efficient because it reuses views instead of creating new ones again and again. Hence the name "Recycler."
For Experienced Developers: The System Knows You
Now let’s move to the side of the table where you’re expected to know your architecture patterns, threading, app performance, dependency injection… and all the other things junior devs panic about.
11. Explain MVVM Architecture.
MVVM stands for Model-View-ViewModel.
- Model handles data.
- View is the UI (like XML layout).
- ViewModel acts as a bridge—gets data from Model, gives it to the View.
This setup makes your code cleaner, testable, and more scalable. Jetpack’s ViewModel and LiveData make MVVM really smooth on Android.
12. What is Dependency Injection? Why use Dagger or Hilt?
Dependency Injection means passing objects your classes need from the outside—so they’re not creating dependencies themselves. This keeps things loosely coupled and easier to test.
Dagger and Hilt are libraries that help automate this. Hilt is built on top of Dagger and is more beginner-friendly.
13. How do you manage background tasks?
For background work:
- Use WorkManager for deferrable tasks.
- Use Coroutines with Dispatchers.IO for background threads.
- Avoid using raw Threads unless you absolutely need to.
Also, don’t forget to handle lifecycle properly or you’ll leak memory or crash the app.
14. What is Jetpack Compose?
Jetpack Compose is Android’s new UI toolkit, based on Kotlin. No more XML. You write UIs using functions. It’s reactive, flexible, and finally feels modern—especially if you’ve worked with Flutter or React before.
15. How do you prevent memory leaks?
Common causes: holding a reference to a Context, especially in static fields, or long-running background tasks that outlive the Activity.
Fixes:
- Use applicationContext carefully.
- Avoid anonymous inner classes.
- Cancel coroutines and observers when not needed.
16. What’s the difference between LiveData and StateFlow?
- LiveData is lifecycle-aware and UI-bound.
- StateFlow is part of Kotlin Flow; it’s cold, and you manually collect it.
In modern apps, many devs are shifting toward StateFlow because it works better with coroutines and gives more control.
17. What’s Room Database and why use it?
Room is Google’s abstraction over SQLite. You get type safety, annotations, compile-time validation, and easier queries using DAO interfaces.
If you're still writing raw SQL with cursors—stop. Room handles it better and is built to work with LiveData or Flow right out of the box.
18. How do you secure an Android app?
- Don’t store sensitive data in SharedPreferences.
- Use the Android Keystore for encryption.
- Avoid exporting components unless needed.
- Use ProGuard or R8 to obfuscate your code.
Security isn’t just about login screens. It’s about protecting what’s inside the app too.
19. What are some common performance bottlenecks in Android?
- Overdraw from nested layouts.
- Memory leaks from mismanaged context or bitmaps.
- Slow lists due to unoptimized RecyclerViews.
- Blocking the main thread with network/database operations.
Use tools like Android Profiler, StrictMode, and LeakCanary to catch these.
20. How do you handle configuration changes?
When a device rotates, the Activity restarts. If you're not saving state, your UI resets.
Solutions:
- Use onSaveInstanceState() for lightweight data.
- Use ViewModels for long-lived data that survives config changes.
- Use android:configChanges in manifest only when you really know what you're doing.