Preface
Testimonial
- Manuel Vivo (Staff Android Engineer at Bumble, Ex Android DevRel at Google)
- Matt McKenna (Senior Android Engineer at Block, Android GDE)
- Alejandra Stamato (Lead Android Engineer at HubSpot, Ex Android DevRel at Google)
- Simona Milanovic (Senior Android Developer Relations Engineer)
About This Book
- To. Interviewees
- To. Interviewers
Sponsors
- Stream
Issue Reports & Discussion
0. Android Interview Questions
- Category 0: The Android Framework
- Q) 0. What is Android?
- Q) 1. What is Intent?
- Q) 2. What is the purpose of Pending Intent?
- Q) 3. What are the differences between Serializable and Parcelable
- Q) 4. What is Context and what types of Context exist?
- Q) 5. What is Application class?
- Q) 6. What is the purpose of the AndroidManifest file?
- Q) 7. Describe the Activity lifecycle
- Q) 8. Describe the Fragment lifecycle
- Q) 9. What is Service?
- Q) 10. What is BroadcastReceiver?
- Q) 11. What is the purpose of a ContentProvider, and how does it facilitate secure data sharing between applications?
- Q) 12. How to handle configuration changes?
- Q) 13. How Android handles memory management, and how do you avoid memory leaks?
- Q) 14. What are the main causes of ANR errors, and how can you prevent them from occurring?
- Q) 15. How do you handle deep links?
- Q) 16. What are tasks and back stack?
- Q) 17. What’s the purpose of Bundle?
- Q) 18. How do you pass data between Activities or Fragments
- Q) 19. What happens to an Activity during configuration changes?
- Q) 20. What is ActivityManager?
- Q) 21. What are the advantages of using SparseArray
- Q) 22. How do you handle runtime permissions?
- Q) 23. What are the roles of Looper, Handler, and HandlerThread?
- Q) 24. How do you trace exceptions?
- Q) 25. What are build variants and flavors?
- Q) 26. How do you ensure accessibility?
- Q) 27. What is the Android file system?
- Q) 28. What are Android Runtime (ART), Dalvik, and Dex Compiler?
- Q) 29. What are the differences between the APK file and the AAB file?
- Q) 30. What is R8 optimization?
- Q) 31. How do you reduce application sizes?
- Q) 32. What is a process in Android applications, and how does the Android operating system manage it?
- Category 1: Android UI - Views
- Q) 33. Describe the View lifecycle
- Q) 34. What’s the difference between View and ViewGroup?
- Q) 35. Have you ever used ViewStub and how do you optimize UI performance using it?
- Q) 36. How to implement custom views?
- Q) 37. What is Canvas and how to utilize it?
- Q) 38. What is the invalidation in the View system?
- Q) 39. What is ConstraintLayout?
- Q) 40. When should you use SurfaceView instead of TextureView?
- Q) 41. How does RecyclerView work internally?
- Q) 42. What’s the difference between Dp and Sp?
- Q) 43. What is the use of a nine-patch image?
- Q) 44. What is a Drawable, and how is it used in UI development?
- Q) 45. What is Bitmap on Android, and how would you handle large Bitmaps efficiently?
- Q) 46. How do you implement animations?
- Q) 47. What is the Window?
- Q) 48. How do you render a web page?
- Category 2: Jetpack Library
- Q) 49. What is the AppCompat library?
- Q) 50. What is the Material Design Components (MDC)?
- Q) 51. What is the advantages of using ViewBinding?
- Q) 52. How DataBinding works?
- Q) 53. What is LiveData?
- Q) 54. What is Jetpack ViewModel?
- Q) 55. What is the Jetpack Navigation Library?
- Q) 56: What are Dagger 2 and Hilt?
- Q) 57. What is the Jetpack Paging library?
- Q) 58. What is Baseline Profile?
- Category 3: Business Logic
- Q) 59. How would you manage long-running background tasks?
- Q) 60. How do you serialize Json format to object
- Q) 61. How do you handle network requests to fetch data, and which libraries or techniques do you use for efficiency and reliability?
- Q) 62. Why is a paging system essential for loading large datasets, and how can it be implemented with RecyclerView?
- Q) 63. How do you fetch and render images from the network?
- Q) 64. How do you store and persist data locally?
- Q) 65. How do you handle offline-first features?
- Q) 66. Where do you launch tasks for loading the initial data? LaunchedEffect vs. ViewModel.init()
1. Jetpack Compose Interview Questions
- Category 0: Compose Fundamentals
- Q) 0. What is the structure of Jetpack Compose?
- Q) 1. What are the Compose phases?
- Q) 2. Why is Jetpack Compose a declarative UI framework?
- Q) 3. What is recomposition, and when does it occur? Also, how does it relate to the app performance?
- Q) 4. How does the composable function work internally?
- Q) 5. What is stability in Jetpack Compose, and how does it relate to performance?
- Q) 6. Have you ever had experience optimizing Compose performance by improving stabilities?
- Q) 7. What is composition and how to create it?
- Q) 8. What strategies are available for migrating the XML-based project to Jetpack Compose?
- Q) 9. Why should you always test Compose performance in release mode?
- Q) 10. What Kotlin idioms are frequently used in Jetpack Compose?
- Category 1: Compose Runtime
- Q) 11. What is State and which APIs are used to manage it?
- Q) 12. What are the advantages you can take from the state hoisting?
- Q) 13. What are the differences between remember and rememberSaveable?
- Q) 14. How do you safely create a coroutine scope within composable functions?
- Q) 15. How do you handle side effects inside composable functions?
- Q) 16. What is the purpose of rememberUpdatedState, and how does it work?
- Q) 17. What is the purpose of produceState, and how does it work?
- Q) 18. What is snapshotFlow and how does it work?
- Q) 19. What is the purpose of derivedStateOf, and how does it help optimize recomposition?
- Q) 20. What’s the lifecycle of composable functions or Composition?
- Q) 21. What is SaveableStateHolder?
- Q) 22. What’s the purpose of the snapshot system?
- Q) 23. What are the mutableStateListOf and mutableStateMapOf?
- Q) 24. How can you safely collect Kotlin’s Flow in composable functions while preventing memory leaks?
- Q) 25. What’s the role of the CompositionLocals?
- Category 2: Compose UI
- Q) 26. What’s Modifier?
- Q) 27. What is Layout?
- Q) 28. What is Box?
- Q) 29. What are the differences between Arrangement and Alignment?
- Q) 30. What is Painter?
- Q) 31. How do you load images from the network?
- Q) 32. How can you efficiently render hundreds of items as a list in while avoiding UI jank?
- Q) 33. How do you implement pagination with lazy lists?
- Q) 34. What is Canvas?
- Q) 35. Have you ever utilized graphicsLayer Modifier?
- Q) 36. How do you implement visual animations in Jetpack Compose?
- Q) 37. How do you navigate between screens?
- Q) 38. How preview works and how do you handle them?
- Q) 39. How do you write unit tests for Compose UI components or screens?
- Q) 40. What is screenshot testing, and how does it help ensure UI consistency during development?
- Q) 41. How do you ensure accessibility in Jetpack Compose?
Final Words
- Reflecting on Your Learning Journey
- Beyond the Interview
- A Few Parting Thoughts
- Thank You








