| Scott Main | 2d6faf9 | 2012-03-02 18:02:43 -0800 | [diff] [blame] | 1 | page.title=Creating an Android Project |
| 2 | parent.title=Building Your First App |
| 3 | parent.link=index.html |
| 4 | |
| 5 | trainingnavtop=true |
| 6 | next.title=Running Your App |
| 7 | next.link=running-app.html |
| 8 | |
| 9 | @jd:body |
| 10 | |
| 11 | |
| 12 | <!-- This is the training bar --> |
| 13 | <div id="tb-wrapper"> |
| 14 | <div id="tb"> |
| 15 | |
| 16 | <h2>This lesson teaches you to</h2> |
| 17 | |
| 18 | <ol> |
| 19 | <li><a href="#Eclipse">Create a Project with Eclipse</a></li> |
| 20 | <li><a href="#CommandLine">Create a Project with Command Line Tools</a></li> |
| 21 | </ol> |
| 22 | |
| 23 | <h2>You should also read</h2> |
| 24 | |
| 25 | <ul> |
| Scott Main | 50e990c | 2012-06-21 17:14:39 -0700 | [diff] [blame] | 26 | <li><a href="{@docRoot}sdk/installing/index.html">Installing the |
| Scott Main | 2d6faf9 | 2012-03-02 18:02:43 -0800 | [diff] [blame] | 27 | SDK</a></li> |
| Scott Main | 50e990c | 2012-06-21 17:14:39 -0700 | [diff] [blame] | 28 | <li><a href="{@docRoot}tools/projects/index.html">Managing Projects</a></li> |
| Scott Main | 2d6faf9 | 2012-03-02 18:02:43 -0800 | [diff] [blame] | 29 | </ul> |
| 30 | |
| 31 | |
| 32 | </div> |
| 33 | </div> |
| 34 | |
| 35 | <p>An Android project contains all the files that comprise the source code for your Android |
| 36 | app. The Android SDK tools make it easy to start a new Android project with a set of |
| Scott Main | 39871b7 | 2012-07-19 21:11:49 -0700 | [diff] [blame] | 37 | default project directories and files.</p> |
| Scott Main | 2d6faf9 | 2012-03-02 18:02:43 -0800 | [diff] [blame] | 38 | |
| 39 | <p>This lesson |
| 40 | shows how to create a new project either using Eclipse (with the ADT plugin) or using the |
| 41 | SDK tools from a command line.</p> |
| 42 | |
| 43 | <p class="note"><strong>Note:</strong> You should already have the Android SDK installed, and if |
| Scott Main | 0804b6d | 2012-07-24 15:51:27 -0700 | [diff] [blame] | 44 | you're using Eclipse, you should also have the <a href="{@docRoot}tools/sdk/eclipse-adt.html">ADT |
| Scott Main | 82e1d97 | 2012-11-21 14:21:12 -0800 | [diff] [blame] | 45 | plugin</a> installed (version 21.0.0 or higher). If you don't have these, follow the guide to <a |
| Scott Main | 0804b6d | 2012-07-24 15:51:27 -0700 | [diff] [blame] | 46 | href="{@docRoot}sdk/installing/index.html">Installing the Android SDK</a> before you start this |
| 47 | lesson.</p> |
| Scott Main | 2d6faf9 | 2012-03-02 18:02:43 -0800 | [diff] [blame] | 48 | |
| 49 | |
| 50 | <h2 id="Eclipse">Create a Project with Eclipse</h2> |
| 51 | |
| Scott Main | 39871b7 | 2012-07-19 21:11:49 -0700 | [diff] [blame] | 52 | <ol> |
| Scott Main | 82e1d97 | 2012-11-21 14:21:12 -0800 | [diff] [blame] | 53 | <li>Click <strong>New</strong> <img src="{@docRoot}images/tools/eclipse-new.png" |
| 54 | style="vertical-align:baseline;margin:0" /> in the toolbar.</li> |
| 55 | <li>In the window that appears, open the <strong>Android</strong> folder, |
| 56 | select <strong>Android Application Project</strong>, and click <strong>Next</strong>.</li> |
| Scott Main | 39871b7 | 2012-07-19 21:11:49 -0700 | [diff] [blame] | 57 | |
| 58 | <div class="figure" style="width:420px"> |
| Scott Main | 2d6faf9 | 2012-03-02 18:02:43 -0800 | [diff] [blame] | 59 | <img src="{@docRoot}images/training/firstapp/adt-firstapp-setup.png" alt="" /> |
| Scott Main | 39871b7 | 2012-07-19 21:11:49 -0700 | [diff] [blame] | 60 | <p class="img-caption"><strong>Figure 1.</strong> The New Android App Project wizard in Eclipse.</p> |
| Scott Main | 2d6faf9 | 2012-03-02 18:02:43 -0800 | [diff] [blame] | 61 | </div> |
| 62 | |
| Scott Main | 39871b7 | 2012-07-19 21:11:49 -0700 | [diff] [blame] | 63 | <li>Fill in the form that appears: |
| Scott Main | 2d6faf9 | 2012-03-02 18:02:43 -0800 | [diff] [blame] | 64 | <ul> |
| Scott Main | 82e1d97 | 2012-11-21 14:21:12 -0800 | [diff] [blame] | 65 | <li><strong>Application Name</strong> is the app name that appears to users. |
| Scott Main | 39871b7 | 2012-07-19 21:11:49 -0700 | [diff] [blame] | 66 | For this project, use "My First App."</p></li> |
| Scott Main | 82e1d97 | 2012-11-21 14:21:12 -0800 | [diff] [blame] | 67 | <li><strong>Project Name</strong> is the name of your project directory and the name visible in Eclipse.</li> |
| 68 | <li><strong>Package Name</strong> is the package namespace for your app (following the same |
| Scott Main | 2d6faf9 | 2012-03-02 18:02:43 -0800 | [diff] [blame] | 69 | rules as packages in the Java programming language). Your package name |
| Scott Main | 39871b7 | 2012-07-19 21:11:49 -0700 | [diff] [blame] | 70 | must be unique across all packages installed on the Android system. For this reason, it's generally |
| 71 | best if you use a name that begins with the reverse domain name of your organization or |
| 72 | publisher entity. For this project, you can use something like "com.example.myfirstapp." |
| 73 | However, you cannot publish your app on Google Play using the "com.example" namespace.</li> |
| Scott Main | 82e1d97 | 2012-11-21 14:21:12 -0800 | [diff] [blame] | 74 | <li><strong>Minimum Required SDK</strong> is the lowest version of Android that your app supports, |
| 75 | indicated using the <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels" |
| 76 | >API level</a>. |
| 77 | To support as many devices as possible, you should set this to the lowest version available |
| 78 | that allows your app to provide its core feature set. If any feature of your app is possible |
| 79 | only on newer versions of Android and it's not critical to the app's core feature set, you |
| 80 | can enable the feature only when running on the versions that support it (as |
| 81 | discussed in <a href="{@docRoot}training/basics/supporting-devices/platforms.html" |
| 82 | >Supporting Different Platform Versions</a>). |
| 83 | Leave this set to the default value for this project. |
| 84 | </li> |
| 85 | <li><strong>Target SDK</strong> indicates the highest version of Android (also using the |
| 86 | <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels" |
| 87 | >API level</a>) with which you |
| 88 | have tested with your application. |
| 89 | <p>As new versions of Android become available, you should |
| 90 | test your app on the new version and update this value to match the latest API level |
| 91 | in order to take advantage of new platform features.</p> |
| 92 | </li> |
| 93 | <li><strong>Compile With</strong> is the platform version against which you will compile your app. |
| Scott Main | 39871b7 | 2012-07-19 21:11:49 -0700 | [diff] [blame] | 94 | By default, this is set to the latest version of Android available in your SDK. (It should |
| 95 | be Android 4.1 or greater; if you don't have such a version available, you must install one |
| 96 | using the <a href="{@docRoot}sdk/installing/adding-packages.html">SDK Manager</a>). |
| 97 | You can still build your app to |
| 98 | support older versions, but setting the build target to the latest version allows you to |
| 99 | enable new features and optimize your app for a great user experience on the latest |
| 100 | devices.</li> |
| Scott Main | 82e1d97 | 2012-11-21 14:21:12 -0800 | [diff] [blame] | 101 | <li><strong>Theme</strong> specifies the Android UI style to apply for your app. You can leave |
| 102 | this alone.</li> |
| Scott Main | 2d6faf9 | 2012-03-02 18:02:43 -0800 | [diff] [blame] | 103 | </ul> |
| Scott Main | 39871b7 | 2012-07-19 21:11:49 -0700 | [diff] [blame] | 104 | <p>Click <strong>Next</strong>.</p> |
| Scott Main | 2d6faf9 | 2012-03-02 18:02:43 -0800 | [diff] [blame] | 105 | </li> |
| Scott Main | 82e1d97 | 2012-11-21 14:21:12 -0800 | [diff] [blame] | 106 | <li>On the next screen to configure the project, leave the default selections and click |
| 107 | <strong>Next</strong>.</li> |
| 108 | <li>The next screen can help you create a launcher icon for your app. |
| Scott Main | 39871b7 | 2012-07-19 21:11:49 -0700 | [diff] [blame] | 109 | <p>You can customize an icon in several ways and the tool generates an icon for all |
| 110 | screen densities. Before you publish your app, you should be sure your icon meets |
| 111 | the specifications defined in the <a |
| 112 | href="{@docRoot}design/style/iconography.html">Iconography</a> |
| 113 | design guide.</p> |
| 114 | <p>Click <strong>Next</strong>.</p> |
| 115 | </li> |
| 116 | <li>Now you can select an activity template from which to begin building your app. |
| 117 | <p>For this project, select <strong>BlankActivity</strong> and click <strong>Next</strong>.</p> |
| 118 | </li> |
| 119 | <li>Leave all the details for the activity in their default state and click |
| 120 | <strong>Finish</strong>.</li> |
| Scott Main | 2d6faf9 | 2012-03-02 18:02:43 -0800 | [diff] [blame] | 121 | </ol> |
| 122 | |
| 123 | <p>Your Android project is now set up with some default files and you’re ready to begin |
| 124 | building the app. Continue to the <a href="running-app.html">next lesson</a>.</p> |
| 125 | |
| 126 | |
| 127 | |
| 128 | <h2 id="CommandLine">Create a Project with Command Line Tools</h2> |
| 129 | |
| 130 | <p>If you're not using the Eclipse IDE with the ADT plugin, you can instead create your project |
| Scott Main | 39871b7 | 2012-07-19 21:11:49 -0700 | [diff] [blame] | 131 | using the SDK tools from a command line:</p> |
| Scott Main | 2d6faf9 | 2012-03-02 18:02:43 -0800 | [diff] [blame] | 132 | |
| 133 | <ol> |
| 134 | <li>Change directories into the Android SDK’s <code>tools/</code> path.</li> |
| 135 | <li>Execute: |
| 136 | <pre class="no-pretty-print">android list targets</pre> |
| 137 | <p>This prints a list of the available Android platforms that you’ve downloaded for your SDK. Find |
| 138 | the platform against which you want to compile your app. Make a note of the target id. We |
| 139 | recommend that you select the highest version possible. You can still build your app to |
| 140 | support older versions, but setting the build target to the latest version allows you to optimize |
| 141 | your app for the latest devices.</p> |
| 142 | <p>If you don't see any targets listed, you need to |
| 143 | install some using the Android SDK |
| Scott Main | 39871b7 | 2012-07-19 21:11:49 -0700 | [diff] [blame] | 144 | Manager tool. See <a href="{@docRoot}sdk/installing/adding-packages.html">Adding Platforms |
| 145 | and Packages</a>.</p></li> |
| Scott Main | 2d6faf9 | 2012-03-02 18:02:43 -0800 | [diff] [blame] | 146 | <li>Execute: |
| 147 | <pre class="no-pretty-print"> |
| 148 | android create project --target <target-id> --name MyFirstApp \ |
| Scott Main | 39871b7 | 2012-07-19 21:11:49 -0700 | [diff] [blame] | 149 | --path <path-to-workspace>/MyFirstApp --activity MainActivity \ |
| 150 | --package com.example.myfirstapp |
| Scott Main | 2d6faf9 | 2012-03-02 18:02:43 -0800 | [diff] [blame] | 151 | </pre> |
| 152 | <p>Replace <code><target-id></code> with an id from the list of targets (from the previous step) |
| 153 | and replace |
| 154 | <code><path-to-workspace></code> with the location in which you want to save your Android |
| 155 | projects.</p></li> |
| 156 | </ol> |
| 157 | |
| 158 | <p>Your Android project is now set up with several default configurations and you’re ready to begin |
| 159 | building the app. Continue to the <a href="running-app.html">next lesson</a>.</p> |
| 160 | |
| 161 | <p class="note"><strong>Tip:</strong> Add the <code>platform-tools/</code> as well as the |
| 162 | <code>tools/</code> directory to your <code>PATH</code> environment variable.</p> |
| 163 | |
| 164 | |
| 165 | |
| 166 | |