amitshekhariitbhu
android-interview-questions
Java

Your Cheat Sheet For Android Interview - Android Interview Questions and Answers

Last updated Jul 7, 2026
12.3k
Stars
2.4k
Forks
14
Issues
+8
Stars/day
Attention Score
99
Language breakdown
No language data available.
β–Έ Files click to expand
README

Android Interview Questions

Android Interview Questions and Answers

Android Interview Questions and Answers - Your Cheat Sheet For Android Interview

Prepared and maintained by the Founder of Outcome School: Amit Shekhar

About me

Hi, I am Amit Shekhar, Founder @ Outcome School β€’ IIT 2010-14 β€’ I have taught and mentored many developers, and their efforts landed them high-paying tech jobs, helped many tech companies in solving their unique problems, and created many open-source libraries being used by top companies. I am passionate about sharing knowledge through open-source, blogs, and videos.

You can connect with me on:

Live session on "Android Developer Interview Preparation for Product-based Companies"

I conducted a live session on "Android Developer Interview Preparation for Product-based Companies"

Interacted with over 500 Android Developers.

Guided, motivated, and inspired them to aim higher and achieve more.

Recording Link: https://www.youtube.com/watch?v=Yby0AA7ZSUE

Document Link: https://docs.google.com/document/d/14UdD7Gd1j3no583ALx2t2Ggt3G_CECYhenLE-m-bkzA/edit?usp=sharing

Contents - Android Interview Questions



I teach at Outcome School

Join Outcome School and get a high-paying tech job: Outcome School

Fast-Track Android Interview Preparation: Join Outcome School Android Program

Android Interview Questions and Answers Playlist

Watch this video on "Android Developer Interview Preparation for Product-Based Companies": Android Developer Interview Preparation for Product-Based Companies

  • Question: Android Push Notification Flow using FCM
- Answer: Android Push Notification Flow using FCM
  • Question: What is an inline function in Kotlin?
- Answer: What is an inline function in Kotlin?
  • Question: What is the advantage of using const in Kotlin?
- Answer: What is the advantage of using const in Kotlin?
  • Question: What is a reified keyword in Kotlin?
- Answer: What is a reified keyword in Kotlin?
  • Question: Suspending vs Blocking in Kotlin Coroutines
- Answer: Suspending vs Blocking in Kotlin Coroutines
  • Question: Retrofit vs OkHttp
- Answer: Retrofit vs OkHttp
  • Question: Launch vs Async in Kotlin Coroutines
- Answer: Launch vs Async in Kotlin Coroutines
  • Question: internal visibility modifier in Kotlin
- Answer: internal visibility modifier in Kotlin
  • Question: open keyword in Kotlin
- Answer: open keyword in Kotlin
  • Question: lateinit vs lazy in Kotlin
- Answer: lateinit vs lazy in Kotlin
  • Question: What is Multidex in Android?
- Answer: What is Multidex in Android?
  • Question: How does the Android Push Notification system work?
- Answer: How does the Android Push Notification system work?
  • Question: How does the Kotlin Multiplatform work?
- Answer: How does the Kotlin Multiplatform work?
  • Question: What is a ViewModel and how is it useful?
- Answer: What is a ViewModel and how is it useful?
  • Question: Is it possible to force the Garbage Collection in Android?
- Answer: Is it possible to force Garbage Collection in Android?
  • Question: What is a JvmStatic Annotation in Kotlin?
- Answer: What is a JvmStatic Annotation in Kotlin?
  • Question: init block in Kotlin
- Answer: init block in Kotlin
  • Question: JvmField Annotation in Kotlin
- Answer: JvmField Annotation in Kotlin
  • Question: singleTask launchMode in Android
- Answer: singleTask launchMode in Android
  • Question: Difference between == and === in Kotlin
- Answer: Difference between == and === in Kotlin
  • Question: JvmOverloads Annotation in Kotlin
- Answer: JvmOverloads Annotation in Kotlin
  • Question: Why is it recommended to use only the default constructor to create a Fragment?
- Answer: Why is it recommended to use only the default constructor to create a Fragment?
  • Question: Why do we need to call setContentView() in onCreate() of Activity class?
- Answer: Why do we need to call setContentView() in onCreate() of Activity class?
  • Question: When only onDestroy is called for an activity without onPause() and onStop()?
- Answer: When only onDestroy is called for an activity without onPause() and onStop()?

Fast-Track Android Interview Preparation: Join Outcome School Android Program

Kotlin Coroutines

Topics you should know in Kotlin Coroutines for Android Interview:

  • coroutines
  • suspend
  • launch, async-await, withContext
  • dispatchers
  • scope, context, job
  • lifecycleScope, viewModelScope, GlobalScope
  • suspendCoroutine, suspendCancellableCoroutine
  • coroutineScope, supervisorScope
  • runBlocking
  • Exception Handling
Learn the above-mentioned from the following links:

Kotlin Flow API

