It is a well-established fact that Android devices are penetrating the smartphone market at an exponential rate. According to IDC, Android devices will occupy 87% of the smartphone market share by 2024. A significant chunk of these smartphone users will be using the equipment to connect with the world and get online.
With the rapid proliferation of Android-based smartphones and tablets, businesses realize the importance of developing native Android apps to increase their audience. As a result, there is a rise in the demand to hire angularjs developer and Android developers. These positions are proving to be instrumental in propelling the growth of an organization.
However, merely hiring the first Android developer that walks through the door is not going to cut it. You need to recruit the best android developers to facilitate the growth of your company.
Here are a few interview questions that you can ask candidates to screen in the fittest ones!
Contents
- 1 What is an Application?
- 2 What Do You Know About ARMv7?
- 3 Briefly Explain the Android Framework.
- 4 What are the Components of the Android Application Architecture?
- 5 Define the Build Process in the Android Environment.
- 6 Why Can We Not Run a Bytecode in Android?
- 7 What do You Know About the Different Launch Modes in Android?
- 8 What Happens to an Activity When an App User Rotates the Screen?
- 9 Final Thoughts
What is an Application?
Application is a base class within an Android app, which contains all the other categories and components, such as services and activities. Since it is the foundational unit of your program, developers need to instantiate the Application class or its subclass before any other class during package or application creation.
What Do You Know About ARMv7?
Android supports three main CPU architectures that belong to the ARM series. ARMv7 is the commonest of them all, as it is optimized for performance and battery consumption.
ARM64 possesses 64-bit processing capabilities, which makes it a computing beast. ARMx86 is the most robust architecture in terms of computational capacity.
Briefly Explain the Android Framework.
The Android framework rests on a set of APIs that Android developers invoke to write the code. The API contains all the classes and methods that are required to write the code. It includes a set of tools that are required to create features like text fields, buttons, image panes, etc.
Further, the framework also contains Activities, through which the user interacts with the Android app. Services include the set of programs that operate in the background and provide development packages.
What are the Components of the Android Application Architecture?
Android application architectures contain the following:
- Services, which perform the background functionalities.
- Intent, which interconnects activities with the data transfer mechanism.
- Resource Externalization, which is useful for strings and graphics.
- Notifications, which include notifications, dialog boxes, light, sound, icon, and the tray.
- Content Providers, which facilitates data transfer between applications.
Define the Build Process in the Android Environment.
The build process in Android can be broken down into three steps:
- First, the developer compiles the resources folder (/res) with the Android asset packaging tool (AAPT). All the data is collected into a single class file named R.java. This class contains all the constants.
- Next, the Java source code is compiled into a .class file using the javac’s primary Java compiler. The class files are then converted to Dalvik bytecodes with the help of the dx tool, which is a part of the SDK toolset. The final output is class.dex.
- Finally, the Android APK builder accepts all the inputs and constructs the Android Packaging Key (APK) file.
Why Can We Not Run a Bytecode in Android?
Android runs on the Dalvik Virtual Machine (DVM). On the other hand, Bytecodes run on the Java Virtual Machine (JVM). Hence, the Bytecode cannot run directly on the DVM.
Tell Us the Difference Between onStart() and onCreate().
We use onStart() when the Activity is visible to the user. Typically, this situation arises after the execution of onCreate() or onRestart().
On the other hand, onCreate() is used only once during the Activity lifestyle. Such an instance occurs either when the application starts or when an Activity has been destroyed and recreated.
What do You Know About the Different Launch Modes in Android?
There are four main launch modes, these are:
- Standard
- SingleTop
- SingleTask, and
- SingleInstance
Standard
This triggers the creation of a new instance of an activity in the task from where it is started. The developer can create multiple instances of action and add multiple instances to the same or different tasks.
SingleTop
This launch mode is similar to Standard, except that if the existing instance of the activity is added to the top of the stack, then the launch will not create a new case but send the intent to the current instance present in the activity.
SingleTask
In this launch mode, a new task will be mandatorily created, and a new instance will be pushed to the task as its root. Hence, if the activity exists in the task, the intent shall get redirected to onNewIntent(), or else an entirely new instance will be generated. Regardless, only one instance of activity exists at a single time.
SingleInstance
The SingleInstance launch mode is similar to SingleTask, expect the system does not launch any other activities in the same task as the current activity. Hence, if developers wish to start new operations, they will have to achieve it as a separate task.
What Happens to an Activity When an App User Rotates the Screen?
When an app user rotates the app screen, the prevailing instance of an activity is destroyed, and in its place, a new instance of Activity is created, which aligns with the new orientation. So when the screen is rotated, it triggers the onRestart() method. Then, a new lifecycle method is initiated with a similar flow as the initial activity creation.
Final Thoughts
The above interview questions will allow you to assess the suitability of a candidate for the existing profile. Feel free to extract more questions from the answers to evaluate the candidate during the interview.
Someone who can think on their toes displays their problem-solving abilities, which make them a better fit at your organization than someone who has only mugged up the theoretical aspect of Android development.
In addition to the technical know-how, also observe the candidate’s soft skills. You never know, it may help you find a diamond in the rough! Your proper research will pay off when it comes to a proper hire.