This directory contains samples that are distributed with the Android SDK.

New top level directories (categories) are not automatically published. If
you are adding a new category, you will need to add it to
develpment/build/sdk.atree.

Note: In the future, the samples will be built using a template system, which
will automatically import the "common" directory as needed. Until then, if
you need access to the "common" directory, you will need to have it copied
during the SDK build process by modifying development/build/sdk.atree.
