- If you don't have any background, consider learning programming using Scratch or Alice. It seems just suitable for kids but actually for everyone who want to think logically.
- If you have some basic background and want to have solid Java background (which I recommend) before moving to Android development, you should start with "Head First Java". They also have "Head First Android", but personally I don't like it so much.
- After you have a solid Java background, you can start learning Android using this free course on Udacity. It has 5 parts that cover everything that you need to make literally any app on Play Store.
- After you completed the above course, let's make your own project. You don't have to learn other courses or textbooks in order to make an app. You should try to make your own app using what you have learned with the above course. When you making your project, you will encounter real-life problems. By solving it (using Google, StackOverflow, XDA, other tech forums, ...), you will learn more than any course or textbook can help you.
I hope you will find this post helpful for you. If anyone has a question, please leave your question below