If you don’t have an android device, be prepared for the emulator to be extremely slow especially during startup/shutdown. Be sure to mark your emulator as “Snapshot” (accessible from the ADB/AVD SDK Manager-> Start button). Also, don’t connect your device whilst the emulator is running. Adb gets confused.

I had one occurrence where the drawable resources to my project failed to get copied over properly to the device and I spent 20 minutes trying to figure out what I’d changed in my code. Turning out the emulator was running in the background. I did shut the emulator off and did an adb uninstall “myApp” and then redeployed to fix it.

Android works on Intents, Activities and Services. If you want to access the hardware, e.g. the Camera, you’ll need to fire off an Intent. Here’s an example of launching an Intent to get a Bitmap back from the camera:

You’ll also need to mark your application with the right permissions in the AndroidManifest.xml file. Here’s a good reference to all the Available Permissions.

Use Drawables and Styles in your layout from Day 1. Use RelativeLayout from Day 1 also and attributes such as “layout_alignRight”, “layout_alignTop” as necessary to get the achieved UI. Rather than set a bunch of things invisible/visible, use a Viewgroup such as a nested Relative Layout. Yes you can do Forms this way and if you have a lot of labels/fields to hide/show based on other fields this can be really useful.

Don’t forget you can define gradients and shapes in Drawables also. This saved me a bunch of time trying to create graphics.

In general wrap your root Layout in a ScrollView. This will ensure your screen is usable when you rotate the device.

To Launch a new screen that you need to get something back from (like a Modal dialog) use “StartActivityForResult”, otherwise just use “StartActivity”