| The Android Open Source Project | 9066cfe | 2009-03-03 19:31:44 -0800 | [diff] [blame] | 1 | page.title=Developing on a Device |
| 2 | @jd:body |
| 3 | |
| 4 | <div id="qv-wrapper"> |
| 5 | <div id="qv"> |
| 6 | <h2>In this document</h2> |
| 7 | <ol> |
| Scott Main | ad68fdd | 2009-11-05 18:53:59 -0800 | [diff] [blame] | 8 | <li><a href="#setting-up">Setting up a Device for Development</a> |
| 9 | <ol> |
| 10 | <li><a href="#VendorIds">USB Vendor IDs</a></li> |
| 11 | </ol> |
| 12 | </li> |
| 13 | </ol> |
| 14 | <h2>See also</h2> |
| 15 | <ol> |
| 16 | <li><a |
| 17 | href="{@docRoot}sdk/win-usb.html">USB Driver for Windows</a></li> |
| The Android Open Source Project | 9066cfe | 2009-03-03 19:31:44 -0800 | [diff] [blame] | 18 | </ol> |
| 19 | </div> |
| 20 | </div> |
| 21 | |
| Scott Main | 0197999 | 2010-04-05 17:42:17 -0700 | [diff] [blame] | 22 | <p>When building a mobile application, it's important that you always test your application on a |
| 23 | real device before releasing it to users. This page describes how to set up your development |
| 24 | environment and Android-powered device for testing and debugging on the device.</p> |
| The Android Open Source Project | 9066cfe | 2009-03-03 19:31:44 -0800 | [diff] [blame] | 25 | |
| Scott Main | 0197999 | 2010-04-05 17:42:17 -0700 | [diff] [blame] | 26 | <p>You can use any Android-powered device as an environment for running, |
| 27 | debugging, and testing your applications. The tools included in the SDK make it easy to install and |
| 28 | run your application on the device each time you compile. You can install your application on the |
| Robert Ly | ee2dacd1 | 2010-12-22 09:46:12 -0800 | [diff] [blame^] | 29 | device directly from Eclipse or from the command line with ADB. If |
| Scott Main | 0197999 | 2010-04-05 17:42:17 -0700 | [diff] [blame] | 30 | you don't yet have a device, check with the service providers in your area to determine which |
| 31 | Android-powered devices are available.</p> |
| The Android Open Source Project | 9066cfe | 2009-03-03 19:31:44 -0800 | [diff] [blame] | 32 | |
| Scott Main | 0197999 | 2010-04-05 17:42:17 -0700 | [diff] [blame] | 33 | <p>If you want a SIM-unlocked phone, then you might consider either an Android Dev Phone or the |
| 34 | Google Nexus One. Both are SIM-unlocked so that you can use them on any GSM network using a SIM |
| 35 | card. The Android Dev Phones also feature an unlocked bootloader so you can install custom system |
| 36 | images (great for developing and installing custom versions of the Android platform). To purchase a |
| 37 | Nexus One, visit <a href="http://www.google.com/phone">google.com/phone</a>. To purchase an Android |
| 38 | Dev Phone, see the <a href="http://market.android.com/publish">Android Market</a> site |
| 39 | (requires a developer account).</p> |
| The Android Open Source Project | 9066cfe | 2009-03-03 19:31:44 -0800 | [diff] [blame] | 40 | |
| Scott Main | 0197999 | 2010-04-05 17:42:17 -0700 | [diff] [blame] | 41 | <p class="note"><strong>Note:</strong> When developing on a device, keep in mind that you should |
| 42 | still use the <a |
| 43 | href="{@docRoot}guide/developing/tools/emulator.html">Android emulator</a> to test your application |
| 44 | on configurations that are not equivalent to those of your real device. Although the emulator |
| 45 | does not allow you to test every device feature (such as the accelerometer), it does |
| 46 | allow you to verify that your application functions properly on different versions of the Android |
| 47 | platform, in different screen sizes and orientations, and more.</p> |
| The Android Open Source Project | 9066cfe | 2009-03-03 19:31:44 -0800 | [diff] [blame] | 48 | |
| Scott Main | 7991745 | 2009-08-26 11:56:57 -0700 | [diff] [blame] | 49 | |
| The Android Open Source Project | 9066cfe | 2009-03-03 19:31:44 -0800 | [diff] [blame] | 50 | <h2 id="setting-up">Setting up a Device for Development</h2> |
| 51 | |
| Scott Main | 7991745 | 2009-08-26 11:56:57 -0700 | [diff] [blame] | 52 | <p>With an Android-powered device, you can develop and debug your Android applications just as you |
| Scott Main | 0197999 | 2010-04-05 17:42:17 -0700 | [diff] [blame] | 53 | would on the emulator. Before you can start, there are just a few things to do:</p> |
| 54 | |
| The Android Open Source Project | 9066cfe | 2009-03-03 19:31:44 -0800 | [diff] [blame] | 55 | <ol> |
| 56 | <li>Declare your application as "debuggable" in your Android Manifest. |
| 57 | <p>In Eclipse, you can do this from the <b>Application</b> tab when viewing the Manifest |
| 58 | (on the right side, set <b>Debuggable</b> to <em>true</em>). Otherwise, in the <code>AndroidManifest.xml</code> |
| The Android Open Source Project | 9066cfe | 2009-03-03 19:31:44 -0800 | [diff] [blame] | 59 | file, add <code>android:debuggable="true"</code> to the <code><application></code> element.</p> |
| 60 | </li> |
| 61 | <li>Turn on "USB Debugging" on your device. |
| 62 | <p>On the device, go to the home screen, press <b>MENU</b>, select <b>Applications</b> > <b>Development</b>, |
| 63 | then enable <b>USB debugging</b>.</p> |
| The Android Open Source Project | 9066cfe | 2009-03-03 19:31:44 -0800 | [diff] [blame] | 64 | </li> |
| 65 | <li>Setup your system to detect your device. |
| 66 | <ul> |
| Scott Main | ad68fdd | 2009-11-05 18:53:59 -0800 | [diff] [blame] | 67 | <li>If you're developing on Windows, you need to install a USB driver |
| 68 | for adb. See the <a href="{@docRoot}sdk/win-usb.html">Windows USB |
| 69 | Driver</a> documentation.</li> |
| The Android Open Source Project | 9066cfe | 2009-03-03 19:31:44 -0800 | [diff] [blame] | 70 | <li>If you're developing on Mac OS X, it just works. Skip this step.</li> |
| Scott Main | ad68fdd | 2009-11-05 18:53:59 -0800 | [diff] [blame] | 71 | <li>If you're developing on Ubuntu Linux, you need to add a rules file |
| 72 | that contains a USB configuration for each type of device you want to use for |
| 73 | development. Each device manufacturer uses a different vendor ID. The |
| 74 | example rules files below show how to add an entry for a single vendor ID |
| 75 | (the HTC vendor ID). In order to support more devices, you will need additional |
| 76 | lines of the same format that provide a different value for the |
| 77 | <code>SYSFS{idVendor}</code> property. For other IDs, see the table of <a |
| 78 | href="#VendorIds">USB Vendor IDs</a>, below. |
| The Android Open Source Project | 9066cfe | 2009-03-03 19:31:44 -0800 | [diff] [blame] | 79 | <ol> |
| Scott Main | ad68fdd | 2009-11-05 18:53:59 -0800 | [diff] [blame] | 80 | <li>Log in as root and create this file: |
| 81 | <code>/etc/udev/rules.d/51-android.rules</code>. |
| 82 | <p>For Gusty/Hardy, edit the file to read:<br/> |
| 83 | <code>SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", |
| 84 | MODE="0666"</code></p> |
| The Android Open Source Project | 9066cfe | 2009-03-03 19:31:44 -0800 | [diff] [blame] | 85 | |
| Scott Main | ad68fdd | 2009-11-05 18:53:59 -0800 | [diff] [blame] | 86 | <p>For Dapper, edit the file to read:<br/> |
| 87 | <code>SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0bb4", |
| 88 | MODE="0666"</code></p> |
| The Android Open Source Project | 9066cfe | 2009-03-03 19:31:44 -0800 | [diff] [blame] | 89 | </li> |
| 90 | <li>Now execute:<br/> |
| Scott Main | 87b9055 | 2009-08-26 15:18:14 -0700 | [diff] [blame] | 91 | <code>chmod a+r /etc/udev/rules.d/51-android.rules</code> |
| The Android Open Source Project | 9066cfe | 2009-03-03 19:31:44 -0800 | [diff] [blame] | 92 | </li> |
| 93 | </ol> |
| The Android Open Source Project | 9066cfe | 2009-03-03 19:31:44 -0800 | [diff] [blame] | 94 | </li> |
| 95 | </ul> |
| 96 | </li> |
| 97 | </ol> |
| The Android Open Source Project | 9066cfe | 2009-03-03 19:31:44 -0800 | [diff] [blame] | 98 | |
| Scott Main | 0197999 | 2010-04-05 17:42:17 -0700 | [diff] [blame] | 99 | <p>You can verify that your device is connected by executing <code>adb devices</code> from your |
| Scott Main | 3165bbb | 2010-12-16 10:26:23 -0800 | [diff] [blame] | 100 | SDK {@code platform-tools/} directory. If connected, you'll see the device name listed as a |
| 101 | "device."</p> |
| Scott Main | 0197999 | 2010-04-05 17:42:17 -0700 | [diff] [blame] | 102 | |
| 103 | <p>If using Eclipse, run or debug as usual. You will be presented |
| 104 | with a <b>Device Chooser</b> dialog that lists the available emulator(s) and connected device(s). |
| 105 | Select the device upon which you want to install and run the application.</p> |
| 106 | |
| 107 | <p>If using the <a href="{@docRoot}guide/developing/tools/adb.html">Android Debug Bridge</a> (adb), |
| Scott Main | ad68fdd | 2009-11-05 18:53:59 -0800 | [diff] [blame] | 108 | you can issue commands with the <code>-d</code> flag to target your |
| 109 | connected device.</p> |
| Scott Main | 7991745 | 2009-08-26 11:56:57 -0700 | [diff] [blame] | 110 | |
| 111 | |
| Scott Main | ad68fdd | 2009-11-05 18:53:59 -0800 | [diff] [blame] | 112 | <h3 id="VendorIds">USB Vendor IDs</h3> |
| 113 | <p>This table provides a reference to the vendor IDs needed in order to add |
| Scott Main | 0197999 | 2010-04-05 17:42:17 -0700 | [diff] [blame] | 114 | USB device support on Linux. The USB Vendor ID is the value given to the |
| 115 | <code>SYSFS{idVendor}</code> property in the rules file, as described in step 3, above.</p> |
| 116 | |
| Scott Main | ad68fdd | 2009-11-05 18:53:59 -0800 | [diff] [blame] | 117 | <table> |
| 118 | <tr> |
| 119 | <th>Manufacturer</th><th>USB Vendor ID</th></tr> |
| 120 | <tr> |
| Scott Main | 0197999 | 2010-04-05 17:42:17 -0700 | [diff] [blame] | 121 | <td>Acer</td> |
| 122 | <td><code>0502</code></td></tr> |
| Scott Main | ad68fdd | 2009-11-05 18:53:59 -0800 | [diff] [blame] | 123 | <tr> |
| Scott Main | 0197999 | 2010-04-05 17:42:17 -0700 | [diff] [blame] | 124 | <td>Dell</td> |
| 125 | <td><code>413c</code></td></tr> |
| Scott Main | ad68fdd | 2009-11-05 18:53:59 -0800 | [diff] [blame] | 126 | <tr> |
| Scott Main | 0197999 | 2010-04-05 17:42:17 -0700 | [diff] [blame] | 127 | <td>Foxconn</td> |
| 128 | <td><code>0489</code></td></tr> |
| Scott Main | ad68fdd | 2009-11-05 18:53:59 -0800 | [diff] [blame] | 129 | <tr> |
| Scott Main | 0197999 | 2010-04-05 17:42:17 -0700 | [diff] [blame] | 130 | <td>Garmin-Asus</td> |
| 131 | <td><code>091E</code></td></tr> |
| Scott Main | ad68fdd | 2009-11-05 18:53:59 -0800 | [diff] [blame] | 132 | <tr> |
| Scott Main | 0197999 | 2010-04-05 17:42:17 -0700 | [diff] [blame] | 133 | <td>HTC</td> |
| 134 | <td><code>0bb4</code></td></tr> |
| Scott Main | ad68fdd | 2009-11-05 18:53:59 -0800 | [diff] [blame] | 135 | <tr> |
| Scott Main | 0197999 | 2010-04-05 17:42:17 -0700 | [diff] [blame] | 136 | <td>Huawei</td> |
| 137 | <td><code>12d1</code></td></tr> |
| Scott Main | ad68fdd | 2009-11-05 18:53:59 -0800 | [diff] [blame] | 138 | <tr> |
| Scott Main | 0197999 | 2010-04-05 17:42:17 -0700 | [diff] [blame] | 139 | <td>Kyocera</td> |
| 140 | <td><code>0482</code></td></tr> |
| 141 | <tr> |
| 142 | <td>LG</td> |
| 143 | <td><code>1004</code></td></tr> |
| 144 | <tr> |
| 145 | <td>Motorola</td> |
| 146 | <td><code>22b8</code></td></tr> |
| 147 | <tr> |
| 148 | <td>Nvidia</td> |
| 149 | <td><code>0955</code></td></tr> |
| 150 | <tr> |
| 151 | <td>Pantech</td> |
| 152 | <td><code>10A9</code></td></tr> |
| 153 | <tr> |
| 154 | <td>Samsung</td> |
| 155 | <td><code>04e8</code></td></tr> |
| 156 | <tr> |
| 157 | <td>Sharp</td> |
| 158 | <td><code>04dd</code></td></tr> |
| 159 | <tr> |
| 160 | <td>Sony Ericsson</td> |
| 161 | <td><code>0fce</code></td></tr> |
| 162 | <tr> |
| 163 | <td>ZTE</td> |
| 164 | <td><code>19D2</code></td></tr> |
| Scott Main | ad68fdd | 2009-11-05 18:53:59 -0800 | [diff] [blame] | 165 | </table> |