Android Engineer Interview Questions 2025
Kotlin
- Difference Between const val and val?
- What is Data Class in Kotlin?
- What are the different Coroutine Scopes?
- How to manage series and parallel execution?
- Difference between Flow/SharedFlow/StateFlow and elaborate it.
- What happens if we call
.cancel()
from a coroutine scope?
- What is an Init block in Kotlin?
- How to choose between apply and with?
- What is inline function in Kotlin?
- Difference between Coroutine and Java Thread
- Why Coroutines are light weight?
- How does Coroutine switch context?
- When to use Kotlin sealed classes?
- Suspending vs Blocking in Kotlin Coroutines
- What are Dispatchers and Name all of them
- On which thread Dispatchers .Default execute the task or use which thread?
- Dispatchers .Default vs Dispatcher .IO
- What is SupervisorScope?
- Exception Handling in Coroutine
- Map vs FlatMap in kotlin
- Singleton Pattern in Kotlin with object keyword
- Collections API in Kotlin
- What is Unidirectional Flow
- StateFlow vs SharedFlow
- Builder Pattern in Kotlin
- Higher Order Functions in Kotlin
- Covariance in Kotlin
- Delay vs Thread.sleep?
- Is singleton thread-safe? vs Object?
- How does Garbage collection works?
- What is a dangling pointer?
- Elaborate Memory Leak?
- Explain fragment Lifecycle when it comes to ViewPager and sliding between different fragments.
- Difference between FragmentStateAdapter and FragmentStatePagerAdapter.
- Difference between Serializable and Parcelable? What are the disadvantages of Serializable?
- How you could implement observable SharedPrefs or observable Databases i.e. Observe a certain key/table/query?
- How does layout inflation work from xml tags to view references in memory?
- What is a Thread, Handler, Looper, and Message Queue?
- What are the different methods of concurrency on Android? Can you explain the difference between ExecutorService vs CachedThreadPool vs FixedThreadPool vs AsyncTasks vs HandlerThreads?
- How does
ViewModel
instance provide to Activity and Fragment? How doesViewModelProviderStore
decide when to retain the instance?
- How do you inspect and solve the Jank issue?
- How does the OutOfMemory happen?
- How do you find memory leaks in Android applications?
- What is Doze? What about App Standby?
- What does
setContentView
do?
- Process of creating a custom view
- Deeplink understanding and architecture
- Notifications
- Difference between Fragment Lifecycle Observer and View Lifecycle Observer.
- When should you use a Fragment rather than an Activity?
- Explain the Android push notification system.
- How LiveData is different from ObservableField?
- What is the difference between setValue and postValue in LiveData?
- What is process death?
- What is ViewModelScope and How does it work internally?
Lifecycle
- How to keep a video maintain a playing state when we rotate the screen?
- How many callbacks are in Fragments?
- What could be the reasons why
onPause
didn't get triggered?
- What kind of events trigger
onPause()
to run?
- In what scenario does the "onDestory" get called directly after "onCreate"?
- Which callback gets called on Activity when an AlertDialog is shown?
- What's the lifecycle in PIP (Picture-in-Picture)?
- What happens if you rotate the device?
- Inside a viewpager (Fragment state pager adapter) what will be the lifecycle of the fragments when you swap from one tab to another?
- Why onActivityCreated is now depreciated in Fragment?
- Which callback should I use if I want to know when my activity came to the foreground?
- When is onActivityResult called?
- What does setRetainInstance do and how you can avoid it?
- What callbacks trigger when a Dialog opens up? In both cases, the dialog is attached from the same activity/fragment and another activity/fragment.
- What do
launchWhenCreated
,launchWhenStarted
, andlaunchWhenResumed
functions do?
- Fragment Callbacks when moving from one fragment to another and coming back to prev one?
- Does onCreateView get called after coming to a fragment from top fragment?
- When does ViewModel not survive?
Networking
- What is the role of OkHttp and Retrofit?
- What design pattern does Retrofit use?
- How would optimize the handling of access token expiration? How would you handle a retry network call when the API fails? (Custom Interceptor response)
WebView
- What are the problems around security when dealing with
WebView
?
- How to interact or make connections with JavaScript?
Dependency Injection
- Provides vs binds
- Subcomponent vs. component dependency, what is the difference under the hood
- What is a subcomponent and what is its use? How do you use qualifiers or how would you provide different instances of a class with the same data type? Constructor Injection V/s Method Injection? What is the scope? Singleton Annotation?
- What is Circular dependency in dagger? and how to resolve it
- What's interesting about Hilt?
- Did you use Koin? What are your thoughts on it?
- How to launch a coroutine from a composable function?
- How to launch a coroutine from a non-composable function, but tied to composition?
- What is recomposition?
- What is
remember
in Jetpack Compose?
- Why and when to use
remember {}
?
- Difference between
LazyColumn
andRecyclerView
?
- What is AndroidView in compose?
- What is the lifecycle of composeables? Lifecycle
- How to avoid recomposition of any composable, if the state is not changed? Smart Recomposition
- What are stable types that can skip recomposition?
- What is State?
- What is MutableState and how does recomposition happen?
- How to retain State across recomposition and configuration changes?
- Difference between Stateless and Stateful composeables?
- What are your thoughts on flat hierarchy, constraint Layout in compose vs. the older view hierarchy in xml
- Difference b/w remember and LaunchedEffect
- Does re-composition of
ComposeItem1
bring any effect onComposeItem2
? If yes, then how? - What is
CompositionLocal
?
- Custom views in compose
- Canvas in Compose
- What are the benefits of Jetpack Compose?
- How does Jetpack Compose integrate with existing Android frameworks and libraries?
- What are the best practices for performance optimization in Jetpack Compose?
- How is navigation handled in Jetpack Compose?
- What is Strong Skipping Mode?
Thread
- Different types of threads?
- Difference between different types of thread?
- Thread <-> Handler <-> looper
- UI vs Background Thread
- How do you know when some process if blocking a UI thread?
Architecture
- What are SOLID principles?
- What is MVVM?
- Brief about Android Architecture.
- MVP vs MVVM?
- Is there any issue in the Presenter in the MVP?
- Clean Architecture
- MVVM vs MVI
- What is Clean Architecture in MVVM
- What are Provides and Binds in your Dagger library
Design Patterns
- What is SOLID principle?
- What are different design patterns you know about?
- What is a creational pattern?
- What is a structural pattern?
- What is a behavioral pattern?
- Create Singleton Pattern without Kotlin default implementation
- Create Observer Pattern
- Create Adapter Pattern
- How to make a Singleton Pattern Thread Safe?
- What is Dependency Inversion
- Write a real-life example of Dependency Injection without using any library
- Explain how Android Architecture components (ViewModel, LiveData, etc.) utilize design patterns behind the scenes
System Design
- Design Image Loading Library
- Design Image Downloading Library
- Design LRU Cache
- Design a real-time Twitter feed timeline. How will you structure the backend? Will you use WebSocket or REST for this use case? Justify.
- Design Networking Library
- Design Checkout Screen
- Design Error handling Structure
- REST <-> Web Sockets
- Implement caching mechanism
- Build an offline-first app
- Design Analytics Library
Libraries
- How does Glide internally work?
- How does retrofit work internally?
- ViewModel internal working
- How will you choose between Dagger 2 and Dagger-Hilt?
Common Questions
String
vs StringBuilder
==
vs .equals
?===
vs ==
?- Java OOP concepts
- ComposeParent() { ComposeItem1 {} ComposeItem2() {...} }
Android Engineer Interview Questions 2025
Reviewed by sahar ali raza
on
March 31, 2025
Rating: 5