Want to know how to hire best Android developers?
Read our full guide below
Android is currently the dominant mobile platform, with an 87.5% market share and some 1.4 billion users. No wonder then that demand for Android developers is enormous, making the task of locating the best talent a real challenge.
Android is a rich and growing platform built on top of Linux using Java and XML. There’s a wide range of skills an Android developer has to master, including UI, graphics, databases, location services, media playback, debugging tools, and much, much more.
Such complex functionalities may seem quite hard to cover during a single interview. So where should you start if you want to interview and hire Android developers?
We’ve collaborated with Volodymyr Logachov, an Android developer working for one of our clients, to create this summary of Android and Java interview questions and tasks for both junior and senior developer positions. This will help you evaluate the depth of a candidate’s knowledge of the Android smartphone platform.
Start with Java
As Java is the base of what Android is built upon, it makes sense to start your technical interview by checking the candidate’s basic knowledge of this programming language, and leave the specifics of Android development for later.
Here are a few sample questions and tasks that anyone who claims to be an Android developer should be able to tackle:
- How many primitive data types are there in Java?
- Please write an if...else statement.
- What Java collections do you know?
- What are the differences between lists, maps, and hashes?
- What methods does the base Object class have, and what are they used for?
- What experience do you have with multithreading?
If the candidate doesn’t know how many primitive types there are in Java, or can’t write an if...else statement, you can safely say goodbye to them right now — they obviously don’t know enough to fill even a junior position.
Moving on to Android Development
Once you’ve made sure the basic Java knowledge is in place, it will be time to transition to Android-specific subjects.
One of the most basic questions is: “What is Context, and what is it used for?” Once this is answered, invite the candidate to talk about activities, the activity lifecycle, fragments, and services.
After, ask them where application data is stored, and when they mention databases among other storage options, move on to discuss SQLite and the Cursor.
Don’t forget to include questions about thread types (UI and background). For instance, you could ask the candidate, “How would you launch a resource-intensive process?” A good answer would sound something like this: “I’d create a separate thread, run this task in the background, and then process the result on the main thread.”
You could also ask the Android developer you’re interviewing whether it’s possible to make an HTTP request on the main thread. If they happen to say yes, they probably don’t have any experience with this subject.
Android Developer Interview Questions for Experienced Candidates
If you’re looking for an Android developer with more advanced skills, make sure they know how to create a custom view, and don’t skip the questions related to architecture — MVP, MVC, and MVVM. Not everyone will have experience with the latter, but it’s still one of the basic architecture patterns, so any strong Android developer should at least be familiar with it. You may also want to ask them about the Dependency Injection pattern too.
If you’re planning to test your code, it’s a good idea to find out whether the candidate you’re interviewing has experience writing tests. This isn’t a universal requirement per se — but it’s definitely a good skill to have.
Evaluating Code Quality
To see the candidate’s Android development skills in action, you could either take a look at their GitHub contributions, give them a test task to complete, or both.
The most common test tasks stick to the following pattern: you take a piece of backend code, from which you need to send several requests, handle responses, and finally display processed data. You’ll probably also want to include recommendations in terms of which database or framework should be used, and add simple screen mockups.
Another standard task example would be to ask the candidate to download a list, display it, filter it, and then show the description on a separate screen.
If you’re planning to work with specific libraries, frameworks, or databases, consider asking the candidate to use them in the interview. You may, however, want to take a different approach and limit the candidate’s use of libraries, instead asking them to write all code from scratch. This will allow you to check whether they’re capable of solving problems independently, and aren’t simply reliant on readymade resources.
Remember: the most effective test tasks are always based on the project you’re hiring for, so make sure you tailor your evaluation accordingly.
We hope you found our sample Android developer interview questions useful, and that they’ll aid you next time you need to hire Android developers. However, the most important thing to understand is what kind of experience the project or position you’re hiring for will require.
If your application will utilize REST, Google Maps, Google Places, or any other API, you’ll definitely want to add a few questions about these. And if a candidate hasn’t worked with a certain technology, ask them to estimate how much time they’ll need to get the hang of it. This way, you’ll get the chance to find out how they evaluate their learning potential.
Our final recommendation is that you avoid candidates who, instead of giving a straightforward answer to a specific technical question, tell you that there’s no need to remember everything when Google is just a click away.
While this is a perfectly reasonable approach to solving uncommon problems, it becomes completely unacceptable when it comes to commonplace tasks that occur in most applications. A good Android developer will openly admit their lack of knowledge, and display their readiness to work out the things they don’t know in the shortest possible timeframe.