Android was developed by Google and first released in 2008, growing ever more popular since. With over 70% of the market share, Android is the most popular mobile Operating System in the world, making it critical for companies and developers seeking to land on mobile devices. Android developers are still in strong demand.
This list of Android interview questions and answers will help you prepare for an Android-related role. The questions have been divided into beginner, intermediate and advanced.
Before we begin looking into these interview questions on Android, let’s clear up some general Android developer interview questions first.
What are the Questions Asked in an Android Interview?
You’ll be asked a range of questions in your android interview, ranging from theory to practical. Generally speaking, you can expect an Android interview will contain questions for 2-5 years of experience (depending on the job seniority).
Fortunately, it is not extremely difficult, so you should be able to ace the interview with some solid preparation.
Top Android Interview Questions and Answers
We start off with some basic Android interview questions, before moving on to the more difficult ones.
Basic Level Interview Questions
1. Explain the build process in Android.
The build process in Android has three steps:
- The first step consists of the compilation of the resources folder using the Android Asset Packaging Tool (AAPT). These are compiled into a single class file known as R.java, which only holds constants.
- In the second step, the java source code needs to be compiled to .class files using javac, which are then converted to Dalvik bytecode using the ‘dx’ tool, which is one of the tools in the software development kit. The final output file is classes.ex.
- In the third and final step, the Android apk builder is required to take all the inputs and build the Android Packaging Key (APK) file.
2. Name some Android programming languages.
The following is a list of the most popular programming languages that can be used to develop applications for Android:
- Java: One of the most popular programming languages, Java has always been a starting point for new developers and is used by many who work with Android development.
- Kotlin: Kotlin is a relatively new, modern, safe, and object-oriented cross-platform programming language. When Android Studio 3.0 was released in Oct 2017, Kotlin was announced as the official programming language for Android. Many popular applications such as Trello, Square, and Corda have since then shifted to Kotlin.
- C#: Using the C# language developers can build native iOS and Android mobile applications.
- Python: Python has emerged as one of the most popular programming languages in recent times. A dynamic and object-oriented programming language, Python is very popular in machine learning.
3. What are the different tools available in Android development? Explain their functions.
There are a variety of tools available to help Android developers:
- Android Software Development Kit (SDK) and Virtual Device Manager: This tool is used to generate and handle Android Virtual Devices (AVD) and SDKs. Through the emulator in the AVD, you can specify the supported SDK version, storage in the SD card, screen resolution, and other abilities such as GPS and touch screen.
- The Android Emulator: The AE is the implementation of the Android Virtual Machine, designed to run processes within a virtual device itself, which can be used on a development computer. The main use of this tool is in testing and debugging Android applications.
- Android Debug Bridge (ADB): The ADB is a command-line debugging application doled out with the SDK. It enables developers to communicate with the device, and facilitates actions such as the installation and debugging of an application.
- Android Asset Packaging Tool (AAPT): The AAPT builds the ‘.apk’ distributable Android package file.
4. Explain the Android Interface Definition Language.
Android Interface Definition Language or AIDL facilitates the communication between the client and service. For the procedure of communication between processes, the data is split into small portions which are easily recognized by the Android platform.
5. Describe Folder, File & Description of Android Applications
The following are brief explanations of these concepts:
- gen: gen contains the compiler-generated .R file which references all the resources in the project
- src: src holds the .java source files in our project
- bin: bin contains the .apk file built by the ADT during the build process, along with all the other things needed to run an Android application
- AndroidManifest.xml: This file is the manifest file that explains the basic features of the application and defines all its components
- res/values: res/values is a directory for other various XML files that contain resources such as strings, color definitions and more
- res/drawable-hdpi: This is a directory for objects that are drawable and designed for high-density screens
- res/layout: It is a directory of files that define the UI for your application
6. What are ‘activities’? Describe the lifecycle of an activity.
Activities are referred to as a window to the user interface. It helps in the display of output or could even ask for inputs so that the dialog boxes and other roles can be performed to create a user interface. The lifecycle of an activity is as follows
- OnCreate(): The views are created and data is collected from bundles
- OnStart(): Called if the activity is visible to the user. It may be succeeded by onResume() if the activity reaches the foreground and onStop() if it converts into hidden.
- OnResume(): Called when the activity starts an interaction with the user
- OnPause(): Called when the activity is going to the background but hasn’t been killed yet
- OnStop(): Called when you are no longer visible to the user
- OnDestroy(): Called when the activity is finishing
- OnRestart(): Called after the activity has been stopped, prior to it being started again
7. State some advantages of Android.
These are some advantages of Android:
- Low investment and better returns: Android development has a low entry barrier and is suitable for new developers looking to become proficient in the programming field
- Free SDK: One of the most prominent features of Android is that the Software Development Kit is open source and is provided free of charge, which eradicates the cost of licensing distribution and development fee
- Easy Adoption: Android applications are scripted in Java, which is one of the most used programming languages in the world
- Reusable: Android components can be reused and even replaced by the framework
- Multi-Platform Support: The Android platform supports major OSs such as Linux, Mac OS, and Windows
- Support for Wearable Devices: The market is now flooded with wearable devices and Android has emerged as leading support for such devices that are now readily available in the market
8. What are some of the disadvantages of Android?
The following are some disadvantages of the Android Operating System
- Fake Applications: There are thousands of fake apps available on the market at any given time, which when installed may try to steal your data.
- Streamlining issues: There are a variety of Android devices available in the market, with different screen sizes and dimensions, but more importantly, different Android Operating Systems. Every application developer has to constantly work towards updating their application for the new OS but with various OS versions and upgrades, the process is quite difficult. An application that runs smoothly on one version of the Android OS might crash on a different Android OS.
- Background Processes: The abundance of running processes in the background is always an issue, as they eat up the battery quickly.
9. Define the architecture of Android.
The Android architecture consists of five components. These are:
- Linux Kernel: The Linux Kernel forms the basis of the Android platform, and this powers features such as memory and power management, and various drivers. It serves as an abstraction layer before the other layers.
- Platform Libraries: Android’s platform libraries are native C and C++ libraries that provide support for graphics and media, and a WebKit library. This allows developers to implement graphic functionality and display web content, among other things.
- Android Runtime: Android Runtime (ART) and the core libraries are among the most significant parts of the architecture. It serves as the foundation for the application framework, and has features like optimized garbage collection.
- Android applications: This is what you see when you use your phone, and is the top level of the architecture. Core apps like email, SMS, and contacts come pre-installed.
- Application Framework: The application framework contains classes that are used in the creation of an application. They provide the building blocks with which you can create apps, and provide services such as a resource manager, notification manager, and activity manager.
10. What is an “Emulator”?
An "Emulator" in Android helps the developers play around with an interface that acts as a real mobile device. This way, it becomes easier for the developers to write and test different codes for the application. The process of debugging also becomes possible through emulators. Thus, emulators provide a safe platform for testing codes in their early phases as well as in the later stage when the bugs need to be dealt with.
11. What is an Activitycreator?
An Activitycreator is an initial step towards the creation of the Android project. It consists of the shell script that can be used for creating a new file system that is necessary for writing codes within the Android system.
12. What is Android Runtime?
Android Runtime (ART) is an application used by the Android OS as a runtime environment. It has now replaced Dalvik, a discontinued Virtual Machine (VM). ART translates the bytecode of the application into native instructions, which are carried out by the device’s runtime environment.
13. Explain the term ANR.
The term ANR is short for Application Not Responding. It is displayed as a notification by the Android OS every time the application stops responding to the user's action for a considerable amount of time.
14. Explain the dialog boxes supported on Android.
Android supports four dialog boxes:
- AlertDialog: AlertDialog supports 0-3 buttons, along with a list of selectable items, such as radio buttons and checkboxes
- DatePickerDialog: Used for the selection of date by the user
- TimePickerDIalog: Used for the selection of time by the user
- ProgressDialog: Used to display a progress bar and is an extension of the AlertDialog. It also supports the addition of buttons.
15. What are Android Frameworks?
Android frameworks are a set of APIs that make the development process easier. Developers can write apps quickly because APIs provide tools like intents, text fields, and more. It is essentially a software tool kit that allows for quick construction of the skeleton of an application.
16. What is an API in Android?
An Application Programming Interface (API) is simply a set of specifications or rules that determine how software components can interact with each other. Companies that release an API do so to let developers design products around the services it provides.
Intermediate Level Interview Questions
17. What are Sensors in Android?
Android-based devices have an assortment of built-in sensors in them, which measure certain parameters such as motion, orientation, and more. These sensors help to monitor the positioning and movement of the device with high accuracy. They can be both software and hardware-based on nature. The three prominent categories of sensors in Android devices are:
- Position Sensor: It is used to measure the physical position of the Android device. This includes orientation sensors and magnetometers
- Motion Sensors: These sensors include gravity, rotational activity, and acceleration sensors which measure the rotation of the device or the acceleration and much more.
- Environmental Sensor: It includes sensors that measure temperature, pressure, humidity, and other environmental factors
18. Name some testing scenarios for real devices, not on emulators.
Emulators are devices that are used to perform tasks comparable to that of real Android devices, and are used to decrease the cost of testing.
But some scenarios can only be performed on real devices. These scenarios include:
- Mounting and unmounting the memory card
- Validation of battery scenarios
- Memory related issues
- Validation of the performance
19. What is Context?
Context in Android, as its name suggests, is the context of the current state of your application or object. The context comes with services such as giving access to databases and preferences, resolving resources, and much more.
There are two types of context:
- Activity Context: This context is attached to the lifecycle of an activity. It should be used when you are passing the context in the scope of an activity or you need the context whose lifecycle is attached to the current context.
- Application Context: This context is attached to the lifecycle of an application. The application context can be used where you need a context whose lifecycle is separate from the current context or when you are passing a context beyond the scope of activity.
20. How do you find memory leaks in an application on the Android platform?
The Android Device Manager (ADM) helps find memory leaks in an application on Android. When you open ADM in Android Studio, you can see parameters such as heap size and memory analysis along with many others while you run an application.
21. State the architecture of an Android application.
Any Android application has the following components:
- Notification: Offers features such as light, sound, icons, etc.
- Services: Performs background functionalities
- Intent: Performs inter-connection between activities and mechanisms that pass on data
- Resource Externalization: Offers features such as strings and graphics
- Content Providers: Shares data between applications
22. How do you troubleshoot an application that crashes frequently?
The following actions can help diagnose an Android application that crashes frequently:
- Free Memory: As there is a limited amount of space on mobile devices, you can try by freeing up memory space for the application to function properly
- Compatibility Check: It may not be a hardware problem, but more of a software issue. It is not always possible to test an application for all devices and Operating Systems. There might be a chance that the application is not compatible with your OS, so check the compatibility on the application’s Google Play Store page.
- Memory Management: Some applications run perfectly on one mobile device but may crash on other devices. This is where processing power, memory management, and CPU speed come into play. Check the application memory requirements if the application crashes constantly.
- App Data Usage: You can delete the application’s data, which will clear its cache memory and allow some free space on your device and might boost the app’s performance
23. Explain DDMS in brief.
The Dalvik Debug Monitor Server (DDMS) is a debugging tool in Android Studio. It has a wide range of debugging features, such as:
- Port forwarding
- Location data spoofing
- Screen capture
- Radio state information
- Thread and Heap information
The DDMS tool is now deprecated and Android now suggests the users use Android Profiler instead.
24. Explain the difference between implicit and explicit intent.
Below is the difference between the two intents
- Explicit Intent: An explicit intent is where you inform the system about which activity or system component it should use to generate a response to this intent.
- Implicit Intent: An implicit intent allows you to declare the action you wish to carry out, after which the Android system will check which components are registered to handle that specific action.
25. What is the AndroidManifest.xml file and why do you need this?
The AndroidManifest.xml file contains information about the application, which is then provided to the Android system. This data may include the package name, components such as activity, services, content providers, and more. This file executes the following tasks:
- Providing a unique name to the Java package
- Describing various components of the application, such as activity, services, and more. It also defines the classes which will implement these components.
- Declaring the Android API which will be used by the application
- Holding the library file details linked to the application
26. Explain the different launch modes in Android.
These are the different launch modes in Android:
- Standard: This launch mode generates a new instance of the activity in the task from which it originated. It is possible to create multiple instances of the same activity, which can be added to the same or different tasks.
- SingleTop: This launch mode is similar to the Standard launch mode, except if there exists a previous instance of the activity on the top of the stack, then a new instance will not be created, but the intent will be sent to the existing instance of the activity.
- SingleTask: This launch mode will always create a new task and push a new instance to the task as the root one.
- SingleInstance: This launch mode is the same as the SingleTask launch mode but the system doesn’t launch any new activities in the same task. In a scenario where the new activity is launched, it is launched in a separate task.
Advanced Level Interview Questions
27. State the components which are necessary for a New Android Project
When a new Android project is created, the following components are required:
- Manifest: Contains the XML file
- Build/: Contains build output
- Res/: Contains non-code resources such as bitmap images, UI strings and more
- Src/: Contains the code and resources
- Assets/: Contains a file which can be converted into an .apk file
28. What is the importance of setting up permission in Android application development?
If the code is accessible to anyone and without restrictions, there may be a scenario where the code is compromised, resulting in defect leakage. Once the permissions are set, the code becomes available to authorized users only.
29. What are the different data types supported by AIDL?
AIDL or Android Interface Definition Language facilitates the communication between the client and service. Data Types supported by AIDL are as follows:
- INT, Long, Char, Boolean (Java data types)
30. Name the different data storage options available on the Android platform.
Android platform provides a variety of data storage options that can be used depending on the need of the user. The storage options are:
- SharedPreference: Stores data in XML files
- SQLite: Stores structured data in the private database
- Internal Storage: Stores data in the device file system where it cannot be read by other applications
- External Storage: Stores data in the file system but it can be accessed to all apps in the device
31. Is there any difference between activities and services?
Yes, there are a lot of differences between activities and services. These differences are stated as under:
Can be terminated at any time
Cannot be terminated at any time
Not designed to run behind the scenes
Designed to run behind the scenes
Does not act independently
32. What is the use of XML-based layouts?
The XML-based layouts help inconsistent and standard format for setting up of GUI definition format. The layout details are placed in XML files, and the other items are put in source files.
33. Explain what containers are in the Android system.
The containers in the Android system help hold objects and widgets together so that the specific items and arrangements can be fulfilled. These containers include labels, buttons, fields, etc.
34. What is ADB?
ADB is Android Debug Bridge, which helps developers create remote shell commands. The main function of ADB is to allow and control the communication process towards the emulator port and get a response from it.
35. What are the states in an activity?
There are four states in an activity. These include the following.
- Active state: The activity is in the foreground
- Paused state: The activity is in the background and visible
- Stopped state: The activity is in the background but not visible, even hidden or obscuring other activities
- Destroyed state: The activity is completely terminated or killed/removed
36. What are the permissions in the application development process?
Permissions in the application development process include restrictions that are imposed to protect the data and code. These permissions are applied to protect the application from getting compromised, attacked by viruses, stealing users' information, and causing bugs.
37. What are the intent filters?
Intent filters are the vital components of the Android system because it helps in responding, filtering, and receiving information inputs.
38. Are there any critical loops while monitoring an activity?
Yes, there are three key loops when monitoring an activity. These are:
- Loop 1, Entire Lifetime: The activity happens between onCreate and onDestroy.
- Loop 2, Visible Lifetime: The activity happens between onStart and onStop
- Loop 3, Foreground Lifetime: The activity happens between onResume and onPause
39. What are the possible states in which a process is based?
The possible states in which a process is based include the following:
- State 1: Foreground activity
- State 2: Visible activity
- State 3: Background activity
- State 4: Empty activity
40. Can we prevent ANR in the Android system?
Yes, we can prevent ANR in the Android system. ANR hinders the Android system from ending code that has been responsive for a long time. The prevention can be made by creating a child thread wherein most of the actual workings of the codes can be applied, and the minimum period of unresponsive times can be revealed.
41. What are Default Resources? How are they useful?
The default resources include the default strings and files. Their absence will result in creating errors on the screen and could also hinder the running of the downloaded application. They are useful as they are placed as subdirectories under the project directory, which supports the running of the downloaded application.
42. What is a Fragment in Android?
A Fragment in the Android system is a part of the activity, which is modular in a sense. They can move around and could even combine with other fragments to form a single activity. Fragments are reusable.
Use These Android Interview Questions to Prepare
So this was our list of the Android development interview questions. Don’t forget to check our best Android tutorials recommended by the community to further help your preparation.
If you want material for Android interview questions for experienced developers, consider reading more material and coding.
Android books are a good pick, and you must have a look at this java book which will help you prepare for an upcoming interview: Java: Programming Basics for Absolute Beginners (Step-By-Step Java Book 1). You could also try some of the best Android projects if you want a hands-on learning experience.
Do you have any other questions that we left unanswered? Let us know via the comments below. Also make sure to checkout the course below if you want to learn all about Android 12!
People are also Reading:
- How to Become a Mobile App Developer?
- Top Java Interview Questions & Answers
- Kotlin vs Java: Difference you should Know
- JQuery Interview Questions
- Node.JS interview Questions
- Top Data Structure Interview Questions
- Top Bootstrap Interview Questions and Answers
- AWS Interview Questions & Answers
- Best Data Science Interview Questions & Answers
- HCL Recruitment Process or Interview Questions & Answers