Topics you should know in Kotlin Flow API for Android Interview:

  • Flow Builder, Operator, Collector
  • flowOn, dispatchers
  • Operators such as filter, map, zip, flatMapConcat, retry, debounce, distinctUntilChanged, flatMapLatest
  • Terminal operators
  • Cold Flow vs Hot Flow
  • StateFlow, SharedFlow, callbackFlow, channelFlow
Learn the above-mentioned from the following links:

Kotlin

Android Interview Questions and Answers:

  • What is the advantage of using const in Kotlin? - Video and Blog
  • What is inline function in Kotlin? - Video and Blog
  • What is a JvmStatic Annotation in Kotlin? - Video and Blog
  • What is a JvmField Annotation in Kotlin? - Video and Blog
  • What is a JvmOverloads Annotation in Kotlin? - Video and Blog
  • What is an init block in Kotlin? - Video and Blog
  • Difference between == and === in Kotlin - Video and Blog
  • What is the meaning of structured concurrency in Kotlin Coroutines? - Learn from here
  • How to check if a lateinit variable has been initialized? - Learn from here
  • What is the equivalent of Java static methods in Kotlin? - Learn from here
  • What is the difference between open and public in Kotlin? - Learn from here
  • Explain the use-case of let, run, with, also, apply in Kotlin. - Learn from here and here
  • How to choose between apply and with? - Learn from here and here
  • What happens if an exception is thrown inside an async coroutine, but await() is never called? - Learn from here
  • Kotlin code snippet demonstrating how to run two coroutines in series and parallel - Learn from here
  • flatMapConcat, flatMapMerge, and flatMapLatest in Kotlin Flow - Learn from here

Fast-Track Android Interview Preparation: Join Outcome School Android Program

Android

Android Interview Questions and Answers:

Base

  • What is the project structure of an Android Application? - Learn from here

Activity and Fragment

  • Why is it recommended to use only the default constructor to create a Fragment? - Learn from video and blog
  • When only onDestroy is called for an activity without onPause() and onStop()? - Learn from here
  • Why do we need to call setContentView() in onCreate() of Activity class? - Learn from here
  • What is onSaveInstanceState() and onRestoreInstanceState() in activity? - Learn from here
  • What is the difference between a Fragment and an Activity? Explain the relationship between the two. - Learn from here
  • When should you use a Fragment rather than an Activity?
- When you have some UI components to be used across various activities - When multiple views can be displayed side by side just like ViewPager
  • What is the difference between FragmentPagerAdapter vs FragmentStatePagerAdapter?
- FragmentPagerAdapter: Each fragment visited by the user will be stored in the memory but the view will be destroyed. When the page is revisited, then the view will be created not the instance of the fragment. - FragmentStatePagerAdapter: Here, the fragment instance will be destroyed when it is not visible to the user, except the saved state of the fragment.
  • What is the difference between adding/replacing fragment in backstack? - Learn from here
  • How would you communicate between two Fragments?
  • What is the purpose of addToBackStack() while commiting fragment transaction?
- By calling addToBackStack(), the replace transaction is saved to the back stack so the user can reverse the transaction and bring back the previous fragment by pressing the Back button. For more Learn from here

Views and ViewGroups

  • What is View in Android?
  • Can you a create custom view? How?
  • What are ViewGroups and how they are different from the Views?
- View: View objects are the basic building blocks of User Interface(UI) elements in Android. View is a simple rectangle box which responds to the user’s actions. Examples are EditText, Button, CheckBox etc. View refers to the android.view.View class, which is the base class of all UI classes. - ViewGroup: ViewGroup is the invisible container. It holds View and ViewGroup. For example, LinearLayout is the ViewGroup that contains Button(View), and other Layouts also. ViewGroup is the base class for Layouts.
  • Relative Layout vs Linear Layout.
  • Do you know what is the view tree? How can you optimize its depth? - Learn from here

Displaying Lists of Content

  • What is the difference between ListView and RecyclerView? - Learn from here
  • RecyclerView Optimization - Scrolling Performance Improvement - Learn from here
  • How does RecyclerView improve performance over ListView?
  • What are the components of a RecyclerView?
  • Explain the role of RecyclerView.Adapter and RecyclerView.ViewHolder - Learn from here
  • What is a LayoutManager in RecyclerView?
  • How do you handle multiple view types in a single RecyclerView?
  • What is DiffUtil and how does it improve RecyclerView performance? - Learn from here
  • What is the purpose of RecyclerView.setHasFixedSize(true)? - Learn from here
  • How do you update a specific item in RecyclerView?
  • What is SnapHelper? - Learn from here: SnapHelper

Dialogs and Toasts

Intents and Broadcasting

  • Describe how broadcasts and intents work to be able to pass messages around your app? - Learn from here
  • What is a PendingIntent?
- If you want someone to perform any Intent operation at future point of time on behalf of you, then we will use Pending Intent.

Services

Inter-process Communication

  • Is it possible to run an Android app in multiple processes? How? - Learn from here
  • What is AIDL? Enumerate the steps in creating a bounded service through AIDL. - Learn from here
  • What is a ContentProvider and what is it typically used for? - Learn from here

