2012-03-02 18:02:43 -08:00
|
|
|
page.title=Creating an Android Project
|
2014-10-20 14:29:22 -07:00
|
|
|
|
2014-10-31 10:45:23 -07:00
|
|
|
page.tags=project setup
|
2014-10-20 14:29:22 -07:00
|
|
|
helpoutsWidget=true
|
2012-03-02 18:02:43 -08:00
|
|
|
|
|
|
|
trainingnavtop=true
|
|
|
|
next.title=Running Your App
|
|
|
|
next.link=running-app.html
|
|
|
|
|
|
|
|
@jd:body
|
|
|
|
|
|
|
|
|
|
|
|
<!-- This is the training bar -->
|
2014-04-01 10:46:16 -07:00
|
|
|
<div id="tb-wrapper">
|
|
|
|
<div id="tb">
|
|
|
|
|
2012-03-02 18:02:43 -08:00
|
|
|
<h2>This lesson teaches you to</h2>
|
|
|
|
|
|
|
|
<ol>
|
2014-05-19 16:50:47 -07:00
|
|
|
<li><a href="#Studio">Create a Project with Android Studio</a></li>
|
2012-03-02 18:02:43 -08:00
|
|
|
</ol>
|
|
|
|
|
|
|
|
<h2>You should also read</h2>
|
|
|
|
|
|
|
|
<ul>
|
2012-06-21 17:14:39 -07:00
|
|
|
<li><a href="{@docRoot}tools/projects/index.html">Managing Projects</a></li>
|
2012-03-02 18:02:43 -08:00
|
|
|
</ul>
|
2014-04-01 10:46:16 -07:00
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
2012-03-02 18:02:43 -08:00
|
|
|
|
|
|
|
<p>An Android project contains all the files that comprise the source code for your Android
|
2015-08-17 18:15:50 -07:00
|
|
|
app.</p>
|
2012-03-02 18:02:43 -08:00
|
|
|
|
|
|
|
<p>This lesson
|
2014-05-19 16:50:47 -07:00
|
|
|
shows how to create a new project either using Android Studio or using the
|
2012-03-02 18:02:43 -08:00
|
|
|
SDK tools from a command line.</p>
|
|
|
|
|
2016-05-14 19:20:00 -07:00
|
|
|
<p class="note"><strong>Note:</strong> You should already have Android Studio or the Android SDK
|
|
|
|
command-line tools installed. If not, <a
|
|
|
|
href="{@docRoot}studio/index.html">download them</a> before you start this
|
2012-07-24 15:51:27 -07:00
|
|
|
lesson.</p>
|
2012-03-02 18:02:43 -08:00
|
|
|
|
|
|
|
|
2014-05-19 16:50:47 -07:00
|
|
|
<h2 id="Studio">Create a Project with Android Studio</h2>
|
2012-03-02 18:02:43 -08:00
|
|
|
|
2012-07-19 21:11:49 -07:00
|
|
|
<ol>
|
2014-05-19 16:50:47 -07:00
|
|
|
<li>In Android Studio, create a new project:
|
2012-03-02 18:02:43 -08:00
|
|
|
<ul>
|
2014-05-19 16:50:47 -07:00
|
|
|
<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
|
2015-12-08 15:13:30 -08:00
|
|
|
Project</strong>. The <em>Create New Project</em> screen appears.</li>
|
2012-03-02 18:02:43 -08:00
|
|
|
</ul>
|
2012-07-19 21:11:49 -07:00
|
|
|
</li>
|
2015-12-08 15:13:30 -08:00
|
|
|
<li>Fill out the fields on the screen, and click <strong>Next</strong>.
|
|
|
|
<p>It is easier to follow these lessons if you use the same values as shown.</p>
|
2014-05-19 16:50:47 -07:00
|
|
|
<ul>
|
|
|
|
<li><strong>Application Name</strong> is the app name that appears to users.
|
|
|
|
For this project, use "My First App."</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>
|
2012-03-02 18:02:43 -08:00
|
|
|
</li>
|
2014-05-19 16:50:47 -07:00
|
|
|
<li>Under <strong>Select the form factors your app will run on</strong>, check the box for <strong>
|
|
|
|
Phone and Tablet</strong>.</li>
|
|
|
|
<li>For <strong>Minimum SDK</strong>, select <strong>API 8: Android 2.2 (Froyo)</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>Leave all of the other options (TV, Wear, and Glass) unchecked 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>
|
2014-12-15 12:33:03 -08:00
|
|
|
<li>Under <strong>Add an activity to <<em>template</em>></strong>, select <strong>Blank
|
|
|
|
Activity</strong> and click <strong>Next</strong>.</li>
|
2015-12-08 15:13:30 -08:00
|
|
|
<li>Under <strong>Customize the Activity</strong>, change the
|
2014-12-15 12:33:03 -08:00
|
|
|
<strong>Activity Name</strong> to <em>MyActivity</em>. The <strong>Layout Name</strong> changes
|
|
|
|
to <em>activity_my</em>, and the <strong>Title</strong> to <em>MyActivity</em>. The
|
2015-12-08 15:13:30 -08:00
|
|
|
<strong>Menu Resource Name</strong> is <em>menu_my</em>.
|
2014-12-15 12:33:03 -08:00
|
|
|
<li>Click the <strong>Finish</strong> button to create the project.</li>
|
2012-03-02 18:02:43 -08:00
|
|
|
</ol>
|
|
|
|
|
2014-05-19 16:50:47 -07:00
|
|
|
<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/res/layout/activity_my.xml</code></dt>
|
2015-12-08 15:13:30 -08:00
|
|
|
<dd>This XML layout file is for the activity you added when you created the project
|
|
|
|
with Android Studio. Following the New Project workflow, Android Studio presents this file
|
|
|
|
with both a text
|
|
|
|
view and a preview of the screen UI. The file contains some default interface elements
|
|
|
|
from the material design library, including the
|
|
|
|
<a href="{@docRoot}training/appbar/index.html">app bar</a> and a floating action button.
|
|
|
|
It also includes a separate layout file with the main content.</dd>
|
|
|
|
|
|
|
|
<dt><code>app/src/main/res/layout/content_my.xml</code></dt>
|
|
|
|
<dd>This XML layout file resides in {@code activity_my.xml}, and contains some settings and
|
|
|
|
a {@code TextView} element that displays the message, "Hello world!".</dd>
|
|
|
|
|
2014-05-19 16:50:47 -07:00
|
|
|
<dt><code>app/src/main/java/com.mycompany.myfirstapp/MyActivity.java</code></dt>
|
|
|
|
<dd>A tab for this file appears in Android Studio when the New Project workflow finishes. When you
|
|
|
|
select the file you see the class definition for the activity you created. When you build and
|
|
|
|
run the app, the {@link android.app.Activity} class starts the activity and loads the layout file
|
|
|
|
that says "Hello World!"</dd>
|
2014-12-15 12:33:03 -08:00
|
|
|
<dt><code>app/src/main/AndroidManifest.xml</code></dt>
|
2014-05-19 16:50:47 -07:00
|
|
|
<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.
|
|
|
|
(It should be Android 4.1 or greater; if you don't have such a version available, you must
|
2016-05-14 19:20:00 -07:00
|
|
|
install one using the <a href="{@docRoot}studio/intro/update.html">SDK Manager</a>.)
|
2014-05-19 16:50:47 -07:00
|
|
|
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 during the New Project workflow.</li>
|
|
|
|
<li><code>minSdkVersion</code> is the Minimum SDK version you specified during the New Project
|
|
|
|
workflow. 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>
|
2016-05-14 19:20:00 -07:00
|
|
|
<p>See <a href="{@docRoot}studio/build/index.html">Building Your Project with Gradle</a>
|
2014-05-19 16:50:47 -07:00
|
|
|
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>
|
2015-12-08 15:13:30 -08:00
|
|
|
<dt><code>drawable<em>-<density></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>
|
2014-05-19 16:50:47 -07:00
|
|
|
<dt><code>layout/</code></dt>
|
2015-12-08 15:13:30 -08:00
|
|
|
<dd>Directory for files that define your app's user interface like {@code activity_my.xml},
|
|
|
|
discussed above, which describes a basic layout for the {@code MyActivity}
|
|
|
|
class.</dd>
|
2014-12-15 12:33:03 -08:00
|
|
|
<dt><code>menu/</code></dt>
|
|
|
|
<dd>Directory for files that define your app's menu items.</dd>
|
2015-12-08 15:13:30 -08:00
|
|
|
<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>
|
2014-05-19 16:50:47 -07:00
|
|
|
<dt><code>values/</code></dt>
|
|
|
|
<dd>Directory for other XML files that contain a collection of resources, such as
|
2015-12-08 15:13:30 -08:00
|
|
|
string and color definitions.</dd>
|
2014-05-19 16:50:47 -07:00
|
|
|
</dl>
|
|
|
|
|
|
|
|
<p>To run the app, continue to the <a href="running-app.html">next lesson</a>.</p>
|