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 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.
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.