Long-running Operations

  • Explain Looper, Handler, and HandlerThread.
  • Can you explain the difference between a Runnable and a Thread in Android? - Learn from here

Working With Multimedia Content

Data Saving

  • What is ORM? How does it work?
  • How would you preserve the Activity state during a screen rotation? - Learn from here
  • What are different ways to store data in your Android app? - Learn from here
  • Explain Scoped Storage in Android.
  • How to encrypt data in Android?
  • What is commit() and apply() in SharedPreferences?
- commit() returns a boolean value of success or failure immediately by writing data synchronously. - apply() is asynchronous and it won't return any boolean response. If you have an apply() outstanding and you are performing commit(), then the commit() will be blocked until the apply() is not completed.

Look and Feel

  • What is a Spannable?
  • What is a SpannableString?
- A SpannableString has immutable text, but its span information is mutable. Use a SpannableString when your text doesn't need to be changed but the styling does. Spans are ranges over the text that include styling information like color, highlighting, italics, links, etc
  • What are the best practices for using text in Android?
  • How to implement Dark mode in any application?

Fast-Track Android Interview Preparation: Join Outcome School Android Program

Memory Optimizations

  • How to identify and fix OutOfMemory issues?
  • How do you find memory leaks in Android applications?

Battery Life Optimizations

  • How to reduce battery usage in an Android application?

Supporting Different Screen Sizes

Permissions

  • What are the different protection levels in permission?

Native Programming

Android System Internal

Android Jetpack

  • What is Android Jetpack and why to use this?
  • What are Android Architecture Components?
  • How is LiveData different from ObservableField?
  • Explain WorkManager and its use cases.
  • Minimum repeat interval allowed when scheduling a PeriodicWorkRequest using WorkManager - Learn from here
  • How does ViewModel work internally?

Others

  • What is the difference between Serializable and Parcelable? Which is the best approach in Android? - Learn from here
  • Why Bundle class is used for data passing and why cannot we use simple Map data structure? - Learn from here
  • FlatBuffers vs JSON.
  • What is the Android Support Library? Why was it introduced? - Learn from here
  • What is Android Data Binding?

Android Libraries

Android Interview Questions and Answers:

  • Why do we use the Dependency Injection Framework like Dagger in Android? - Learn from here
  • Explain @ Inject, @ Module, @ Provides, @ Component Annotations in Dagger 2 - Learn from here
  • How does the Dagger work?
  • How will you choose between Dagger 2 and Dagger-Hilt?
  • What is a Component in Dagger?
  • What is Module in Dagger?
  • How does the custom scope work in Dagger?
  • When to call dispose and clear on CompositeDisposable in RxJava? - Learn from here
  • What is Multipart Request in Networking?
  • Tell me something about RxJava.
  • How will you handle error in RxJava?
  • How are Timer, Delay, and Interval operators used in RxJava? - Learn from here
  • Difference between Schedulers.io() and Schedulers.computation() in RxJava.

Fast-Track Android Interview Preparation: Join Outcome School Android Program

Android Architecture

Android Interview Questions and Answers:

  • Describe the architecture of your last app.
  • MVC vs MVP vs MVVM architecture.

Design Pattern

Android Interview Questions and Answers

Android System Design

Android Interview Questions and Answers:

Refer to this blog: Android System Design Interviews

  • Design WhatsApp
  • Design Instagram Stories
  • Design Networking Library
  • Design Facebook Near-By Friends App
  • Design Caching Library.
  • Design problems based on location-based app
  • How to build an offline-first app? Explain the architecture
  • Design LRU Cache
  • Design Analytics Library

Fast-Track Android Interview Preparation: Join Outcome School Android Program

Android Unit Testing

Android Interview Questions and Answers:

  • Unit Testing ViewModel with Kotlin Coroutines and LiveData - Learn from here

Android Tools And Technologies

Android Interview Questions and Answers:

  • What is the StrictMode? - Learn from here: StrictMode
  • What is Lint? What is it used for?
  • Git.
  • How to measure method execution time in Android?
  • Can you access your database of SQLite Database for debugging? - Learn from here
  • What are things that we need to take care while using Proguard?
  • How to use Android Studio Memory Profiler?
  • What is Gradle?
  • APK Size Reduction.
  • How can you speed up the Gradle build?
  • About gradle build system.
  • About multiple apk for Android Apps.
  • What is obfuscation? What is it used for? What about minification?
  • What is Write-Ahead Logging (WAL) and why it is used internally in databases? - Learn from here

Jetpack Compose

Topics you should know in Jetpack Compose for Android Interview:

  • Compose
  • State: remember, rememberSaveable, MutableState
  • Recomposition
  • State hoisting
  • Side-effects
  • Modifier
  • Theme
  • Layout, List
  • Gestures, Animation
  • CompositionLocal
  • Phases
Learn the above-mentioned from the following links:
README truncated. View on GitHub

Β© 2026 GitRepoTrend Β· amitshekhariitbhu/android-interview-questions Β· Updated daily from GitHub