We (Sayed, Dave, and I) have spent over 4 years exploring and writing about Android. We have published 5 books in that space on Android and a numerous research notes.
Jitesh, A good friend of mine, has asked me a question a while ago: In what order should I learn Android? When do I know I know Android?
As if that is not an incentive enough, the ever enterprising Paul Bittutsky from Stanton prep borrowed my book to learn Android. Now I am compelled to give a road map.
This is a feeble attempt in answering that question. You can use this as a roadmap or a guidepost for your learning of android.
If you have suggestions do send them to me and I will update this document!
Introductory Track - Start Here
Install Java
Install Eclipse
Install ADT
Create Hello World
Compile it
Create an ADT
Run the app in ADT
sign the app
email the app
Run it on a device
Although someone can teach you this, you can slog it out from online directions. It is a bit involved and give 50 to 100 hours to do this. On other hand if someone teaches you in person this is really effective.
Introductory Track - Anatomy of an App where you will know
Structure of the apk
Manifest file
Layout file
activity
controls
logic
resources
logging
debugging
This is best accomplished by writing a very simple single page app like a calculator and exercising each of these topics.
Essential Track - UI
Essential Controls - Text, Button, etc.
List Views
Scroll view
..More controls
Layouts
Styles
Menus and Action bar
Basic dialogs
Field Validation
Dealing with configuration changes
Fragments
Fragbment Dialogs
Drag and Drop
Animation
Essential Track - Persistence
Preferences
Internal files
external files
JSON
SQL
Basic Content Providers
Cloud storage
Essential Track - Services
Simple services
Handlers
Async task
Progress dialogs
rest/http services
Middle of the road - Strengthening Track
Broadcast Receivers
Alarm Manager
Notification Managers
Process model
Long running services
Media: capturing/playing audio/video
Loaders
Text to speech
Sensors
Multitouch
Gestures
Incorporating Search
Putting the app up in the market
Programming for multiple devices
Enabling for ads
Advanced Track
Simple Widgets
List Widgets
Content Providers
Compatibility
Live folders
Google Cloud
Component and Process model
Telephony/SMS
Maps
Advanced debugging for memory/battery usage
Custom views
Custom controls
Custom Layouts
A catalog of Killer custom controls
Differentiating Topics
Android Studio
Testing tools like Monkey runner, Robotium
Other emulators: Genymotion
Cloud storage
Push notifications
OpenGL
Game libraries
Game Tools like Unity
Thirdy party libraries
third party components
webkit
Jquery Mobile
Phone gap
Enterprise security
etc..