Cracking interviews for Android (Java/Kotlin) roles isn’t just about writing perfect code—it’s about showcasing your understanding of the platform, system design, and your approach to real-world problems.
Over the years, I’ve seen how deep these interviews can go. Here’s a breakdown of the topics and typical challenges you might face in a mobile dev interview.
🔥 Core Android (Kotlin / Java)
⚙️ Fundamentals & Components
- Activity vs Fragment – Know when and why to use each.
- Intent vs Bundle vs Parcelable – Understand the differences and real use cases.
- onSaveInstanceState vs ViewModel – Who owns what during configuration changes?
- Service vs WorkManager vs JobScheduler – Which to use for background tasks?
- ViewModel – How does it survive configuration changes?
🔄 Lifecycle & Memory Management
- Deep dive into Activity/Fragment lifecycle, including edge cases like system kills and back stack behavior.
- Handling process death and state restoration.
- Avoiding memory leaks (LeakCanary, WeakReferences, etc.).
- Understanding how Garbage Collection works on Android and how to optimize memory usage.
🔗 Dependency Injection (DI)
- Hilt vs Dagger2 vs Koin – Pros, cons, and when to use what.
- Understanding scopes – Singleton, ViewModelScoped, etc.
- Manual DI vs Framework-based DI – Pros and cons.
- Dealing with multi-module DI setups in Hilt.
🚀 Kotlin-Specific Topics
- Why choose Kotlin over Java?
- Kotlin Coroutines vs RxJava – Practical differences.
- Flow vs LiveData – When to use what?
- How to migrate callbacks to suspend functions.
- Null safety best practices and common pitfalls.
🧰 Jetpack & Architecture
- LiveData vs StateFlow – Understanding reactive programming in Android.
- Handling Room migrations, indexing, and threading concerns.
- Using the Navigation Component vs traditional navigation.
- Jetpack Compose vs XML – When should you adopt it?
- Working with Paging 3 and complex pagination logic.
- Effective use of WorkManager, chaining, and constraints.
🧠 Architecture & Design Patterns
- MVVM vs MVI vs MVP – Which pattern fits your app?
- Why the Repository pattern is important.
- Clean architecture breakdown – UI vs Domain vs Data.
- Applying SOLID principles to Android development.
- Recognizing and fixing Separation of Concerns issues.
- Unit testing ViewModels and repositories – Tools & approach.
🐞 Debugging & Performance
- Using StrictMode, Systrace, Profiler – and when to use each.
- Debugging ANRs and diagnosing slow UI/jank issues.
- Solving threading issues and UI thread violations.
- Performing memory analysis with Android Profiler.
💬 Behavioral & Thought Process
These often come up in senior or lead interviews:
- A performance bottleneck you fixed – explain the diagnosis and solution.
- A time when DI setup was a blocker – how did you approach it?
- Walkthrough your app’s architecture – and the reasoning behind it.
- Refactoring legacy code – where would you start?
- Debugging production crashes – especially the tricky, non-reproducible ones.
✅ Final Tips
- Always explain trade-offs in your choices.
- Use real examples, not just theory.
- In system design rounds, break down features by:
- Be ready to sketch architecture diagrams, even in virtual interviews.
Interviews today are as much about your approach and mindset as your code. Focus on clarity, real-world examples, and reasoning. Mastering these topics can take you from a good dev to a standout candidate.