android-interview
Android Engineer Interview Questions
Kotlin
- What is the difference between
const val
andval
? - What is so interesting about
data class
? - Is singleton thread-safe? vs Object?
- What are different type of scope modifiers?
- What are different Coroutine Scope?
- 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?
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.
Lifecycle
- How to keep a video maintain playing state when we rotate screen?
- How many callbacks in Fragmnets?
- What could be the reasons when
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 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 foreground?
- When is onActivityResult called?
- What does setRetainInstance do and how you can avoid it?
- What callbacks trigger when a Dialog opens up? Conside both case, dialog attached from same activity/fragment and other activity/fragment.
- What does
launchWhenCreated
,launchWhenStarted
, andlaunchWhenResumed
functions do?
Networking
- What is the role of OkHttp and Retroifit?
- What design pattern is Retroifit?
Dependency Injection
- Provides vs binds
- Subcomponent vs component dependency, what is the difference under the hood
- What is subcomponent and what is the 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?
Android Compose
- How to launch coroutine from a composable function? - LaunchedEffect
- How to launch coroutine from a non-composable function, but tied to composition? - rememberCoroutineScope()
- What is recomposition? Recomposition
- 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 which can skip recomposition?
System Design
- Design Image Loading Library
- Design Image Downloading Library
- Design LRU Cache
Common Question
String
vsStringBuilder
Contributing Guidelines
What interesting questions you had faced while giving interview for Android Engineer role (any level)? Let's open a PR.