The Android mobile Operating System developed by Google was initially released in 2008, and saw its latest release in August 2018, with 9.0 ‘Pie’. The Android OS is the most popular mobile OS in the world, with over 75% market share (Source: Stats Counter).
As the popularity of Android is soaring by the second, Android developers are in demand. Here we bring to you 25 important Android interview questions that will make you interview-ready.
Android Interview Questions
Q: Explain the build process in Android?
A: The build process in Android involves 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 apkbuilder is required to take all the inputs and build the Android Packaging Key (APK) file.
Q: List some languages that can be used to program in Android
A: Below is a list of the most popular programming languages that can be used to develop applications in Android
- Java: Java, the most popular programming language in the world has always been a starting point for new developers and used by the majority of people 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.
Other languages which can be used in Android are C++, HTML 5.
Q: What are the different tools available in Android development? Explain their functions.
A: 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 of 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.
Q: Explain the Android Interface Definition Language.
A: 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.
Q: Describe Folder, File & Description of Android Applications
- 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 .apkk 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
Q: What are ‘activities’? Describe the lifecycle of an activity.
A: Activities in Android are containers/windows to the UI. The lifecycle of an activity is as follows
- OnCreate(): Here, the views are created and data is collected from bundles.
- OnStart(): It is 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(): It is called when the activity starts an interaction with the user.
- OnPause(): This is called when the activity is going to the background but hasn’t been killed yet.
- OnStop(): This is 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
Q: State some advantages of Android.
A: Below 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 which are now readily available in the market.
Q: What is Android Runtime?
A: Android Runtime (ART) is an application used by the Android OS as a runtime environment. It has now replaced Dalvik, a discontinued process Virtual Machine (VM). ART translates the bytecode of the application into native instructions, which are carried out by the device’s runtime environment.
Q: Explain the dialog boxes supported on Android.
A: Android supports four dialog boxes
- AlertDialog: The most suggested dialog box, the 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.
Q: Explain Sensors in Android
A: 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 in the monitor of positioning and movement of the device through their high accuracy. The sensors 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 which measure temperature, pressure, humidity, and other environmental factors.
Q: What are some of the disadvantages of Android?
A: Below 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 version and upgrades, the process is quite difficult. An application which 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.
Q: Name some testing scenarios which be tested on real devices and not on emulators.
A: Emulators are devices which 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 and not on emulators. These scenarios include:
- Mounting and unmounting the memory card
- Validation of battery scenarios
- Memory related issues
- Validation of the performance
Q: What is Context?
The Context in Android, as its name suggests, in 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.
Q: How do you find memory leaks in an application on the Android platform?
A: To find memory leaks in an application on Android, the Android Device Manager (ADM) is used by the Android Studio. 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.
Q: State the architecture of an Android application.
A: Any Android application has the following components:
- Notification- Features such as light, sound, icons and more
- Services- To perform background functionalities
- Intent- To perform inter-connection between activities and mechanisms that pass on data
- Resource Externalization- Features such as strings and graphics
- Content Providers- To share data between applications
Q: If an application is crashing frequently, how will you troubleshoot it?
A: If an Android application is crashing frequently, you can do the following:
- 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 OS system. There might be a chance that the application is not compatible with your OS. 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 comes into play. Check the application memory requirements if application is constantly crashing.
- App Data Usage: If an application is crashing frequently, 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.
Q: Explain DDMS in brief.
A: 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.
Q: Explain the difference between implicit and explicit intent.
A: 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.
Q: What is the AndroidManifest.xml file and why do you need this?
A: 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
- Contains the library file details linked to the application
Q: Explain different launch modes in Android
A: Below 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 same as the SingleTask launch mode but the system doesn’t launch any new activities in the same task. In a scenario where a new activity is launched, it is launched in a separate task.
Q: State the components which are necessary for a New Android Project
A: 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
Q: What is the importance of setting up permission in Android application development?
A: 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.
Q: Explain the term ANR in Android
A: 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 action for a considerable amount of time.
Q: What are the different data types supported by AIDL?
A: 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)
Q: Name the different data storage options available on the Android platform.
A: Android platform provides a variety of data storage options which can be used depending upon the need of the user. The storage options are:
- SharedPreference: This option stores data in XML files.
- SQLite: This stores structured data in the private database
- Internal Storage: This stores data in the device file system where it cannot be read by other applications
- External Storage: This stores data in the file system but it can be accessed to all apps in the device
So this was a list of the 25 important Android interview questions. Do you have any other question that we left unanswered? Let us know via comments below. Also, don’t forget to check our best Android tutorials recommended by the community.
People Might Be Interested In:
- Top Java Interview Questions & Answers in 2019
- JQuery Interview Questions in 2019
- Node.JS interview Questions in 2019
- Top Data Structure Interview Questions in 2019
- How to Become a Mobile App Developer?
- Top Bootstrap Interview Questions and Answers
- AWS Interview Questions & Answers
- Best Data Science Interview Questions & Answers
- Check here HCL Recruitment Process or Interview Questions & Answers