1. Java and OOPS concepts.
2. Data Structures.
3. Good understanding of Android Applications & Frameworks.
4. Software design practices for Android (Dependency Injection, MVP, MVVM)
5. Good understanding of Tools (Android Studio, ADB, Gradle, Emulator, Profiler etc.)
6. Experience in developing UI for Apps, in various screen sizes.
7. Understanding of Agile / Kanban project management technologies.
8. Exposure to TDD through JUnit, Robolectric & Instrumentation Tests.
9. Basics of Linux Kernel, C, C++ (Native code), JNI (Java Native Interface) is a plus.
10. Knowledge of version control tools like GIT / SVN.