Что для начала из теории надо бы: ООП (интерфейсы, абстрактные классы, области видимости, полиморфизм, ...), паттерны (можно для начала хотябы этот маленький пост
habrahabr.ru/post/136766/)
Владеете теорией - вперед на амбразуры. Для начала предлагаю ознакомится со стандартной библиотекой и по работать немного с ней. Хотя бы примерно увидеть как можно и когда использовать различные структуры данных.
Затем написать пару прог на Java SE (настольные приложения) c использованием Swing, т.к. в дроиде все равно будут различные Layout'ы и надо примерно представить что это такое и как они порой удобны за счет динамического расставления елементов.
Ознакомиться с XML что это такое и с чем его едят. Для описания интерфейса понадобиться.
Желательно ознакомится с системами сборки Gradle, Ant, желательно в таком порядке, Gradle уже наступает на пятки Ant.
А затем уже можно начинать писать под дроид, благо есть
startandroid.ru/ru