aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorRaphael Moll <ralf@android.com>2010-06-23 15:58:16 -0700
committerRaphael Moll <ralf@android.com>2010-06-23 15:59:10 -0700
commite372136b72766107e9caf96aa9b3b388b9ed809a (patch)
treea72f149d20b81faa5f9a6f87153c0375c96ed54e /docs
parentffc4612c3d33a3629014a34111aaf42fa5b927ab (diff)
downloadsdk-e372136b72766107e9caf96aa9b3b388b9ed809a.zip
sdk-e372136b72766107e9caf96aa9b3b388b9ed809a.tar.gz
sdk-e372136b72766107e9caf96aa9b3b388b9ed809a.tar.bz2
Moving SDK howto docs from development.git into sdk.git.
Will update content in another CL. Change-Id: I7827d3f3cc6b8ba96822170949618dc75d879d28
Diffstat (limited to 'docs')
-rw-r--r--docs/howto_SDK_git_cygwin.txt189
-rw-r--r--docs/howto_build_SDK.txt305
-rw-r--r--docs/howto_use_cupcake_sdk.txt371
3 files changed, 865 insertions, 0 deletions
diff --git a/docs/howto_SDK_git_cygwin.txt b/docs/howto_SDK_git_cygwin.txt
new file mode 100644
index 0000000..622c592
--- /dev/null
+++ b/docs/howto_SDK_git_cygwin.txt
@@ -0,0 +1,189 @@
+Copyright (C) 2009 The Android Open Source Project
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+Subject: How to get the android source code using Cygwin and Git
+Date: 2009/04/27
+Updated: 2009/05/21
+Updated: 2010/03/30
+
+
+Table of content:
+ 1- Goals and Requirements
+ 2- Getting the code, the simple way
+ 3- SSH issues
+ 4- Advanced Tricks
+
+
+-------------------------
+1- Goals and Requirements
+-------------------------
+
+This document explains how to checkout the Android source from the git
+repositories under Windows.
+
+As stated in development/docs/howto_build_SDK.txt, one can't build the whole
+Android source code under Windows. You can only build the SDK tools for
+Windows.
+
+There are a number of caveats in checking out the code from Git under Windows.
+This document tries to explain them.
+
+First you will need to meet the following requirements:
+- You must have Cygwin installed. But wait! You CANNOT use the latest Cygwin 1.7.
+ Instead you MUST use the "legacy Cygwin 1.5" that you can find at this page:
+
+ http://cygwin.org/win-9x.html
+
+ Don't mind the page title, just grab setup-legacy.exe and it will works just fine
+ under XP or Vista.
+
+- You must install Cyginw using the "Unix / Binary" mode.
+ If you don't do that, git will fail to properly compute some SHA1 keys.
+
+- You need the "git" and "curl" packages to checkout the code.
+ If you plan to contribute, you might want to get "gitk" also.
+
+ Note: if you want to build the SDK, check the howto_build_SDK.txt file
+ for a list of extra required packages.
+ The short summary is that you need at least these:
+ autoconf, bison, curl, flex, gcc, g++, git, gnupg, make, mingw-zlib, python, unzip, zip
+ and you must avoid the "readline" package.
+
+
+-----------------------------------
+2- Getting the code, the simple way
+-----------------------------------
+
+Out of the box, "repo" and "git" will work just fine under Cygwin:
+
+ $ repo init -u git://android.git.kernel.org/platform/manifest.git
+ $ repo sync
+
+And you're done. You can build as explained in howto_build_SDK.txt and ignore
+the rest of this document.
+
+
+-------------
+3- SSH issues
+-------------
+
+If you maintain your own private repository using an SSH server, you might get
+some "mux/ssh" errors. In this case try this:
+
+ $ repo init -u ssh://my.private.ssh.repo/platform/manifest.git
+ $ export GIT_SSH=ssh
+ $ repo sync
+
+
+------------------
+4- Advanced Tricks
+------------------
+
+There is one remaining issue with the default repo/git options:
+
+If you plan on contributing, you will notice that even after a fresh "repo
+sync" some projects are marked as having modified files. This happens on the
+"bionic" and the "external/iptables" project. The issue is that they have files
+which have the same name yet differ only by their case-sensitivity. Since the
+Windows filesystem is not case-sensitive, this confuses Git.
+
+Solution: we can simply ignore these projects as they are not needed to build
+the Windows SDK.
+
+To do this you just need to create a file .repo/local_manifest.xml that
+provides a list of projects to ignore:
+
+<?xml version="1.0" encoding="UTF-8"?>
+<manifest>
+ <remove-project name="platform/external/iptables" />
+</manifest>
+
+The other thing we can do is tell git not to track the files that cause
+problems:
+
+ cd bionic
+ git update-index --assume-unchanged \
+ libc/kernel/common/linux/netfilter/xt_CONNMARK.h \
+ libc/kernel/common/linux/netfilter/xt_MARK.h \
+ libc/kernel/common/linux/netfilter_ipv6/ip6t_HL.h
+
+ cd external/tcpdump;
+ git update-index --assume-unchanged \
+ tests/print-X.new \
+ tests/print-XX.new
+
+
+Here's a script that takes care of all these details. It performs the repo
+init, creates the appropriate local_manifest.xml, does a repo sync as
+needed and tell git to ignore the offending files:
+
+------------
+#!/bin/bash
+
+set -e # fail on errors
+
+URL=ssh://android-git.corp.google.com:29418/platform/manifest.git
+BRANCH=donut
+if [ "$1" == "-b" ]; then shift; BRANCH=$1; shift; fi
+
+# repo init if there's no .repo directory
+if [[ ! -d .repo ]]; then
+ repo init -u $URL -b $BRANCH
+fi
+
+# create a local_manifest to exclude projects that cause problems under Windows
+# due to the case-insenstivines of the file system.
+L=.repo/local_manifest.xml
+if [[ ! -f $L ]]; then
+
+ cat > $L <<EOF
+<?xml version="1.0" encoding="UTF-8"?>
+<manifest>
+<remove-project name="platform/external/iptables" />
+</manifest>
+EOF
+fi
+
+# sync using the native ssh client if necessary
+[[ $URL != ${URL/ssh/} ]] && export GIT_SSH=ssh
+repo sync $@
+
+
+# These files cause trouble too, we need to ignore them
+(cd bionic;
+git update-index --assume-unchanged \
+ libc/kernel/common/linux/netfilter/xt_CONNMARK.h \
+ libc/kernel/common/linux/netfilter/xt_MARK.h \
+ libc/kernel/common/linux/netfilter_ipv6/ip6t_HL.h
+)
+(cd external/tcpdump;
+git update-index --assume-unchanged \
+ tests/print-X.new \
+ tests/print-XX.new
+)
+------------
+
+Simply extract this to a "my_sync.sh" file and try the following:
+ $ mkdir android_src
+ $ cd android_src
+ $ chmod +x mysync.sh
+ $ ./mysync.sh
+
+
+-end-
+
+
+
+
diff --git a/docs/howto_build_SDK.txt b/docs/howto_build_SDK.txt
new file mode 100644
index 0000000..e09440b
--- /dev/null
+++ b/docs/howto_build_SDK.txt
@@ -0,0 +1,305 @@
+Copyright (C) 2009 The Android Open Source Project
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+Subject: How to build an Android SDK & ADT Eclipse plugin.
+Date: 2009/03/27
+Updated: 2010/03/30
+
+
+Table of content:
+ 0- License
+ 1- Foreword
+ 2- Building an SDK for MacOS and Linux
+ 3- Building an SDK for Windows
+ 4- Building an ADT plugin for Eclipse
+ 5- Conclusion
+
+
+
+----------
+0- License
+----------
+
+ Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+
+-----------
+1- Foreword
+-----------
+
+This document explains how to build the Android SDK and the ADT Eclipse plugin.
+
+It is designed for advanced users which are proficient with command-line
+operations and know how to setup the pre-required software.
+
+Basically it's not trivial yet when done right it's not that complicated.
+
+
+
+--------------------------------------
+2- Building an SDK for MacOS and Linux
+--------------------------------------
+
+First, setup your development environment and get the Android source code from
+git as explained here:
+
+ http://source.android.com/download
+
+For example for the cupcake branch:
+
+ $ mkdir ~/my-android-git
+ $ cd ~/my-android-git
+ $ repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake
+ $ repo sync
+
+Then once you have all the source, simply build the SDK using:
+
+ $ cd ~/my-android-git
+ $ . build/envsetup.sh
+ $ lunch sdk-eng
+ $ make sdk
+
+This will take a while, maybe between 20 minutes and several hours depending on
+your machine. After a while you'll see this in the output:
+
+ Package SDK: out/host/darwin-x86/sdk/android-sdk_eng.<build-id>_mac-x86.zip
+
+Some options:
+
+- Depending on your machine you can tell 'make' to build more things in
+ parallel, e.g. if you have a dual core, use "make -j4 sdk" to build faster.
+
+- You can define "BUILD_NUMBER" to control the build identifier that gets
+ incorporated in the resulting archive. The default is to use your username.
+ One suggestion is to include the date, e.g.:
+
+ $ export BUILD_NUMBER=${USER}-`date +%Y%m%d-%H%M%S`
+
+ There are certain characters you should avoid in the build number, typically
+ everything that might confuse 'make' or your shell. So for example avoid
+ punctuation and characters like $ & : / \ < > , and .
+
+
+
+------------------------------
+3- Building an SDK for Windows
+------------------------------
+
+A- SDK pre-requisite
+--------------------
+
+First you need to build an SDK for MacOS and Linux. The Windows build works by
+updating an existing MacOS or Linux SDK zip file and replacing the unix
+binaries by Windows binaries.
+
+
+
+B- Cygwin pre-requisite & code checkout
+---------------------------------------
+
+You must have Cygwin installed. But wait! You CANNOT use the latest Cygwin 1.7.
+Instead you MUST use the "legacy Cygwin 1.5" that you can find at this page:
+
+ http://cygwin.org/win-9x.html
+
+Don't mind the page title, just grab setup-legacy.exe and it will works just fine
+under XP or Vista.
+
+
+Now configure it:
+- When installing Cygwin, set Default Text File Type to Unix/binary, not DOS/text.
+ This is really important, otherwise you will get errors when trying to
+ checkout code using git.
+- Packages that you must install or not:
+ - Required packages: autoconf, bison, curl, flex, gcc, g++, git, gnupg, make,
+ mingw-zlib, python, zip, unzip.
+ - Suggested extra packages: diffutils, emacs, openssh, rsync, vim, wget.
+ - Packages that must not be installed: readline.
+
+Once you installed Cygwin properly, checkout the code from git as you did
+for MacOS or Linux. Make sure to get the same branch, and if possible keep
+it as close to the other one as possible:
+
+ $ mkdir ~/my-android-git
+ $ cd ~/my-android-git
+ $ repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake
+ $ repo sync
+
+
+
+C- Building the Windows SDK
+---------------------------
+
+Now it's time to build that Windows SDK. You need:
+- The path to the MacOS or Linux SDK zip.
+- A directory where to place the final SDK. It will also hold some temporary
+ files.
+- The build number will be extracted from the SDK zip filename, but this will
+ only work if that build number has no underscores in it. It is suggested you
+ just define SDK_NUMBER (and not BUILD_NUMBER!) on the command line before
+ invoking the script.
+
+ Note that the "SDK number" is really a free identifier of your choice. It
+ doesn't need to be strictly a number. As always it is suggested you avoid
+ too much punctuation and special shell/make characters. Underscores cannot
+ be used.
+
+
+To summarize, the steps on the command line would be something like this:
+
+ $ mkdir ~/mysdk
+ $ export SDK_NUMBER=${USER}-`date +%Y%m%d-%H%M%S`
+ $ cd ~/my-android-git
+ $ development/build/tools/make_windows_sdk.sh /path/to/macos/or/linux/sdk.zip ~/mysdk
+
+This will take a while to build some Windows-specific binaries, including the
+emulator, unzip the previous zip, rename & replace things and rezip the final
+Windows SDK zip file. A typical build time should be around 5-10 minutes.
+
+
+
+-------------------------------------
+4- Building an ADT plugin for Eclipse
+-------------------------------------
+
+Requirements:
+- You can currently only build an ADT plugin for Eclipse under Linux.
+- You must have a working version of Eclipse 3.4 "ganymede" RCP installed.
+- You need X11 to run Eclipse at least once.
+- You need a lot of patience. The trick is to do the initial setup correctly
+ once, after it's a piece of cake.
+
+
+
+A- Pre-requisites
+-----------------
+
+Note for Ubuntu or Debian users: your apt repository probably only has Eclipse
+3.2 available and it's probably not suitable to build plugins in the first
+place. Forget that and install a working 3.4 manually as described below.
+
+- Visit http://www.eclipse.org/downloads/ to grab the
+ "Eclipse for RCP/Plug-in Developers (176 MB)" download for Linux.
+ 32-bit and 64-bit versions are available, depending on your Linux installation.
+
+ Note: we've always used a 32-bit one, so use the 64-bit one at your own risk.
+
+ Note: Eclipse comes in various editions. Do yourself a favor and just stick
+ to the RCP for building this plugin. For example the J2EE contains too many
+ useless features that will get in the way, and the "Java" version lacks some
+ plugins you need to build other plugins. Please just use the RCP one.
+
+- Unpack "eclipse-rcp-ganymede-SR2-linux-gtk.tar.gz" in the directory of
+ your choice, e.g.:
+
+ $ mkdir ~/eclipse-3.4
+ $ cd ~/eclipse-3.4
+ $ tar xvzf eclipse-rcp-ganymede-SR2-linux-gtk.tar.gz
+
+ This will create an "eclipse" directory in the current directory.
+
+- Set ECLIPSE_HOME to that "eclipse" directory:
+
+ $ export ECLIPSE_HOME=~/eclipse-3.4/eclipse
+
+ Note: it is important you set ECLIPSE_HOME before starting the build.
+ Otherwise the build process will try to download and install its own Eclipse
+ installation in /buildroot, which is probably limited to root.
+
+- Now, before you can build anything, it is important that you start Eclipse
+ *manually* once using the same user that you will use to build later. That's
+ because your Eclipse installation is not finished: Eclipse must be run at
+ least once to create some files in ~/.eclipse/. So run Eclipse now:
+
+ $ ~/eclipse-3.4/eclipse/eclipse &
+
+ Wait for it load, create a workspace when requested and then simply quit
+ using the File > Quit menu. That's it. You won't need to run it manually
+ again.
+
+
+
+B- Building ADT
+---------------
+
+Finally, you have Eclipse, it's installed and it created its own config files,
+so now you can build your ADT plugin. To do that you'll change directories to
+your git repository and invoke the build script by giving it a destination
+directory and an optional build number:
+
+ $ mkdir ~/mysdk
+ $ cd ~/my-android-git # <-- this is where you did your "repo sync"
+ $ development/tools/eclipse/scripts/build_server.sh ~/mysdk $USER
+
+The first argument is the destination directory. It must be absolute. Do not
+give a relative destination directory such as "../mysdk". This will make the
+Eclipse build fail with a cryptic message:
+
+ BUILD SUCCESSFUL
+ Total time: 1 minute 5 seconds
+ **** Package in ../mysdk
+ Error: Build failed to produce ../mysdk/android-eclipse
+ Aborting
+
+The second argument is the build "number". The example used "$USER" but it
+really is a free identifier of your choice. It cannot contain spaces nor
+periods (dashes are ok.) If the build number is missing, a build timestamp will
+be used instead in the filename.
+
+The build should take something like 5-10 minutes.
+
+
+When the build succeeds, you'll see something like this at the end of the
+output:
+
+ ZIP of Update site available at ~/mysdk/android-eclipse-v200903272328.zip
+or
+ ZIP of Update site available at ~/mysdk/android-eclipse-<buildnumber>.zip
+
+When you load the plugin in Eclipse, its feature and plugin name will look like
+"com.android.ide.eclipse.adt_0.9.0.v200903272328-<buildnumber>.jar". The
+internal plugin ID is always composed of the package, the build timestamp and
+then your own build identifier (a.k.a. the "build number"), if provided. This
+means successive builds with the same build identifier are incremental and
+Eclipse will know how to update to more recent ones.
+
+
+
+-------------
+5- Conclusion
+-------------
+
+This completes the howto guide on building your own SDK and ADT plugin.
+Feedback is welcome on the public Android Open Source forums:
+ http://source.android.com/discuss
+
+If you are upgrading from a pre-cupcake to a cupcake or later SDK please read
+the accompanying document "howto_use_cupcake_sdk.txt".
+
+-end-
+
diff --git a/docs/howto_use_cupcake_sdk.txt b/docs/howto_use_cupcake_sdk.txt
new file mode 100644
index 0000000..b131230
--- /dev/null
+++ b/docs/howto_use_cupcake_sdk.txt
@@ -0,0 +1,371 @@
+Subject: How to build use a Cupcake Android SDK & ADT Eclipse plugin.
+Date: 2009/03/27
+
+
+Table of content:
+ 0- License
+ 1- Foreword
+ 2- Installation steps
+ 3- For Eclipse users
+ 4- For Ant users
+ 5- Targets, AVDs, Emulator changes
+ 6- Conclusion
+
+
+
+----------
+0- License
+----------
+
+ Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+
+-----------
+1- Foreword
+-----------
+
+This explains how to use the "new" SDK provided starting with cupcake.
+The new SDK has as a different structure than the pre-cupcake ones.
+
+This means:
+- The new SDK does not work with older Eclipse plugins (ADT 0.8)
+- The old SDKs (1.0 and 1.1) do NOT work with this Eclipse plugin (ADT 0.9)
+
+
+
+----------------------
+2- Installation steps
+----------------------
+
+First you will need to grab the zip of the SDK for your platform or build it
+yourself. Please refer to the accompanying document "howto_build_SDK.txt" if
+needed.
+
+Unzip the SDK somewhere. We'll call that directory "SDK" in command-line
+examples.
+
+Grab the new ADT Eclipse plugin zip file or build it yourself. Keep it
+somewhere (no need to unzip).
+
+
+
+--------------------
+3- For Eclipse users
+--------------------
+
+
+Below we'll explain how you can upgrade your Eclipse install to the new plugin.
+If you already have a working Eclipse installation with a pre-0.9 ADT,
+another suggestion is to simply install a new copy of Eclipse and create a
+new empty workspace. This is just a precaution. The update process should
+be otherwise harmless.
+
+
+
+A- Setting up Eclipse
+---------------------
+
+- You must have Eclipse 3.3 or 3.4. Eclipse 3.2 is not longer supported.
+
+ There are many flavors, or "editions", of Eclipse. To develop, we'd recommend
+ the "Java" edition. The "RCP" one is totally suitable too. The J2EE one is
+ probably overkill.
+
+
+- If updating an existing Eclipse, use Help > Software Update and please
+ uninstall the two features of the previous ADT: the "editors" feature and the
+ ADT feature itself.
+
+ => If you don't you will get a conflict on editors when installing
+ the new one.
+
+- Using Help > Software Update, add a new "archived site", point it to the new
+ adt.zip (e.g. android-eclipse-<some-id>.zip), select the "Install" button at
+ the top right and restart eclipse as needed.
+
+- After it restarts, please use Window > Preferences > Android and select
+ the new SDK folder that you unzipped in paragraph 2.
+
+
+
+B- Updating older projects
+--------------------------
+
+If you have pre-0.9 projects in your Eclipse workspace, or if you import them
+from your code repository, these projects will fail to build at first.
+
+First right-click on the project and select "Properties":
+
+- In the properties, open the Android panel and select the platform to use.
+ The SDK comes with a 1.5 platform. Select it and close the properties panel.
+- Do a clean build.
+
+
+The new plugin creates a "gen" folder in your project where it puts the R.java
+and all automatically generated AIDL java files. If you get an error such as:
+
+ "The type R is already defined"
+
+that means you must check to see if your old R.java or your old auto-generated
+AIDL Java files are still present in the "src" folder. If yes, remove them.
+
+Note: this does not apply to your own hand-crafted parcelable AIDL java files.
+
+Note: if you want to reuse the project with an older Eclipse ADT install,
+ simply remove the "gen" folder from the build path of the project.
+
+
+C- New Wizards
+--------------
+
+The "New Android Project" wizard has been expanded to use the multi-platform
+capabilities of the new SDK.
+
+There is now a "New XML File" wizard that lets you create skeleton XML resource
+files for your Android projects. This makes it easier to create a new layout, a
+new strings file, etc.
+
+Both wizard are available via File > New... as well as new icons in the main
+icon bar. If you do not see the new icons, you may need to use Window > Reset
+Perspective on your Java perspective.
+
+
+Please see step 5 "Emulator changes" below for important details on how to run
+the emulator.
+
+
+
+----------------
+4- For Ant users
+----------------
+
+
+A- build.xml has changed
+------------------------
+
+You must re-create your build.xml file.
+
+First if you had customized your build.xml, make a copy of it:
+
+ $ cd my-project
+ $ cp build.xml build.xml.old
+
+
+Then use the new "android" tool to create a new build.xml:
+
+ $ SDK/tools/android update project --path /path/to/my-project
+
+or
+
+ $ cd my-project
+ $ SDK/tools/android update project --path .
+
+
+A "gen" folder will be created the first time you build and your R.java and
+your AIDL Java files will be generated in this "gen" folder. You MUST remove
+the old R.java and old auto-generated AIDL java files manually. (Note: this
+does not apply to your own hand-crafted parcelabe AIDL java files.)
+
+
+B- Where is activitycreator?
+----------------------------
+
+Note that the "activitycreator" tool has been replaced by the new "android"
+tool too. Example of how to create a new Ant project:
+
+ $ SDK/tools/android create project --path /path/to/my/project --name ProjectName
+ --package com.mycompany.myapp --activity MyActivityClass
+ --target 1 --mode activity
+
+
+Please see paragraph 5 below for important details on how to run the emulator
+and the meaning of that "--target 1" parameter.
+
+
+
+----------------------------------
+5- Targets, AVDs, Emulator changes
+----------------------------------
+
+This applies to BOTH Eclipse and Ant users.
+
+One major change with the emulator is that now you must pre-create an "Android
+Virtual Device" (a.k.a "AVD") before you run the emulator.
+
+
+
+A- What is an AVD and why do I need one?
+----------------------------------------
+
+What is an "AVD"? If you forget, just run:
+
+ $ SDK/tools/emulator -help-virtual-device
+
+ An Android Virtual Device (AVD) models a single virtual device running the
+ Android platform that has, at least, its own kernel, system image and data
+ partition.
+
+There is a lot more explanation given by the emulator. Please run the help
+command given above to read the rest.
+
+The bottom line is that you can create many emulator configurations, or "AVDs",
+each with their own system image and most important each with their own user
+data and SD card data. Then you tell Eclipse or the emulator which one to use
+to debug or run your applications.
+
+
+Note for Eclipse users: eventually there will be a user interface to do all of
+these operations. For right now, please use the command line interface.
+
+
+B- Listing targets and AVDs
+---------------------------
+
+There is a new tool called "android" in the SDK that lets you know which
+"target" and AVDs you can use.
+
+A target is a specific version of Android that you can use. By default the SDK
+comes with an "Android 1.5" target, codenamed "cupcake". In the future there
+will be more versions of Android to use, e.g. "Android 2.0" or specific add-ons
+provided by hardware manufacturers. When you want to run an emulator, you need
+to specify a given flavor of Android: this is the "target".
+
+
+To learn about available targets in your SDK, use this command:
+
+ $ SDK/tools/android list targets
+
+This will give you an output such as:
+
+ Available Android targets:
+ [1] Android 1.5
+ API level: 3
+ Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P
+
+Note the "[1]". Later you will need to reference this as "--target 1" on the
+command line.
+
+
+Similarly you can list the available AVDs:
+
+ $ SDK/tools/android list avds
+
+Which might output something as:
+
+ Available Android Virtual Devices:
+ Name: my_avd
+ Path: C:\Users\<username>\.android\avd\my_avd.avd
+ Target: Android 1.5 (API level 3)
+ Skin: 320x480
+ Sdcard: 16M
+
+
+
+C- Creating an AVD
+------------------
+
+To create a configuration:
+
+ $ SDK/tools/android create avd --name my_avd_name --target 1
+
+
+where "target 1" is the index of a target listed by "android list targets".
+
+The AVD name is purely an identifier used to refer to the AVD later.
+Since it is used as directory name, please avoid using shell or path specific
+characters.
+
+To learn the various options available when creating an AVD, simply type:
+
+ $ SDK/tools/android create avd
+
+The android tool will automatically print an explanation of required arguments.
+
+
+
+D- Invoking an AVD from the command-line
+----------------------------------------
+
+To use this AVD in the emulator from the command-line, type:
+
+ $ SDK/tools/emulator @my_avd_name
+
+
+For more options, please consult the emulator help:
+
+ $ SDK/tools/emulator -help-virtual-device
+
+
+
+E- Invoking an AVD from Eclipse
+-------------------------------
+
+By default Android projects in Eclipse have an "automatic target" mode.
+In this mode, when a project is deployed in debug or run, it checks:
+- If there's one running device or emulator, this is used for deployment.
+- If there's more than one running device or emulator, a "device chooser" is
+ shown to let the user select which one to use.
+- If there are no running devices or emulators, ADT looks at available AVDs.
+ If one matches the project configuration (e.g. same API level), it is
+ automatically used.
+
+Alternatively you can edit the "launch configuration" on your Android project
+in Eclipse by selecting the menu Run > Run Configurations. In the "target" tab
+of the configuration, you can choose:
+
+- Manual or automatic targetting mode.
+
+ - Manual means to always present the device chooser.
+ - Automatic is the behavior explained above.
+
+- In automatic mode, which AVD is preferred. If none is selected, the first
+ suitable is used.
+
+
+F- AVD concurrency
+------------------
+
+You can no longer run several emulators at the same time on the same
+configuration.
+
+Before this used to put the second or more emulators in a transient read-only
+mode that would not save user data.
+
+Now you just need to create as many AVDs as you want to run emulators.
+
+For example if you are working on a client/server application for Android, you
+could create a "client" AVD and a "server" AVD then run them both at once. The
+emulator window will show you the AVD name so that you know which one is which.
+
+Example:
+
+ $ SDK/tools/android create avd --name client --target 1 --sdcard 16M --skin HVGA
+ $ SDK/tools/android create avd --name server --target 1 --sdcard 32M --skin HVGA-P
+ $ SDK/tools/emulator @server &
+ $ SDK/tools/emulator @client &
+
+
+
+-------------
+6- Conclusion
+-------------
+
+This completes the howto guide on how to use the new Cupcake SDK.
+Feedback is welcome on the public Android Open Source forums:
+ http://source.android.com/discuss
+
+-end-
+