This is a guide that I will be adding on to over time, with notes, links, guides, etc to help new programmers in Android / Java get on their feet and make something useful. Any suggestions or questions are of course gladly accepted and (if need be) answered.
First off, about me:
I do not claim to be an "expert" in Android, but I have worked with it quite a bit. I am currently the lead coder for Android Creative Syndicate, author of the ACS Updater (free app for flashing custom ROMs, Kernels, Themes, etc, etc over the air [OTA]). I emphasize free because, well, I don't want CodeCall to become a market for paid apps, or anything like that. Hence why I'm not even providing links to my app. I love CodeCall too much to want to see it become anything of that sort - I want to keep this place clean .
I came from a C# background, have been writing in that for years. Always wanted to look into Java, but never had a reason. Until I picked up an Android phone... Now I dream in Java lol.
Ok, so let's get on with my thoughts / direction.
First off, you may as well go ahead and bookmark Android Developers You'll end up scouring there a lot. Also: Android Source Code / Java Documentation Android Source Code and Documentation is a very nice resource I have used many times. It has the source code for the native Android classes, and by using that, you can write your own implementations of various classes. For example, sliders natively are horizontal only. But by extending the class, you can create a vertical one.
Important things to learn before you go off writing some massive app:
The Android Lifecycle -
Very important to learn. If you don't properly end your app, and your app has maybe a background thread that loops (For example, I have one app that, while running, continuously displays the current CPU frequency), and you don't properly handle the onPause, onResume, onDestroy, etc functions, then you could end up with an app that while appearing to be closed, isn't. I wrote that app without ever reading the Android Lifecycle documentation. Because I didn't handle it (I needed to stop the thread during the onPause phase), I ended up with an app that was continuously polling the CPU speed in the background, even though there were no signs of it being open. Talk about battery drain...
Read more on the lifecycle here: http://developer.and...ml<br /><br />Also, you may want to start off learning about the layout xml files. These can be tricky, and I wouldn't rely on the GUI in Eclipse for this, or DroidDraw. While DroidDraw is GREAT for learning, it's not always great for copy and paste into Eclipse. You'll also find (this happened to me once, completely messed up my layout) you want to declare your sdk BEFORE designing your layout. You need to add this into your AndroidManifest.xml:
<uses-sdk android:minSdkVersion="8" />Of course, change the number to fit your environment.
On that note, make sure your uses-premission and uses-sdk tags are OUTSIDE of the application tag in the manifest, otherwise... they won't work properly.
I'll add more as I think of it, but hopefully this can help you get started. As usual, check out tutorials and sample applications:
DroidDraw : Graphical User Interface Editor for Android Cell Phone Development and Programming
Tutorials from Android Developer
Tutorials from CodeCall!