Home | History | Annotate | Download | only in firstapp
      1 page.title=Creating an Android Project
      2 
      3 page.tags=project setup
      4 helpoutsWidget=true
      5 
      6 trainingnavtop=true
      7 next.title=Running Your App
      8 next.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
     35 app.</p>
     36 
     37 <p>This lesson
     38 shows how to create a new project either using Android Studio or using the
     39 SDK tools from a command line.</p>
     40 
     41 <p class="note"><strong>Note:</strong> You should already have the Android SDK installed, and if
     42 you're using Android Studio, you should also have <a href="{@docRoot}sdk/installing/studio.html">
     43 Android Studio</a> installed. If you don't have these, follow the guide to <a
     44 href="{@docRoot}sdk/installing/index.html">Installing the Android SDK</a> before you start this
     45 lesson.</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 your project</strong>, select <strong>Blank Activity</strong>
    104     and click <strong>Next</strong>.</li>
    105   <li>Under <strong>Describe the new activity for your project</strong>, leave the fields as they
    106     are and click <strong>Finish</strong>.</li>
    107 </ol>
    108 
    109 <p>Your Android project is now a basic "Hello World" app that contains some default files. Take a
    110 moment to review the most important of these:</p>
    111 
    112 <dl>
    113   <dt><code>app/src/main/res/layout/activity_my.xml</code></dt>
    114   <dd>This is the XML layout file for the activity you added when you created the project with Android
    115     Studio. Following the New Project workflow, Android Studio presents this file with both a text
    116     view and a preview of the screen UI. The file includes some default settings and a <code>TextView</code>
    117     element that displays the message, "Hello world!"</dd>
    118   <dt><code>app/src/main/java/com.mycompany.myfirstapp/MyActivity.java</code></dt>
    119   <dd>A tab for this file appears in Android Studio when the New Project workflow finishes. When you
    120     select the file you see the class definition for the activity you created. When you build and
    121     run the app, the {@link android.app.Activity} class starts the activity and loads the layout file
    122     that says "Hello World!"</dd>
    123   <dt><code>app/src/res/AndroidManifest.xml</code></dt>
    124   <dd>The <a href="{@docRoot}guide/topics/manifest/manifest-intro.html">manifest file</a> describes
    125     the fundamental characteristics of the app and defines each of its components. You'll revisit
    126     this file as you follow these lessons and add more components to your app.</dd>
    127   <dt><code>app/build.gradle</code></dt>
    128   <dd>Android Studio uses Gradle to compile and build your app. There is a <code>build.gradle</code>
    129     file for each module of your project, as well as a <code>build.gradle</code> file for the entire
    130     project. Usually, you're only interested in the <code>build.gradle</code> file for the module,
    131     in this case the <code>app</code> or application module. This is where your app's build dependencies
    132     are set, including the <code>defaultConfig</code> settings:
    133     <ul>
    134       <li><code>compiledSdkVersion</code> is the platform version against which you will compile
    135         your app. By default, this is set to the latest version of Android available in your SDK.
    136         (It should be Android 4.1 or greater; if you don't have such a version available, you must
    137         install one using the <a href="{@docRoot}sdk/installing/adding-packages.html">SDK Manager</a>.)
    138         You can still build your app to support older versions, but setting this to the latest
    139         version allows you to enable new features and optimize your app for a great user experience
    140         on the latest devices.</li>
    141       <li><code>applicationId</code> is the fully qualified package name for your application that
    142         you specified during the New Project workflow.</li>
    143       <li><code>minSdkVersion</code> is the Minimum SDK version you specified during the New Project
    144         workflow. This is the earliest version of the Android SDK that your app supports.</li>
    145       <li><code>targetSdkVersion</code> indicates the highest version of Android with which you have
    146         tested your application. As new versions of Android become available, you should
    147         test your app on the new version and update this value to match the latest API level and
    148         thereby take advantage of new platform features. For more information, read
    149         <a href="{@docRoot}training/basics/supporting-devices/platforms.html">Supporting Different
    150           Platform Versions</a>.</li>
    151     </ul>
    152     <p>See <a href="{@docRoot}sdk/installing/studio-build.html">Building Your Project with Gradle</a>
    153     for more information about Gradle.</p></dd>
    154 </dl>
    155 
    156 <p>Note also the <code>/res</code> subdirectories that contain the
    157 <a href="{@docRoot}guide/topics/resources/overview.html">resources</a> for your application:</p>
    158 <dl>
    159   <dt><code>drawable-hdpi/</code></dt>
    160     <dd>Directory for drawable objects (such as bitmaps) that are designed for high-density
    161     (hdpi) screens. Other drawable directories contain assets designed for other screen densities.
    162     Here you'll find the ic_launcher.png that appears when you run the default app.</dd>
    163   <dt><code>layout/</code></dt>
    164     <dd>Directory for files that define your app's user interface like activity_my.xml,
    165       discussed above, which describes a basic layout for the MyActivity class.</dd>
    166   <dt><code>values/</code></dt>
    167     <dd>Directory for other XML files that contain a collection of resources, such as
    168       string and color definitions. The strings.xml file defines the "Hello world!" string that
    169       displays when you run the default app.</dd>
    170 </dl>
    171 
    172 <p>To run the app, continue to the <a href="running-app.html">next lesson</a>.</p>
    173 
    174 <h2 id="CommandLine">Create a Project with Command Line Tools</h2>
    175 
    176 <p>If you're not using the Android Studio IDE, you can instead create your project
    177 using the SDK tools from a command line:</p>
    178 
    179 <ol>
    180   <li>Change directories into the Android SDKs <code>tools/</code> path.</li>
    181   <li>Execute:
    182 <pre class="no-pretty-print">android list targets</pre>
    183 <p>This prints a list of the available Android platforms that youve downloaded for your SDK. Find
    184 the platform against which you want to compile your app. Make a note of the target ID. We
    185 recommend that you select the highest version possible. You can still build your app to
    186 support older versions, but setting the build target to the latest version allows you to optimize
    187 your app for the latest devices.</p>
    188 <p>If you don't see any targets listed, you need to
    189 install some using the Android SDK
    190 Manager tool. See <a href="{@docRoot}sdk/installing/adding-packages.html">Adding SDK
    191   Packages</a>.</p></li>
    192   <li>Execute:
    193 <pre class="no-pretty-print">
    194 android create project --target &lt;target-id> --name MyFirstApp \
    195 --path &lt;path-to-workspace>/MyFirstApp --activity MyActivity \
    196 --package com.example.myfirstapp
    197 </pre>
    198 <p>Replace <code>&lt;target-id></code> with an ID from the list of targets (from the previous step)
    199 and replace
    200 <code>&lt;path-to-workspace></code> with the location in which you want to save your Android
    201 projects.</p></li>
    202 </ol>
    203 
    204 <p class="note"><strong>Tip:</strong> Add the <code>platform-tools/</code> as well as the
    205 <code>tools/</code> directory to your <code>PATH</code> environment variable.</p>
    206 
    207 <p>Your Android project is now a basic "Hello World" app that contains some default files.
    208 To run the app, continue to the <a href="running-app.html">next lesson</a>.</p>
    209 
    210 
    211 
    212 
    213