I am currently starting to create an app for a small charity company. But I'm not entirely sure how to properly learn how to code for the Android OS. I have searched online for tutorials, but most stop at the same stage and only show you how to launch the "helloWorld" app.

My question is this: 

1) Will using solely XML be sufficient to code an app? Does it require working in partnership with Java?

2) Does anyone know of any books, recommended books of course, that break everything down for you step-by-step?