Demand for mobile application developers, especially Android ,is very high right now. I have taken a lot of interviews over the last two years and had extensive discussions about the requirements and have given a few as well.I would like to share what I have learned in my various encounters as to the expectations for a mid to senior level developer .
1) Have your basics clear :You must have the android basics in your fingertips , which includes the android components, activity life cycle , fragments , databases ,activity navigation etc. There should be no gap in the basics.
2) Alternative ways/workaround :A lot of interviewers like to put constraint while asking questions to gauge the knowledge of the candidate , one should be aware of multiple ways of doing the same thing as per the situation. For eg If we are not allowed to use asynctask then is there any other way to do background work without explicitly using the java thread class ?
3) UI/UX :This is the favorite of most interviewers , android has extensive guidelines for UI/UX for different screen sizes and how to deal with them. Many questions are asked from this area.
4) Networking and DB : Now almost all applications are data driven and have a web back end which is used for some kind of data sync. For a senior developer , all aspects of network I/O needs to be understood . At this level , designing of applications that will scale is an important requirement and a few design questions can be expected. Relational database concepts and ability to design them and write basic queries are a must.
5) The why and how : For a mature developer , it is expected that not only He/She will know which component to use , but also be able to answer why and how the component works. For example , How does Handlers work internally or can multiple asynctasks run in parallel?. Pros and Cons of using a particular component must be understood.
6)Java concepts: It is very important to brush up the Java basics , threading ,Inheritance , Polymorphism etc . (I messed up once big time while giving an interview)
7)Design pattern: This is a much abused area , and knowledge of this is required to show you are “senior” . If I only had a dollar for the number of times I have been asked to enumerate “Difference between Singleton class and Singleton pattern”.
8) Algorithm: It always good to have basic understanding and application of various searching and sorting algorithms. In Indian context direct application of algorithm may not be asked but for overseas interviews it forms the crux.
9) Experience: Key challenges that you have faced in your career and how did you overcome them. This will include both technical and people side of development. Knowledge of agile process is very desirable.
10) Other frameworks: It is always an added advantage especially in enterprise app development if the developer has knowledge of hybrid frameworks like Cordova , testing frameworks like Robotium etc.
11)Assignment : These days assignments are getting increasingly popular as a yardstick to measure the candidate , if you are given an assignment please make sure you are thorough with the code that you are submitting , many times I have seen interviewees submitting their assignment without actually understanding the code, rejection is guaranteed if you cannot explain your code.
One last important point is that if you are going for a walk in try your best to make the interviews early as the chances deteriorate as the panel gets tired over time. Best of Luck.