blob: 9516e378afd47e686d2ca07b240ca3ca59221aad [file] [log] [blame]
Scott Main2d6faf92012-03-02 18:02:43 -08001page.title=Creating an Android Project
2parent.title=Building Your First App
3parent.link=index.html
4
5trainingnavtop=true
6next.title=Running Your App
7next.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 Main50e990c2012-06-21 17:14:39 -070026 <li><a href="{@docRoot}sdk/installing/index.html">Installing the
Scott Main2d6faf92012-03-02 18:02:43 -080027SDK</a></li>
Scott Main50e990c2012-06-21 17:14:39 -070028 <li><a href="{@docRoot}tools/projects/index.html">Managing Projects</a></li>
Scott Main2d6faf92012-03-02 18:02:43 -080029</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
36app. The Android SDK tools make it easy to start a new Android project with a set of
Scott Main39871b72012-07-19 21:11:49 -070037default project directories and files.</p>
Scott Main2d6faf92012-03-02 18:02:43 -080038
39<p>This lesson
40shows how to create a new project either using Eclipse (with the ADT plugin) or using the
41SDK 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 Main0804b6d2012-07-24 15:51:27 -070044you're using Eclipse, you should also have the <a href="{@docRoot}tools/sdk/eclipse-adt.html">ADT
Scott Main82e1d972012-11-21 14:21:12 -080045plugin</a> installed (version 21.0.0 or higher). If you don't have these, follow the guide to <a
Scott Main0804b6d2012-07-24 15:51:27 -070046href="{@docRoot}sdk/installing/index.html">Installing the Android SDK</a> before you start this
47lesson.</p>
Scott Main2d6faf92012-03-02 18:02:43 -080048
49
50<h2 id="Eclipse">Create a Project with Eclipse</h2>
51
Scott Main39871b72012-07-19 21:11:49 -070052<ol>
Scott Main82e1d972012-11-21 14:21:12 -080053 <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 Main39871b72012-07-19 21:11:49 -070057
58<div class="figure" style="width:420px">
Scott Main2d6faf92012-03-02 18:02:43 -080059<img src="{@docRoot}images/training/firstapp/adt-firstapp-setup.png" alt="" />
Scott Main39871b72012-07-19 21:11:49 -070060<p class="img-caption"><strong>Figure 1.</strong> The New Android App Project wizard in Eclipse.</p>
Scott Main2d6faf92012-03-02 18:02:43 -080061</div>
62
Scott Main39871b72012-07-19 21:11:49 -070063 <li>Fill in the form that appears:
Scott Main2d6faf92012-03-02 18:02:43 -080064 <ul>
Scott Main82e1d972012-11-21 14:21:12 -080065 <li><strong>Application Name</strong> is the app name that appears to users.
Scott Main39871b72012-07-19 21:11:49 -070066 For this project, use "My First App."</p></li>
Scott Main82e1d972012-11-21 14:21:12 -080067 <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 Main2d6faf92012-03-02 18:02:43 -080069rules as packages in the Java programming language). Your package name
Scott Main39871b72012-07-19 21:11:49 -070070must be unique across all packages installed on the Android system. For this reason, it's generally
71best if you use a name that begins with the reverse domain name of your organization or
72publisher entity. For this project, you can use something like "com.example.myfirstapp."
73However, you cannot publish your app on Google Play using the "com.example" namespace.</li>
Scott Main82e1d972012-11-21 14:21:12 -080074 <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 Main39871b72012-07-19 21:11:49 -070094 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
98support older versions, but setting the build target to the latest version allows you to
99enable new features and optimize your app for a great user experience on the latest
100devices.</li>
Scott Main82e1d972012-11-21 14:21:12 -0800101 <li><strong>Theme</strong> specifies the Android UI style to apply for your app. You can leave
102 this alone.</li>
Scott Main2d6faf92012-03-02 18:02:43 -0800103 </ul>
Scott Main39871b72012-07-19 21:11:49 -0700104 <p>Click <strong>Next</strong>.</p>
Scott Main2d6faf92012-03-02 18:02:43 -0800105 </li>
Scott Main82e1d972012-11-21 14:21:12 -0800106 <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 Main39871b72012-07-19 21:11:49 -0700109 <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 Main2d6faf92012-03-02 18:02:43 -0800121</ol>
122
123<p>Your Android project is now set up with some default files and you’re ready to begin
124building 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 Main39871b72012-07-19 21:11:49 -0700131using the SDK tools from a command line:</p>
Scott Main2d6faf92012-03-02 18:02:43 -0800132
133<ol>
134 <li>Change directories into the Android SDKs <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 youve downloaded for your SDK. Find
138the platform against which you want to compile your app. Make a note of the target id. We
139recommend that you select the highest version possible. You can still build your app to
140support older versions, but setting the build target to the latest version allows you to optimize
141your app for the latest devices.</p>
142<p>If you don't see any targets listed, you need to
143install some using the Android SDK
Scott Main39871b72012-07-19 21:11:49 -0700144Manager tool. See <a href="{@docRoot}sdk/installing/adding-packages.html">Adding Platforms
145 and Packages</a>.</p></li>
Scott Main2d6faf92012-03-02 18:02:43 -0800146 <li>Execute:
147<pre class="no-pretty-print">
148android create project --target &lt;target-id> --name MyFirstApp \
Scott Main39871b72012-07-19 21:11:49 -0700149--path &lt;path-to-workspace>/MyFirstApp --activity MainActivity \
150--package com.example.myfirstapp
Scott Main2d6faf92012-03-02 18:02:43 -0800151</pre>
152<p>Replace <code>&lt;target-id></code> with an id from the list of targets (from the previous step)
153and replace
154<code>&lt;path-to-workspace></code> with the location in which you want to save your Android
155projects.</p></li>
156</ol>
157
158<p>Your Android project is now set up with several default configurations and you’re ready to begin
159building 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