• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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</ol>
22
23<h2>You should also read</h2>
24
25<ul>
26  <li><a href="{@docRoot}tools/projects/index.html">Managing Projects</a></li>
27</ul>
28
29
30</div>
31</div>
32
33<p>An Android project contains all the files that comprise the source code for your Android
34app.</p>
35
36<p>This lesson
37shows how to create a new project either using Android Studio or using the
38SDK tools from a command line.</p>
39
40<p class="note"><strong>Note:</strong> You should already have Android Studio or the Android SDK
41command-line tools installed. If not, <a
42href="{@docRoot}studio/index.html">download them</a> before you start this
43lesson.</p>
44
45
46<h2 id="Studio">Create a Project with Android Studio</h2>
47
48<ol>
49  <li>In Android Studio, create a new project:
50    <ul>
51      <li>If you don't have a project opened, in the <strong>Welcome</strong> screen, click <strong>
52        New Project</strong>.</li>
53      <li>If you have a project opened, from the <strong>File</strong> menu, select <strong>New
54        Project</strong>. The <em>Create New Project</em> screen appears.</li>
55    </ul>
56  </li>
57  <li>Fill out the fields on the screen, and click <strong>Next</strong>.
58    <p>It is easier to follow these lessons if you use the same values as shown.</p>
59    <ul>
60      <li><strong>Application Name</strong> is the app name that appears to users.
61          For this project, use "My First App."</li>
62      <li><strong>Company domain</strong> provides a qualifier that will be appended to the package
63        name; Android Studio will remember this qualifier for each new project you create.</li>
64      <li><strong>Package name</strong> is the fully qualified name for the project (following the
65        same rules as those for naming packages in the Java programming language). Your package name
66        must be unique across all packages installed on the Android system. You can <strong>
67        Edit</strong> this value independently from the application name or the company
68        domain.</li>
69      <li><strong>Project location</strong> is the directory on your system that holds the project
70        files.</li>
71    </ul>
72  </li>
73  <li>Under <strong>Select the form factors your app will run on</strong>, check the box for <strong>
74    Phone and Tablet</strong>.</li>
75  <li>For <strong>Minimum SDK</strong>, select <strong>API 8: Android 2.2 (Froyo)</strong>.
76    <p>The Minimum Required SDK is the earliest version of Android that your app supports,
77      indicated using the <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels">
78      API level</a>. To support as many devices as possible, you should set this to the lowest
79      version available that allows your app to provide its core feature set. If any feature of your
80      app is possible only on newer versions of Android and it's not critical to the app's core
81      feature set, you can enable the feature only when running on the versions that support it (as
82      discussed in <a href="{@docRoot}training/basics/supporting-devices/platforms.html">
83      Supporting Different Platform Versions</a>).</p></li>
84  <li>Leave all of the other options (TV, Wear, and Glass) unchecked and click <strong>Next.</strong></li>
85  <div class="sidebox-wrapper">
86    <div class="sidebox">
87      <h3>Activities</h3>
88      <p>An activity is one of the distinguishing features of the Android framework. Activities
89        provide the user with access to your app, and there may be many activities. An application
90        will usually have a main activity for when the user launches the application, another
91        activity for when she selects some content to view, for example, and other activities for
92        when she performs other tasks within the app. See <a href="{@docRoot}guide/components/activities.html">
93        Activities</a> for more information.</p>
94    </div>
95  </div>
96  <li>Under <strong>Add an activity to &lt;<em>template</em>&gt;</strong>, select <strong>Blank
97    Activity</strong> and click <strong>Next</strong>.</li>
98  <li>Under <strong>Customize the Activity</strong>, change the
99    <strong>Activity Name</strong> to <em>MyActivity</em>. The <strong>Layout Name</strong> changes
100    to <em>activity_my</em>, and the <strong>Title</strong> to <em>MyActivity</em>. The
101    <strong>Menu Resource Name</strong> is <em>menu_my</em>.
102   <li>Click the <strong>Finish</strong> button to create the project.</li>
103</ol>
104
105<p>Your Android project is now a basic "Hello World" app that contains some default files. Take a
106moment to review the most important of these:</p>
107
108<dl>
109  <dt><code>app/src/main/res/layout/activity_my.xml</code></dt>
110  <dd>This XML layout file is for the activity you added when you created the project
111  with Android Studio. Following the New Project workflow, Android Studio presents this file
112  with both a text
113    view and a preview of the screen UI. The file contains some default interface elements
114    from the material design library, including the
115    <a href="{@docRoot}training/appbar/index.html">app bar</a> and a floating action button.
116    It also includes a separate layout file with the main content.</dd>
117
118  <dt><code>app/src/main/res/layout/content_my.xml</code></dt>
119  <dd>This XML layout file resides in {@code activity_my.xml}, and contains some settings and
120  a {@code TextView} element that displays the message, "Hello world!".</dd>
121
122  <dt><code>app/src/main/java/com.mycompany.myfirstapp/MyActivity.java</code></dt>
123  <dd>A tab for this file appears in Android Studio when the New Project workflow finishes. When you
124    select the file you see the class definition for the activity you created. When you build and
125    run the app, the {@link android.app.Activity} class starts the activity and loads the layout file
126    that says "Hello World!"</dd>
127  <dt><code>app/src/main/AndroidManifest.xml</code></dt>
128  <dd>The <a href="{@docRoot}guide/topics/manifest/manifest-intro.html">manifest file</a> describes
129    the fundamental characteristics of the app and defines each of its components. You'll revisit
130    this file as you follow these lessons and add more components to your app.</dd>
131  <dt><code>app/build.gradle</code></dt>
132  <dd>Android Studio uses Gradle to compile and build your app. There is a <code>build.gradle</code>
133    file for each module of your project, as well as a <code>build.gradle</code> file for the entire
134    project. Usually, you're only interested in the <code>build.gradle</code> file for the module,
135    in this case the <code>app</code> or application module. This is where your app's build dependencies
136    are set, including the <code>defaultConfig</code> settings:
137    <ul>
138      <li><code>compiledSdkVersion</code> is the platform version against which you will compile
139        your app. By default, this is set to the latest version of Android available in your SDK.
140        (It should be Android 4.1 or greater; if you don't have such a version available, you must
141        install one using the <a href="{@docRoot}studio/intro/update.html">SDK Manager</a>.)
142        You can still build your app to support older versions, but setting this to the latest
143        version allows you to enable new features and optimize your app for a great user experience
144        on the latest devices.</li>
145      <li><code>applicationId</code> is the fully qualified package name for your application that
146        you specified during the New Project workflow.</li>
147      <li><code>minSdkVersion</code> is the Minimum SDK version you specified during the New Project
148        workflow. This is the earliest version of the Android SDK that your app supports.</li>
149      <li><code>targetSdkVersion</code> indicates the highest version of Android with which you have
150        tested your application. As new versions of Android become available, you should
151        test your app on the new version and update this value to match the latest API level and
152        thereby take advantage of new platform features. For more information, read
153        <a href="{@docRoot}training/basics/supporting-devices/platforms.html">Supporting Different
154          Platform Versions</a>.</li>
155    </ul>
156    <p>See <a href="{@docRoot}studio/build/index.html">Building Your Project with Gradle</a>
157    for more information about Gradle.</p></dd>
158</dl>
159
160<p>Note also the <code>/res</code> subdirectories that contain the
161<a href="{@docRoot}guide/topics/resources/overview.html">resources</a> for your application:</p>
162<dl>
163  <dt><code>drawable<em>-&lt;density&gt;</em>/</code></dt>
164    <dd>Directories for <a href="{@docRoot}guide/topics/resources/drawable-resource.html">
165    drawable resources</a>, other than launcher icons, designed
166    for various <a href="{@docRoot}training/multiscreen/screendensities.html">densities</a>.
167</dd>
168  <dt><code>layout/</code></dt>
169    <dd>Directory for files that define your app's user interface like {@code activity_my.xml},
170      discussed above, which describes a basic layout for the {@code MyActivity}
171      class.</dd>
172  <dt><code>menu/</code></dt>
173    <dd>Directory for files that define your app's menu items.</dd>
174  <dt><code>mipmap/</code></dt>
175    <dd>Launcher icons reside in the {@code mipmap/} folder rather than the
176    {@code drawable/} folders. This folder contains the {@code ic_launcher.png} image
177    that appears when you run the default app.</dd>
178  <dt><code>values/</code></dt>
179    <dd>Directory for other XML files that contain a collection of resources, such as
180      string and color definitions.</dd>
181</dl>
182
183<p>To run the app, continue to the <a href="running-app.html">next lesson</a>.</p>
184