Questions. Sometimes with Answers.
The official places to get assistance with Android are the Android Google Groups. With respect to the SDK, there are three to consider following:
• Android Beginners,[34] a great place to ask entry-level questions
• Android Developers,[35] best suited for more-complicated questions or ones that delve into less-used portions of the SDK
• Android Discuss,[36] designed for free-form discussion of anything Android-related, not necessarily for programming questions and answers
You might also consider these:
• The Android tutorials and programming forums at anddev.org[37]
• The #android
IRC channel on freenode
Heading to the Source
The source code to Android is now available. Mostly this is for people looking to enhance, improve, or otherwise fuss with the insides of the Android operating system. But, it is possible that you will find the answers you seek in that code, particularly if you want to see how some built-in Android component does its thing.
The source code and related resources can be found at the Android Open Source Project Web site.[38] Here, you can
• Download[39] or browse[40] the source code
• File bug reports[41] against the operating system itself
• Submit patches[42] and learn about the process for how such patches get evaluated and approved
• Join a separate set of Google Groups[43] for Android platform development
Getting Your News Fix
Ed Burnette, a nice guy who happened to write his own Android book, is also the manager of Planet Android,[44] a feed aggregator for a number of Android-related blogs. Subscribing to the planet’s feed will let you monitor quite a few Android-related blog posts, though not exclusively related to programming.
Now to focus more on programming-related Android-referencing blog posts; you can search DZone for “android” and subscribe to a feed[45] based on that search.
You might also consider keeping tabs on those mentioning Android in Twitter messages, such as by using a Summize feed.[46]
APPENDIX
Introducing Android 1.5
Android is a continuously changing product. In fact, while this book was being put into production Google and the Open Handset Alliance released Android 1.5.
This was great for you, the developer, because Android 1.5 adds in quite a bit more to the product.
On the other hand, the timing left a bit to be desired in terms of getting this book into print. The vast majority of what you have read so far is accurate for Android 1.1 and Android 1.5. This Appendix will point out the exceptions — the places where Android changed and so the advice for Android 1.1 is no longer correct. Those changes are few in number, so the bulk of this Appendix is spent covering what is new and how, in basic terms, you can make use of the new material as a developer. This material is nowhere near the depth that you will find in the rest of the book, because Android 1.5 has been available for only a few weeks, and it will take months to write up everything that is new and exciting.
Getting Started, Virtually
Android 1.5 introduced the Android Virtual Device (AVD) system. This allows you to have multiple Android emulator images available, targeting different device profiles. Each image can vary in terms of Android API version (e.g., 1.1 versus 1.5), available add-ons (e.g., whether or not Google Maps are included), and hardware capabilities (e.g., does it have a touch screen?).
To create an AVD, you must first choose a “target”. Targets represent a combination of an API version and a set of available add-ons. You can find out the available targets for your environment by executing the following command:
android list targets
For example, at the time of this writing, three targets are available:
• 1, indicating the Android 1.1 SDK with no add-ons
• 2, indicating the Android 1.5 SDK with no add-ons
• 3, indicating the Android 1.5 SDK with the Google Maps add-on
Then, once you have a target in mind, to create the AVD itself, execute the following command:
android create avd -n ... -t ...
The first ellipsis indicates where you specify your own name for this AVD; the second ellipsis is where you fill in the target you wish from the available targets in your environment.
If you choose a target that represents a “standard system image” (i.e., no add-ons), you will be prompted to optionally configure the hardware profile. If you go through that process, you will be able to determine how much RAM is in your emulated device, whether or not it has a touchscreen, etc.
Creation, Yes. Myth, No.
With the new AVD system comes a new way of creating and updating projects for use with the Ant build