Currently, Android OS is the most popular mobile platform globally, accounting for over 75% of all mobile devices. Reports indicate that Android dominates the global smartphone market, accounting for 80 percent of sales. There is no question that Android App Development Certification is one of the hottest skills on the market today, and the numbers are only going to grow in the coming years.
For beginners, the best android tutorials are an excellent place to start learning Android development.
With Android's popularity skyrocketing by the second, Android developers are in high demand. Therefore, in this article, I present you with 50 top Android interview questions and answers.
Android Interview Questions For Both Beginners and Experts:
1. What is Android?
Answer: Android is an open-source operating system used on mobile devices, including smartphones and tablets. Android applications run on their processes and instances of Dalvik Virtual Machine(DVM) or Android Runtime(ART).
2. Explain the build process in Android?
Answer: In Android, there are three steps to the build process:
- Compiling the resources folder using the Android Asset Packaging Tool (AAPT) is the first step. These are compiled into a single class file called R.java, which contains only constants.
- The second step involves compiling the java source code into .class files using javac, which is then converted to Dalvik bytecode using the 'dx' tool inside the software development kit. Classes.ex is the final output file.
- Lastly, the Android apkbuilder needs to take all the inputs and build the Android Packaging Key (APK) file.
3. Explain the Android Interface Definition Language.
Answer: Android Interface Definition Language allows communication between the client and service. For the communication between processes, the data is divided into small portions that are easily recognized by Android.
4. List some languages that can be used to program in Android.
Answer: The following is a list of the most popular programming languages for developing Android applications:
- Java: Java, the most popular programming language worldwide, has always been a good starting point for new developers and is used by most Android developers.
- Kotlin: Kotlin is a cross-platform, object-oriented, modern, safe, and relatively new programming language. Kotlin was announced as Android's official programming language when Android Studio 3.0 launched in October 2017. Since then, many popular applications such as Trello, Square, and Corda have migrated to Kotlin.
- C#: C# allows developers to build native iOS and Android mobile apps.
- Python: In recent years, Python has become one of the most popular programming languages. It is a dynamic and object-oriented programming language widely used in machine learning.
5. What is the latest version of Android? List all the Android versions.
Answer: The latest android version is Android 11 released in September 2020. Each Android version has a name based on sweets or desserts. The following are all the android versions available:
- Android 1.5, Cupcake: April 27, 2009
- Android 1.6, Donut: September 15, 2009
- Android 2.0-2.1, Eclair: October 26, 2009 (initial release)
- Android 2.2-2.2.3, Froyo: May 20, 2010 (initial release)
- Android 2.3-2.3.7, Gingerbread: December 6, 2010 (initial release)
- Android 3.0-3.2.6, Honeycomb: February 22, 2011 (initial release)
- Android 4.0-4.0.4, Ice Cream Sandwich: October 18, 2011 (initial release)
- Android 4.1-4.3.1, Jelly Bean: July 9, 2012 (initial release)
- Android 4.4-4.4.4, KitKat: October 31, 2013 (initial release)
- Android 5.0-5.1.1, Lollipop: November 12, 2014 (initial release)
- Android 6.0-6.0.1, Marshmallow: October 5, 2015 (initial release)
- Android 7.0-7.1.2, Nougat: August 22, 2016 (initial release)
- Android 8.0-8.1, Oreo: August 21, 2017 (initial release)
- Android 9.0, Pie: August 6, 2018
- Android 10.0: September 3, 2019
- Android 11.0: September 8, 2020
6. What are activities? Describe the lifecycle of an activity.
Answer: Android activities serve as containers/windows for the UI. Activities have the following lifecycle:
- OnCreate(): In this step, the views are created, and data is collected from bundles.
- OnStart(): It is invoked whenever the activity is visible to the user. If the activity reaches the foreground, it gets succeeded by onResume(), and if it converts into hidden, it gets followed by onStop().
- OnResume(): It is invoked when the activity starts an interaction with the user.
- OnPause(): This occurs when an activity is going into the background, but it has not yet been killed.
- OnStop(): This occurs when you are no longer visible to the user.
- OnDestroy(): Called when the activity is finishing.
- OnRestart(): Called after the activity has been stopped before it is started again.
7. What is Android Runtime?
Answer: Android Runtime (ART) is an application used as a runtime environment by the Android OS. As a result, it has replaced Dalvik, a discontinued process Virtual Machine (VM). ART translates the bytecode of an application into native instructions, which are carried out by the device's runtime environment.
8. Explain Android Architecture.
Answer: Android architecture describes the different layers in the Android stack. You will find your operating system, middleware, and essential applications on this list. In an android architecture, each layer provides different services to its above-layer. Android stack includes four layers:
- Android Applications
- Android Framework
- Linux Kernel
9. State some advantages of Android.
Answer: Android offers the following advantages:
- Easy Adoption: Android applications are written in Java, one of the most widely used programming languages.
- Free SDK:One of the most appealing aspects of Android is that the Software Development Kit is open source and is free of charge, eliminating the costs of licensing, distribution, and development.
- Low investment and better returns: Android development has a low entry barrier and is a good fit for new developers interested in exploring programming.
- Multi-Platform Support: Android supports major operating systems such as Linux, Mac OS, and Windows.
- Reusable: Android components are reusable and can even be replaced by the framework.
- Support for Wearable Devices: Wearable devices are becoming increasingly popular, and Android has emerged as a leading platform for supporting these devices.
10. What are some of the disadvantages of Android?
Answer: Here are a few downsides to the Android operating system:
Background Processes: It is always problematic to have so many processes running in the background, as they quickly drain the battery.
Fake Applications: Each day there are thousands of fake applications available for download, which attempt to steal personal information when installed.
Streamlining issues: You can find a variety of Android devices on the market, which all have different screen sizes and dimensions and, more importantly, different Android operating systems. Updating an application for the new OS is quite difficult for application developers due to the wide range of OS versions and upgrades. The same application that runs smoothly on one version of Android OS might crash on a different version.
11. Describe Folder, File & Description of Android Applications.
- gen: gen contains the compiler-generated .R file that references all the resources in our project.
- src: src stores the .java source files in our project.
- bin: bin includes the .apk file created by the ADT during the build process, along with all the other files that are required to run an Android app.
- AndroidManifest.xml: It is the manifest file that explains the necessary features of the application and defines all its components.
- res/values: res/values is a directory for other various XML files, which includes resources such as strings, color definitions, and more.
- res/drawable-hdpi: This directory contains drawable objects designed for high-density screens.
- res/layout: This directory contains files that define the user interface for your application.
12. What are the different tools available in Android development? Explain their functions.
Answer: Android developers have access to several tools, including:
Android Debug Bridge (ADB): The ADB is a command-line debugging application that comes with the SDK. It allows developers to communicate with the device and facilitates actions such as installing and debugging applications.
The Android Emulator: As the implementation of the Android Virtual Machine, AE runs processes within a virtual device, which also runs on the development computer. This tool is primarily used for testing and debugging Android applications.
Android Asset Packaging Tool (AAPT): The AAPT tool creates the
.apkdistributable Android package file.
Android Software Development Kit (SDK) and Virtual Device Manager: This tool is used to generate and handle Android Virtual Devices (AVDs) and SDKs. The emulator in the AVD lets you specify the SDK version, storage on the SD card, screen resolution, and other features, such as GPS and touch screen.
13. What is APK format?
Answer: APK stands for Android Application Package. It is the compressed file format that is used for distributing and installing application software and middleware onto Google's Android operating system.
14. Define intents in Android. What are the different types of intents?
Answer: The intent is an "intention" to take action. It is a messaging object used to request an action from another component. Intents are delivered to components using the following methods:
- context.startActivity() – To start an activity
- context.startService() – To start a service
- context.sendBroadcast() – To deliver a broadcast
There are two types of Intent:
- Implicit Intent: Android must evaluate the registered components based on intent data when the target component is not specified in the intent.
- Explicit Intent: Explicit intent is when the application specifies the target component directly in the intent.
15. Explain the dialog boxes supported on Android.
Answer: Android supports four dialog boxes:
- AlertDialog: The most frequently recommended dialog box, the AlertDialog supports 0-3 buttons, as well 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: It is an extension of the AlertDialog that shows a progress bar. Additionally, it supports adding buttons.
16. Name some testing scenarios which be tested on real devices and not on emulators.
Answer: Emulators are devices that can perform tasks comparable to those of real Android devices, and are used to reduce the cost of testing. However, some scenarios can only be performed on real devices and not on emulators. Among these scenarios are:
- Mounting and unmounting the memory card
- Validation of battery scenarios
- Memory related issues
- Validation of the performance
17. How do you find memory leaks in an application on the Android platform?
Answer: Android Studio uses the Android Device Manager (ADM) to find memory leaks in applications running on Android. When you open ADM in Android Studio, you can see parameters like heap size and memory analysis among many others while you run an application.
18. What is Google Android SDK? What are the tools placed in android SDK?
Answer: Google Android SDK is a collection of tools that give developers access to the API libraries and tools needed to develop, test, and debug Android apps. Android SDK includes the following tools:
- Android Emulator
- DDMS – Dalvik Debug Monitoring Services
- AAPT – Android Asset Packaging tool
- ADB – Android debug bridge
19. Explain Sensors in Android.
Answer: Several sensors are built into Android-based devices, including motion sensors, orientation sensors, and more. Due to their high accuracy, these sensors help monitor the positioning and movement of the device. It is possible to have sensors that are both software and hardware-based in nature. Android devices have three main categories of sensors:
- Position Sensor: Using this sensor, you can measure the physical position of an Android device. It includes orientation sensors and magnetometers.
- Motion Sensors: Among these sensors are gravity, rotational activity, and acceleration sensors, which measure the rotation and acceleration of the device.
- Environmental Sensor: It includes sensors that measure humidity, pressure, temperature, and other environmental factors.
20. What is Context?
Answer: The context in Android refers to the current state of your app or object. The context provides services such as granting access to databases and preferences, resolving resources, and much more. In a context, there are two types:
- Activity Context: It is connected to the lifecycle of an activity. Use this method when passing the context within the scope of activity or when requesting a context attached to the current context.
- Application Context: This context is connected to the lifecycle of an application. You can use this when you need a context whose lifecycle is separate from the current context or when you are passing a context outside of the scope of the current activity.
21. State the architecture of an Android application.
Answer: Android applications consist of the following components:
- Content Providers: Share data between applications.
- Intent: To facilitate connections between activities and mechanisms to exchange data.
- Notification: It consists of features such as light, sound, icons, and more.
- Services: Background Functionalities
- Resource Externalization: It includes features such as strings and graphics.
22. Explain DDMS in brief.
Answer: DDMS (Dalvik Debug Monitor Server) is a debugging tool in Android Studio. It offers a wide range of debugging features, including:
- Port forwarding
- Location data spoofing
- Screen capture
- Radio state information
- Thread and Heap information
Android now recommends Android Profiler to users in place of DDMS since the DDMS tool is no longer supported.
23. What is a Toast? Write its syntax.
Answer: Toast is a message that appears on the screen as a pop-up. Specifically, it displays the status of the operation initiated by the user and covers only the space required for the message while the user's recent activity remains visible and interactive.
Toast notification fades in and out automatically and does not accept interaction events.
Toast.makeText(ProjectActivity.this, "Your message here", Toast.LENGTH_LONG).show();
24. Explain the difference between implicit and explicit intent.
Answer: Explicit intents tell the system which activity or component it should use to generate a response to the intent. Meanwhile, in an implicit intent, you describe the action you wish to perform, and the Android system checks which components are registered to handle that action.
25. What is the AndroidManifest.xml file and why do you need this?
Answer: The AndroidManifest.xml file holds information about the application, which it then sends to the Android system. Data in this category may include the package name, components such as activity, services, content providers, etc. It performs the following tasks:
- It provides a unique name to the Java package.
- It contains the library file details linked to the application.
- It declares the Android API that the application will use.
- It describes various components of the application, such as activity, services, and more. Additionally, it defines the classes that will implement these components.
26. Explain different launch modes in Android.
Answer: Android has multiple launch modes:
Standard: The launch mode creates a new instance of the activity in the task from which it originated. It is possible to add multiple instances of the same activity to different tasks or the same one.
SingleTop: This launch mode is similar to the Standard launch mode, except that if there is already an instance of the activity on top of the stack, then a new instance will not be created, but an intent will be sent to the existing instance of the activity.
SingleTask: The launch mode always creates a new task and adds a new instance to the task as the root one.
SingleInstance: It is the same as the SingleTask launch mode, but the system does not launch any new activities in the same task. When a new activity is launched, it comes under a separate task.
27. If an application is crashing frequently, how will you troubleshoot it?
Answer: You can fix an Android application that crashes frequently by:
- Free Memory: As mobile devices have limited space, you may need to free up memory space to get the app to work properly.
- Compatibility Check: It may not be a hardware issue, but rather a software issue. Testing an application across all devices and OS systems is not always possible. You might encounter compatibility issues with the app. Go to the Google Play Store's page for the app to see if it is compatible.
- Memory Management: Some applications run perfectly on one mobile device and crash on another. Performance, memory management, and CPU speed are all relevant factors. If the application crashes constantly, check its application memory requirements.
- App Data Usage: If an application crashes frequently, you can delete the app's data, which will clear the application's cache memory and free up some storage on your device. This could improve the app's performance.
28. State the components which are necessary for a New Android Project.
Answer: To create an Android project, 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 that can be converted into a
29. Explain the term ANR in Android.
Answer: ANR stands for Application Not Responding. The Android OS displays a notification each time the application stops responding to the user's actions for a prolonged time.
30. What is the importance of setting up permission in Android application development?
Answer: When code is accessible to anyone and without restriction, there may be a situation where the code is compromised, resulting in defects appearing. After permissions are set, only authorized users can have access to the code.
31. What are the different data types supported by AIDL?
Answer: AIDL stands for Android Interface Definition Language. It facilitates communication between the client and service. AIDL supports the following data types:
- INT, Long, Char, Boolean (Java data types)
32. Define the architecture of Android?
Answer: The Android architecture consists of four components. They are:
- Linux Kernel.
- Android applications.
- Android Framework.
33. What is an Android System?
Answer: Android is an open-source operating system designed to run on smartphones and tablets. It is based on the Linux Kernel system, which allows developers to create and run applications that perform both essential and advanced functions.
34. What is the full form of AAPT? Explain AAPT?
Answer: AAPT stands for Android Asset Packaging Tool. Developers use it to deal with zip-compatible archives. This tool makes the process of creating, extracting, and viewing the content simpler.
35. What is an Activitycreator?
Answer: An Activitycreator is the first step towards creating an Android project. It contains the shell script used for creating a new file system required for writing codes within the Android system.
36. What are intents in the Android system?
Answer: Intents in the Android system show notifications to users via an Android-enabled device, such as a smartphone or tablet. Therefore, attempts are made to alert the user, and responses can be expected based on the intent.
37. What is an Emulator in Android?
Answer: The Android emulator allows developers to experiment with an interface that resembles a real mobile device. As a result, the developers can write and test different codes for the application faster. Using emulators also makes the process of debugging possible. Therefore, emulators provide a safe platform for testing code at both the beginning and end of the development process when bugs need to be fixed.
38. Define containers in the Android system?
Answer: The containers in the Android system helps in holding objects and widgets together so that the specific items and arrangements are met. These containers include buttons, fields, labels, etc.
39. What is the use of XML-based layouts?
Answer: The XML-based layouts help with inconsistent and standard format when setting up a GUI definition format. The layout details are stored in XML files, while the other items are stored in source files.
40. Do we need Android in the mobile market?
Answer: Definitely! We need Android in the mobile market because it allows smartphone users to download applications that provide several services. Year after year, the developers create different applications. They can showcase these applications to smartphone users and attract them as potential customers from the Android system. Users of the Android system can access several free and paid applications that can secure their data, act as a platform for information, and provide various services based on their needs.
41. What is the full form of ADB? Define ADB?
Answer: ADB stands for Android Debug Bridge. Developers can create remote shell commands with ADB. The main function of ADB is to allow and control communication with the emulator port and then to receive a response from it.
42. What are the permissions in the application development process?
Answer: As part of the application development process, permissions are imposed to protect data and code. Permissions are applied to prevent the application from being compromised, attacked by viruses, stealing users' information, or causing bugs.
43. What are the possible states in which a process is based?
Answer: Here are some state options a process can take.
- State 1: Foreground activity
- State 2: Visible activity
- State 3: Background activity
- State 4: Empty activity
44. Can we prevent ANR in the Android system?
Answer: That is certainly possible. ANR prevents Android from concluding a code that has been responsive for a long time. We can prevent this by creating a child thread in which most of the actual workings of the codes can be applied, and the minimum period of unresponsiveness can be disclosed.
45. What is Dalvik? How is it useful to Android systems?
Answer: Dalvik is a virtual machine that helps Android run applications. In this way, smartphones and other electronic devices can download applications from virtual machines that have all applications stored in their memory. In Dalvik, all new applications, their removal, and updates are done.
46. What is a Fragment in the Android system?
Answer: In the Android system, a fragment is a part of an activity, which is modular in a sense. The fragments can move around and can even be combined to form a single activity. They are reusable.
47. What is a content provider? How is it implemented?
Answer: A content provider manages access to a structured set of data. It is the standard interface that connects data in one process with code running in another process. As a result, it encapsulates data and provides mechanisms for defining data security. Additionally, content providers are used for sharing data between different applications.
A content provider is implemented as a subclass of ContentProviderclass and must implement a standard set of APIs that let other applications perform transactions.
48. What are the Default Resources? How are they useful?
Answer: Default resources include the default files and strings. If they are not present, errors will appear on the screen, and the downloaded application may not run properly. These files are useful because they are placed in subdirectories under the project directory, which allows the downloaded application to run.
49. Define AIDL?
Answer: AIDL stands for Android Interface Definition Language. It is used to handle the interface requirements that exist between the client and the service provider. Through interprocess communication or IPC, it serves as a platform for communication at the same level. In AIDL, the objectives are broken down into primitives so that the Android system can understand them clearly. In addition, AIDL prevents applications from fetching information from other devices.
50. What is a sticky broadcast? Give an example.
Answer: Sticky broadcasts are used to communicate between applications. Users are not notified of these broadcasts. In the Android OS, applications are usually treated as separate users.
For example: When you call registerReceiver() for that action — even with a null BroadcastReceiver — you receive the Intent that was the last broadcast for that action. In this way, you can determine the battery state without necessarily registering all future changes in the state of the battery.
If you have made it this far, then certainly you are willing to learn more about Android development. Here are some more resources related to Android that we think will be useful to you.