Изучить С перед изучением Java - неплохая идея, кстати. Тогда точно не возникнет проблем с пониманием того, почему в переменных хранятся не объекты, а ссылки на них, как работает сборщик мусора, что такое потоки и т.д.
По Си хорошие книги для начинающих -
Head First C издательства O'Reilly и отечественная
"Изучаем Си" А. Крупника (она совсем "детская", но материал подан очень хорошо).
По Java -
Head First Java из той же серии. Там рассмотрена, правда, Java как таковая, не в контексте Андроида. Но прежде чем изучать конкретную платформу нужно изучить язык, верно? К тому же, Java в том объеме, который требуется для создания приложений под Android совсем не сложна, там нет такого ужаса как в каких-нибудь EJB.
Ну а когда посчитаете, что поняли Джаву, можно приступить и
непосредственно к Андроиду.