summaryrefslogtreecommitdiff
path: root/docs/html/training/basics/firstapp/creating-project.jd
blob: cad32bf077d87b54b4b1059960ff8b7279ec9d71 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
page.title=Creating an Android Project

page.tags=project setup
helpoutsWidget=true

trainingnavtop=true
next.title=Running Your App
next.link=running-app.html

@jd:body


<!-- This is the training bar -->
<div id="tb-wrapper">
<div id="tb">

<h2>You should also read</h2>

<ul>
  <li><a href="{@docRoot}studio/projects/index.html">Projects Overview</a></li>
</ul>


</div>
</div>

<p>This lesson shows you how to create a new Android project with
  <a href="{@docRoot}studio/index.html">Android Studio</a> and describes some
  of the files in the project.</p>

<ol>
  <li>In Android Studio, create a new project:
    <ul>
      <li>If you don't have a project opened, in the <strong>Welcome</strong> screen, click <strong>
        New Project</strong>.</li>
      <li>If you have a project opened, from the <strong>File</strong> menu, select <strong>New
        Project</strong>. The <em>Create New Project</em> screen appears.</li>
    </ul>
  </li>
  <li>Fill out the fields on the screen. For <strong>Application Name</strong>
    use "My First App". For <strong>Company Domain</strong>, use "example.com".
    For the other fields, use the default values and click <strong>Next</strong>
    <p>Here's a brief explanation of each field:</p>
    <ul>
      <li><strong>Application Name</strong> is the app name that appears to users.</li>
      <li><strong>Company domain</strong> provides a qualifier that will be appended to the package
        name; Android Studio will remember this qualifier for each new project you create.</li>
      <li><strong>Package name</strong> is the fully qualified name for the project (following the
        same rules as those for naming packages in the Java programming language). Your package name
        must be unique across all packages installed on the Android system. You can <strong>
        Edit</strong> this value independently from the application name or the company
        domain.</li>
      <li><strong>Project location</strong> is the directory on your system that holds the project
        files.</li>
    </ul>
  </li>
  <li>Under <strong>Target Android Devices</strong>, accept the default values
    and click <strong>Next</strong>.
    <p>The Minimum Required SDK is the earliest version of Android that your app supports,
      indicated using the <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels">
      API level</a>. To support as many devices as possible, you should set this to the lowest
      version available that allows your app to provide its core feature set. If any feature of your
      app is possible only on newer versions of Android and it's not critical to the app's core
      feature set, you can enable the feature only when running on the versions that support it (as
      discussed in <a href="{@docRoot}training/basics/supporting-devices/platforms.html">
      Supporting Different Platform Versions</a>).</p>
    </li>

  <li>Under <strong>Add an Activity to Mobile</strong>, select <strong>Empty
    Activity</strong> and click <strong>Next</strong>.
  </li>

  <div class="sidebox-wrapper">
    <div class="sidebox">
      <h3>Activities</h3>
      <p>An activity is one of the distinguishing features of the Android framework. Activities
        provide the user with access to your app, and there may be many activities. An application
        will usually have a main activity for when the user launches the application, another
        activity for when she selects some content to view, for example, and other activities for
        when she performs other tasks within the app. See <a href="{@docRoot}guide/components/activities.html">
        Activities</a> for more information.</p>
    </div>
  </div>

  <li>Under <strong>Customize the Activity</strong>, accept the default values
    and click <strong>Finish</strong>.
</ol>

<p>Your Android project is now a basic "Hello World" app that contains some default files. Take a
moment to review the most important of these:</p>

<dl>
  <dt><code>app/src/main/java/com.example.myfirstapp/MainActivity.java</code></dt>
  <dd>This file appears in Android Studio after the New Project wizard finishes.
    It contains the class definition for the activity you created earlier. When you build
    and run the app, the {@link android.app.Activity} starts and loads the
    layout file that says "Hello World!"</dd>

  <dt><code>app/src/main/res/layout/activity_main.xml</code></dt>
  <dd>This XML file defines the layout of the activity. It contains a {@code TextView}
    element with the text "Hello world!".</dd>

  <dt><code>app/src/main/AndroidManifest.xml</code></dt>
  <dd>The <a href="{@docRoot}guide/topics/manifest/manifest-intro.html">manifest file</a> describes
    the fundamental characteristics of the app and defines each of its components. You'll revisit
    this file as you follow these lessons and add more components to your app.</dd>
  <dt><code>app/build.gradle</code></dt>
  <dd>Android Studio uses Gradle to compile and build your app. There is a <code>build.gradle</code>
    file for each module of your project, as well as a <code>build.gradle</code> file for the entire
    project. Usually, you're only interested in the <code>build.gradle</code> file for the module,
    in this case the <code>app</code> or application module. This is where your app's build dependencies
    are set, including the <code>defaultConfig</code> settings:
    <ul>
      <li><code>compiledSdkVersion</code> is the platform version against which you will compile
        your app. By default, this is set to the latest version of Android available in your SDK.
        By default, this is set to the latest version of Android SDK installed on your
        development machine.
        You can still build your app to support older versions, but setting this to the latest
        version allows you to enable new features and optimize your app for a great user experience
        on the latest devices.</li>
      <li><code>applicationId</code> is the fully qualified package name for your application that
        you specified in the New Project wizard.</li>
      <li><code>minSdkVersion</code> is the Minimum SDK version you specified during the New Project
        wizard. This is the earliest version of the Android SDK that your app supports.</li>
      <li><code>targetSdkVersion</code> indicates the highest version of Android with which you have
        tested your application. As new versions of Android become available, you should
        test your app on the new version and update this value to match the latest API level and
        thereby take advantage of new platform features. For more information, read
        <a href="{@docRoot}training/basics/supporting-devices/platforms.html">Supporting Different
          Platform Versions</a>.</li>
    </ul>
    <p>See <a href="{@docRoot}studio/build/index.html">Building Your Project with Gradle</a>
    for more information about Gradle.</p></dd>
</dl>

<p>Note also the <code>/res</code> subdirectories that contain the
<a href="{@docRoot}guide/topics/resources/overview.html">resources</a> for your application:</p>
<dl>
  <dt><code>drawable<em>-&lt;density&gt;</em>/</code></dt>
    <dd>Directories for <a href="{@docRoot}guide/topics/resources/drawable-resource.html">
    drawable resources</a>, other than launcher icons, designed
    for various <a href="{@docRoot}training/multiscreen/screendensities.html">densities</a>.
</dd>
  <dt><code>layout/</code></dt>
    <dd>Directory for files that define your app's user interface like {@code activity_main.xml},
      discussed above, which describes a basic layout for the {@code MainActivity}
      class.</dd>
  <dt><code>menu/</code></dt>
    <dd>Directory for files that define your app's menu items.</dd>
  <dt><code>mipmap/</code></dt>
    <dd>Launcher icons reside in the {@code mipmap/} folder rather than the
    {@code drawable/} folders. This folder contains the {@code ic_launcher.png} image
    that appears when you run the default app.</dd>
  <dt><code>values/</code></dt>
    <dd>Directory for other XML files that contain a collection of resources, such as
      string and color definitions.</dd>
</dl>

<p>
  To run the app, continue to the <a href="running-app.html">next lesson</a>.
</p>