Q:

How to learn android development efficiently? 

It's been around 1 month that I have started to work on Android to create an app, I understood the basics (Views, widgets, intent ...) and I use a lot developer.android.com to ancknowledge new things but when I try to do complex things, such as creating a camera preview inside my app, I feel like I am Ctrl+C and Ctrl+V the code that is provided without really understanding it.  And most of the time my app crashes. 
So, do you have any tips for me to make things easier ?  

A:

Decide what do you want to do.  You said that you are building an app.  That is a good thing.  Many people do not realize that they cannot get to the finish line when they do not know where it is. 
Find a good source of online video tutorials.  Video tutorials are far more superior to written books if you have 2+ screens on your computer because you can watch the video and write the code at the same time. ( I personaly like pluralsight if you are a student microsoft offers 6 months for free)
Choose 2-4 tutorials and finish them. 
Start writing your own app. 
If you do not know how to do something.  Try to find it in the source code that you wrote in those tutorials. 
If are not be able to find it there try to google the solution or ask some questions on stack overflow.  People will most likely just give it a negative rating but ... you know who cares about them.  
Repeat point 4,5 and 6. 
If you have a bad feeling about quality of your source code watch more tutorials so that you can see how would other people solve your problems.