1page.title=Creating an Android Project 2 3page.tags=project setup 4helpoutsWidget=true 5 6trainingnavtop=true 7next.title=Running Your App 8next.link=running-app.html 9 10@jd:body 11 12 13<!-- This is the training bar --> 14<div id="tb-wrapper"> 15<div id="tb"> 16 17<h2>This lesson teaches you to</h2> 18 19<ol> 20 <li><a href="#Studio">Create a Project with Android Studio</a></li> 21 <li><a href="#CommandLine">Create a Project with Command Line Tools</a></li> 22</ol> 23 24<h2>You should also read</h2> 25 26<ul> 27 <li><a href="{@docRoot}tools/projects/index.html">Managing Projects</a></li> 28</ul> 29 30 31</div> 32</div> 33 34<p>An Android project contains all the files that comprise the source code for your Android 35app.</p> 36 37<p>This lesson 38shows how to create a new project either using Android Studio or using the 39SDK tools from a command line.</p> 40 41<p class="note"><strong>Note:</strong> You should already have the Android SDK installed, and if 42you're using Android Studio, you should also have <a href="{@docRoot}sdk/installing/studio.html"> 43Android Studio</a> installed. If you don't have these, follow the guide to <a 44href="{@docRoot}sdk/installing/index.html">Installing the Android SDK</a> before you start this 45lesson.</p> 46 47 48<h2 id="Studio">Create a Project with Android Studio</h2> 49 50<ol> 51 <li>In Android Studio, create a new project: 52 <ul> 53 <li>If you don't have a project opened, in the <strong>Welcome</strong> screen, click <strong> 54 New Project</strong>.</li> 55 <li>If you have a project opened, from the <strong>File</strong> menu, select <strong>New 56 Project</strong>.</li> 57 </ul> 58 </li> 59 <div class="figure" style="width:420px"> 60 <img src="{@docRoot}images/training/firstapp/studio-setup-1.png" alt="" /> 61 <p class="img-caption"><strong>Figure 1.</strong> Configuring a new project in Android Studio.</p> 62 </div> 63 <li>Under <strong>Configure your new project</strong>, fill in the fields as shown in figure 1 64 and click <strong>Next</strong>. 65 <p>It will probably be easier to follow these lessons if you use the same values as shown.</p> 66 <ul> 67 <li><strong>Application Name</strong> is the app name that appears to users. 68 For this project, use "My First App."</li> 69 <li><strong>Company domain</strong> provides a qualifier that will be appended to the package 70 name; Android Studio will remember this qualifier for each new project you create.</li> 71 <li><strong>Package name</strong> is the fully qualified name for the project (following the 72 same rules as those for naming packages in the Java programming language). Your package name 73 must be unique across all packages installed on the Android system. You can <strong> 74 Edit</strong> this value independently from the application name or the company 75 domain.</li> 76 <li><strong>Project location</strong> is the directory on your system that holds the project 77 files.</li> 78 </ul> 79 </li> 80 <li>Under <strong>Select the form factors your app will run on</strong>, check the box for <strong> 81 Phone and Tablet</strong>.</li> 82 <li>For <strong>Minimum SDK</strong>, select <strong>API 8: Android 2.2 (Froyo)</strong>. 83 <p>The Minimum Required SDK is the earliest version of Android that your app supports, 84 indicated using the <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels"> 85 API level</a>. To support as many devices as possible, you should set this to the lowest 86 version available that allows your app to provide its core feature set. If any feature of your 87 app is possible only on newer versions of Android and it's not critical to the app's core 88 feature set, you can enable the feature only when running on the versions that support it (as 89 discussed in <a href="{@docRoot}training/basics/supporting-devices/platforms.html"> 90 Supporting Different Platform Versions</a>).</p></li> 91 <li>Leave all of the other options (TV, Wear, and Glass) unchecked and click <strong>Next.</strong></li> 92 <div class="sidebox-wrapper"> 93 <div class="sidebox"> 94 <h3>Activities</h3> 95 <p>An activity is one of the distinguishing features of the Android framework. Activities 96 provide the user with access to your app, and there may be many activities. An application 97 will usually have a main activity for when the user launches the application, another 98 activity for when she selects some content to view, for example, and other activities for 99 when she performs other tasks within the app. See <a href="{@docRoot}guide/components/activities.html"> 100 Activities</a> for more information.</p> 101 </div> 102 </div> 103 <li>Under <strong>Add an activity to <<em>template</em>></strong>, select <strong>Blank 104 Activity</strong> and click <strong>Next</strong>.</li> 105 <li>Under <strong>Choose options for your new file</strong>, change the 106 <strong>Activity Name</strong> to <em>MyActivity</em>. The <strong>Layout Name</strong> changes 107 to <em>activity_my</em>, and the <strong>Title</strong> to <em>MyActivity</em>. The 108 <strong>Menu Resource Name</strong> is <em>menu_my</em>. 109 <li>Click the <strong>Finish</strong> button to create the project.</li> 110</ol> 111 112<p>Your Android project is now a basic "Hello World" app that contains some default files. Take a 113moment to review the most important of these:</p> 114 115<dl> 116 <dt><code>app/src/main/res/layout/activity_my.xml</code></dt> 117 <dd>This is the XML layout file for the activity you added when you created the project with Android 118 Studio. Following the New Project workflow, Android Studio presents this file with both a text 119 view and a preview of the screen UI. The file includes some default settings and a <code>TextView</code> 120 element that displays the message, "Hello world!"</dd> 121 <dt><code>app/src/main/java/com.mycompany.myfirstapp/MyActivity.java</code></dt> 122 <dd>A tab for this file appears in Android Studio when the New Project workflow finishes. When you 123 select the file you see the class definition for the activity you created. When you build and 124 run the app, the {@link android.app.Activity} class starts the activity and loads the layout file 125 that says "Hello World!"</dd> 126 <dt><code>app/src/main/AndroidManifest.xml</code></dt> 127 <dd>The <a href="{@docRoot}guide/topics/manifest/manifest-intro.html">manifest file</a> describes 128 the fundamental characteristics of the app and defines each of its components. You'll revisit 129 this file as you follow these lessons and add more components to your app.</dd> 130 <dt><code>app/build.gradle</code></dt> 131 <dd>Android Studio uses Gradle to compile and build your app. There is a <code>build.gradle</code> 132 file for each module of your project, as well as a <code>build.gradle</code> file for the entire 133 project. Usually, you're only interested in the <code>build.gradle</code> file for the module, 134 in this case the <code>app</code> or application module. This is where your app's build dependencies 135 are set, including the <code>defaultConfig</code> settings: 136 <ul> 137 <li><code>compiledSdkVersion</code> is the platform version against which you will compile 138 your app. By default, this is set to the latest version of Android available in your SDK. 139 (It should be Android 4.1 or greater; if you don't have such a version available, you must 140 install one using the <a href="{@docRoot}sdk/installing/adding-packages.html">SDK Manager</a>.) 141 You can still build your app to support older versions, but setting this to the latest 142 version allows you to enable new features and optimize your app for a great user experience 143 on the latest devices.</li> 144 <li><code>applicationId</code> is the fully qualified package name for your application that 145 you specified during the New Project workflow.</li> 146 <li><code>minSdkVersion</code> is the Minimum SDK version you specified during the New Project 147 workflow. This is the earliest version of the Android SDK that your app supports.</li> 148 <li><code>targetSdkVersion</code> indicates the highest version of Android with which you have 149 tested your application. As new versions of Android become available, you should 150 test your app on the new version and update this value to match the latest API level and 151 thereby take advantage of new platform features. For more information, read 152 <a href="{@docRoot}training/basics/supporting-devices/platforms.html">Supporting Different 153 Platform Versions</a>.</li> 154 </ul> 155 <p>See <a href="{@docRoot}sdk/installing/studio-build.html">Building Your Project with Gradle</a> 156 for more information about Gradle.</p></dd> 157</dl> 158 159<p>Note also the <code>/res</code> subdirectories that contain the 160<a href="{@docRoot}guide/topics/resources/overview.html">resources</a> for your application:</p> 161<dl> 162 <dt><code>drawable<em><density></em>/</code></dt> 163 <dd>Directories for drawable objects (such as bitmaps) that are designed for various densities, 164 such as medium-density (mdpi) and high-density (hdpi) screens. Other drawable directories 165 contain assets designed for other screen densities. 166 Here you'll find the ic_launcher.png that appears when you run the default app.</dd> 167 <dt><code>layout/</code></dt> 168 <dd>Directory for files that define your app's user interface like activity_my.xml, 169 discussed above, which describes a basic layout for the MyActivity class.</dd> 170 <dt><code>menu/</code></dt> 171 <dd>Directory for files that define your app's menu items.</dd> 172 <dt><code>values/</code></dt> 173 <dd>Directory for other XML files that contain a collection of resources, such as 174 string and color definitions. The strings.xml file defines the "Hello world!" string that 175 displays when you run the default app.</dd> 176</dl> 177 178<p>To run the app, continue to the <a href="running-app.html">next lesson</a>.</p> 179 180<h2 id="CommandLine">Create a Project with Command Line Tools</h2> 181 182<p>If you're not using the Android Studio IDE, you can instead create your project 183using the SDK tools from a command line:</p> 184 185<ol> 186 <li>Change directories into the Android SDK’s <code>sdk/</code> path.</li> 187 <li>Execute: 188<pre class="no-pretty-print">tools/android list targets</pre> 189<p>This prints a list of the available Android platforms that you’ve downloaded for your SDK. Find 190the platform against which you want to compile your app. Make a note of the target ID. We 191recommend that you select the highest version possible. You can still build your app to 192support older versions, but setting the build target to the latest version allows you to optimize 193your app for the latest devices.</p> 194<p>If you don't see any targets listed, you need to 195install some using the Android SDK 196Manager tool. See <a href="{@docRoot}sdk/installing/adding-packages.html">Adding SDK 197 Packages</a>.</p></li> 198 <li>Execute: 199<pre class="no-pretty-print"> 200android create project --target <target-id> --name MyFirstApp \ 201--path <path-to-workspace>/MyFirstApp --activity MyActivity \ 202--package com.example.myfirstapp 203</pre> 204<p>Replace <code><target-id></code> with an ID from the list of targets (from the previous step) 205and replace 206<code><path-to-workspace></code> with the location in which you want to save your Android 207projects.</p></li> 208</ol> 209 210<p class="note"><strong>Tip:</strong> Add the <code>platform-tools/</code> as well as the 211<code>tools/</code> directory to your <code>PATH</code> environment variable.</p> 212 213<p>Your Android project is now a basic "Hello World" app that contains some default files. 214To run the app, continue to the <a href="running-app.html">next lesson</a>.</p> 215 216 217 218