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?

Android
  • 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 does ViewModelProviderStore 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 launchWhenCreatedlaunchWhenStarted, and launchWhenResumed 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?

Jetpack Compose
  • 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 and RecyclerView?
  • 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 on ComposeItem2? 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() {...} }

No comments:

Powered by Blogger.