Core Java

Java is the primary language used for developing android apps. Core java concepts should be very clear before diving into android development. Concepts like method overriding, inheritance, interfaces, and anonymous inner classes are commonly used in android development.

XML

XML or extensible markup language is used mostly to define UI layouts for android apps. It is also used to define some drawable shapes and menu items. Basic knowledge of XML is sufficient. W3Schools has a good reference guide.

Design Patterns

Not really a prerequisite, but knowledge of design patterns goes a long way in developing complex solutions. You may want to familiarize yourself with some common design patterns.

4 Curated Resources

If you don’t know Java and would like to learn it fast so you can transition right into making apps, this will be a good video course for you. You learn all the Java fundamentals, and then build a few android apps after.

Java Tutorial

free, Online Course

This video course is perfect for beginners as it explains all the required concepts clearly. Free alternative but it only focuses on Java without Android Development.

XML Tutorial

free, Tutorial

Reference guide and tutorial to help you get familiar with the basics of XML

Familiarize yourself with some common design patterns used on software world.