Blog Infos
Android Interview Question Bank 🏦



Hey Android Devs 💚,
I am working as a full-time Android Developer for a long time now in a client-based IT company. And during my service, I am fortunate enough to appear in a few client interviews for MNCs & startups as well. My intent to write this blog is to share my past interview experiences & help you all out with your journey.

I habitually note down questions immediately after completing my interview round. I have listed down below some interview questions for senior developers and tried to include answers to most questions as well.

I have also attached the Codelab link to try coding examples & Quiz links for the MCQ round at the end of this blog. Also, I have added a publication link to learn jetpack Compose from scratch with example code as it’s a hot skill nowadays!

Java ☕️
  • What is the diff between encapsulation & abstraction (practical example) — Check here
  • HashMaps vs HashTables — Check here
  • When to use array & ArrayList — Check here
  • What is the volatile keyword — Check here
  • What is the transient keyword — Check here
  • What is a diff between a string buffer & string builder — Check here
  • Why is string immutable — Check here
  • Explain multithreading. How two threads pass messages internally — Handler
  • class A -> extends class B, implements interface C. Both have the same method fun add() {}, Which one will be implemented in class A?
    Try yourself
  • What is the difference between String test = new String(“X”) & String test = “X”. Explain String constant pool & String literal — Check here
  • When I am in my activity onResume() & get a phone call what will be the lifecycle of the fragment inside my activity — Try yourself
  • Explain context & applicationContext, also a practical example — Check here
  • what is the difference between ViewModel and AndroidViewModel — Check here
  • what is the diff between MVP & MVVM — Check here
  • Tell me any method of broadcast receiver except onReceive() — Check here
  • How Broadcast receiver is used for the network (WIFI) changes — Check here
  • Type of services in Android — Check here
  • Is the Intent service run on background or main thread — Check here
  • Explain FCM foreground & background notifications — Check here
  • Design patterns in Android — Check here
  • What do you think about NavHost in navigation? — Check here
  • Explain database management using SQLite, Room & Realm — Check here
  • What is a foreign key in Room DB? Why do we use it? — Check here
  • What is doze mode, and when is it introduced? — Check here
  • what is ADB, can you tell me any commands? — Cheatsheet
  • what is linting in Android — Check here
  • What is Rxjava, and how it works? — Check here
  • What are SOLID principles? — Check here
  • Have you worked with any other hardware systems? (i.e. I have worked with Clover POS system)
  • What is KMM? — Check here
  • What are the benefits of Kotlin over Java
  • Explain the use of lateinit & lazy keywords
  • In any class we have a member variable or function, so how can we make a getter setter of that variable?
  • What is MVVM, and how does it work? what is the use of Live data?
  • What is null safety in Kotlin?
  • What is the diff between Var & Val
  • What is Elvis operator?
  • What is Flow API in Kotlin — Check here
  • Explain coroutines in kotlin
  • What are scoped functions in kotlin
  • How can you declare a singleton class
  • what is the diff between companion obj & object
  • used extension functions? example
  • what is the diff between static & singleton > Singleton has an instance/object while static class is a bunch of static methods.
  • what is constant
  • Explain @jvmstatic @jvmoverloads @jvmfiled

You can get most of the Kotlin answers here:

Job Offers

Job Offers

There are currently no vacancies.


, ,

Migrating to Jetpack Compose – an interop love story

Most of you are familiar with Jetpack Compose and its benefits. If you’re able to start anew and create a Compose-only app, you’re on the right track. But this talk might not be for you…
Watch Video

Migrating to Jetpack Compose - an interop love story

Simona Milanovic
Android DevRel Engineer for Jetpack Compose

Migrating to Jetpack Compose - an interop love story

Simona Milanovic
Android DevRel Engin ...

Migrating to Jetpack Compose - an interop love story

Simona Milanovic
Android DevRel Engineer f ...


Jetpack Compose 🚀
  • What are the benefits of using Jetpack compose?
  • What is a Composable function?
  • What is a declarative approach?
  • What jetpack compose libraries have you used?
  • Explain compose UI basic components

Jetpack compose blogs with Github examples: Jetpack Composers

Testing 🐛

Espresso Testing Library: Espresso UI Testing for Intents

Data Structure
  • The time complexity of Hash Table — O(1)
  • Best for getting the last item — Stack
  • Time Complexity of Binary Search — O^n
  • Which is best Sorting Algo — Quick Sort
  • Best performance for finding minimum value — Array

If you have 5+ years of experience, it’s recommended to prepare for this section.

  • Explain one of your challenging/exciting/recent project
  • VCS — Git — PR review process, CI/CD process
  • Explain deep linking
  • About NDK, c++
  • What other languages do you know apart from Kotlin?
  • Explain the architecture of the communication application, and what data security measures you take while developing.
  • How do you keep up to date yourself with the latest development?
  • Any contribution to the community? Git, StackOverflow

That’s a wrap for now! Many more to come 💥
I hope you find this blog helpful.
All the best! 👍


This article was originally published on on October 14, 2022



It’s one of the common UX across apps to provide swipe to dismiss so…
In this part of our series on introducing Jetpack Compose into an existing project,…
This is the second article in an article series that will discuss the dependency…
Let’s suppose that for some reason we are interested in doing some tests with…

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.