398 lines
18 KiB
Plaintext
398 lines
18 KiB
Plaintext
page.title=Managing Projects from Android Studio
|
|
|
|
@jd:body
|
|
|
|
<div id="qv-wrapper">
|
|
<div id="qv">
|
|
<h2>In this document</h2>
|
|
|
|
<ol>
|
|
<li><a href="#CreatingAProject">Creating an Android Project</a></li>
|
|
<ol>
|
|
<li><a href="#Step1CreatingAProject">Create a New Project</a> </li>
|
|
<li><a href="#Step2SelectFormFactor">Select Form Factors and API Level</a> </li>
|
|
<li><a href="#Step3AddActivity">Add an Activity</a> </li>
|
|
<li><a href="#Step4ConfigureActivity">Configure Your App</a> </li>
|
|
<li><a href="#Step5DevelopYourApp">Develop Your App</a> </li>
|
|
</ol>
|
|
|
|
<li><a href="#CreatingAModule">Creating an Android Module</a></li>
|
|
|
|
<li><a href="#SettingUpLibraryModule">Setting up a Library Module</a></li>
|
|
|
|
<li><a href="#ReferencingLibraryModule">Referencing a Library Module</a></li>
|
|
|
|
<li><a href="#ReferencingAppEngModule">Setting up an App Eng Module</a></li>
|
|
|
|
<li><a href="#ProjectView">Using the Android Project View</a></li>
|
|
|
|
</ol>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<p>Android Studio provides graphical tools for creating and managing Android projects, which
|
|
contain everything that define your Android apps, from app source code to build configurations and
|
|
test code. Each project contains one or more different types of modules, such as
|
|
application modules, library modules, and test modules.</p>
|
|
|
|
<p>This guide explains how to create Android projects and different modules using
|
|
<a href="{@docRoot}tools/studio/index.html">Android Studio</a>.
|
|
For more information about the Android project structure and module types, read <a href=
|
|
"{@docRoot}tools/projects/index.html">Managing Projects Overview</a>.</p>
|
|
|
|
|
|
|
|
<h2 id="CreatingAProject">Creating an Android Project</h2>
|
|
|
|
<p>Android Studio makes it easy to create Android apps for several form factors, such as phone,
|
|
tablet, TV, Wear, and Google Glass. The <em>New Project</em> wizard lets you choose the form factors
|
|
for your app and populates the project structure with everything you need to get started.</p>
|
|
|
|
<p>Follow the steps in this section to create a project in Android Studio.</p>
|
|
|
|
<h3 id="Step1CreatingAProject">Step 1: Create a New Project</h2>
|
|
|
|
<p>If you didn't have a project opened, Android Studio shows the Welcome screen.
|
|
To create a new project, click <strong>New Project</strong>.</p>
|
|
|
|
<p>If you had a project opened, Android Studio shows the development environment.
|
|
To create a new project, click <strong>File</strong> > <strong>New Project</strong>.</p>
|
|
|
|
<p>The next window lets you configure the name of your app, the package name, and the location
|
|
of your project.</p>
|
|
|
|
<img src="{@docRoot}images/tools/wizard2.png" alt="" width="500" height="381">
|
|
<p class="img-caption"><strong>Figure 1.</strong> Choose a name for your project.</p>
|
|
|
|
<p>Enter the values for your project then click <strong>Next</strong>.</p>
|
|
|
|
<h3 id="Step2SelectFormFactor">Step 2: Select Form Factors and API Level</h2>
|
|
|
|
<p>The next window lets you select the form factors supported by your app, such as phone, tablet,
|
|
TV, Wear, and Google Glass. The selected form factors become the application modules within the
|
|
project. For each form factor, you can also select the API Level for that app. To get more information,
|
|
click <strong>Help me choose</strong>.</p>
|
|
|
|
<img src="{@docRoot}images/tools/wizard4.png" alt="" width="750" height="510">
|
|
<p class="img-caption"><strong>Figure 2.</strong> Select the API Level.</p>
|
|
|
|
<p>The API Level window shows the distribution of mobile devices running each version of Android,
|
|
as shown in figure 3. Click on an API level to see a list of features introduced in the corresponding
|
|
version of Android. This helps you choose the minimum API Level that has all the features that
|
|
your apps needs, so you can reach as many devices as possible. Then click <strong>OK</strong>.</p>
|
|
|
|
<img src="{@docRoot}images/tools/wizard3.png" alt="" width="500" height="480">
|
|
<p class="img-caption"><strong>Figure 3.</strong> Choose form factors for your app.</p>
|
|
|
|
<p>Then, on the Form Factors Window, click <strong>Next</strong>.</p>
|
|
|
|
|
|
<h3 id="Step3AddActivity">Step 3: Add an Activity</h2>
|
|
|
|
<p>The next screen lets you select an activity type to add to your app, as shown in figure 4.
|
|
This screen displays a different set of activities for each of the form factors you selected earlier.</p>
|
|
|
|
<img src="{@docRoot}images/tools/wizard5.png" alt="" width="720" height="504">
|
|
<p class="img-caption"><strong>Figure 4.</strong> Add an activity to your app.</p>
|
|
|
|
<p>Choose an activity type then click <strong>Next</strong>.</p>
|
|
|
|
<p class="note"><strong>Note:</strong> If you choose "Add No Activity", click <strong>Finish</strong>
|
|
to create the project.</p>
|
|
|
|
|
|
<h3 id="Step4ConfigureActivity">Step 4: Configure Your Activity</h2>
|
|
|
|
<p>The next screen lets you configure the activity to add to your app, as shown in figure 5.</p>
|
|
|
|
<img src="{@docRoot}images/tools/wizard6.png" alt="" width="450" height="385">
|
|
<p class="img-caption"><strong>Figure 5.</strong> Choose a name for your activity.</p>
|
|
|
|
<p>Enter the activity name, the layout name, and the activity title. Then click
|
|
<strong>Finish</strong>.</p>
|
|
|
|
|
|
<h3 id="Step5DevelopYourApp">Step 5: Develop Your App</h2>
|
|
|
|
<p>Android Studio creates the default structure for your project and opens the development
|
|
environment. If your app supports more than one form factor, Android Studio creates a module folder
|
|
with complete source files for each of them as shown in figure 6.</p>
|
|
|
|
<img src="{@docRoot}images/tools/wizard7.png" alt="" width="750" height="509">
|
|
<p class="img-caption"><strong>Figure 6.</strong> The default project structure for a mobile app.</p>
|
|
|
|
<p>Now you are ready to develop your app. For more information, see the following links:</p>
|
|
|
|
<ul>
|
|
<li><a href="{@docRoot}training/">Training Lessons</a></li>
|
|
<li><a href="{@docRoot}training/building-wearables.html">Building Apps for Wearables</a></li>
|
|
<li><a href="{@docRoot}tv/">Android TV</a></li>
|
|
<li><a href="https://developers.google.com/glass/">Google Glass</a></li>
|
|
</ul>
|
|
|
|
|
|
<h2 id="CreatingAModule">Creating an Android Module</h2>
|
|
|
|
<p>Android application modules contain the <code>src/main/</code>, <code>AndroidManifest.xml</code>,
|
|
<code>build.gradle</code>, build output and other files you need to generate your app's APK files.
|
|
Android Studio provides a <em>New Module Wizard</em> that you can use to quickly create a new
|
|
Android module (or a module from existing code) based on selected application settings, such as
|
|
minimum SDK level and activity template.</p>
|
|
|
|
<p>To create a new module, select <strong>File</strong> > <strong>New</strong> >
|
|
<strong>Module</strong>. Select the desire module type then click Next to enter the basic module
|
|
settings:</p>
|
|
|
|
<ul>
|
|
<li>Enter an <strong>Application Name</strong>. This name is used as the title of your
|
|
application launcher icon when it is installed on a device.</li>
|
|
|
|
<li>Enter a <strong>Module Name</strong>. This text is used as the name of the folder where
|
|
your Java-based activity files are stored.</li>
|
|
|
|
<li>Enter a <strong>Package Name</strong> and <strong>Package Location</strong>. This class
|
|
package namespace creates the initial
|
|
package structure for your applications code files and is added as the
|
|
<a href="{@docRoot}guide/topics/manifest/manifest-element.html#package">{@code package}</a>
|
|
attribute in your application's
|
|
<a href="{@docRoot}guide/topics/manifest/manifest-intro.html">Android manifest file</a>.
|
|
This manifest value serves as the unique identifier for your application app when you
|
|
distribute it to users. The package name must follow the same rules as packages in the Java
|
|
programming language.</li>
|
|
|
|
<li>Select the <strong>Minimum required SDK</strong>.
|
|
This setting indicates the lowest version of the Android platform that your application
|
|
supports for the selected form factor. This value sets the
|
|
<code>minSdkVersion</code> attribute in the build.gradle file.</li>
|
|
|
|
<p class="note"><strong>Note:</strong> You can manually change the minimum and target SDK
|
|
for your module at any time: Double-click the module's build.gradle in the Project Explorer,
|
|
set the <strong>targetSdkVersion</strong> and <em>targetSdkVersion</em> in the
|
|
<em>defaultConfig</em> section.</p>
|
|
|
|
|
|
<li>Select a <strong>Target SDK</strong>. This setting indicates the highest version of
|
|
Android with which you have tested with your application and sets the
|
|
<a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code
|
|
targetSdkVersion}</a> attribute in your application's' build.gradle file.
|
|
|
|
|
|
<li>Select a <strong>Compile With</strong> API version. This setting specifies what version
|
|
of the SDK to compile your project against. We strongly recommend using the most recent
|
|
version of the API.</li>
|
|
|
|
<li>Select a <strong>Language Level</strong> API version. This setting specifies what version
|
|
of the SDK to compile your project against. We strongly recommend using the most recent
|
|
version of the API.</li>
|
|
|
|
<li>Select a <strong>Theme</strong>. This setting specifies which standard Android
|
|
<a href="{@docRoot}design/style/themes.html">visual style</a> is applied to your
|
|
application. Select activity template. For more information about Android code templates, see
|
|
<a href="{@docRoot}tools/projects/templates.html">Using Code Templates</a>Leave the <strong>
|
|
Create activity</strong> option checked so you can start your
|
|
application with some essential components. </li>
|
|
|
|
<li>Click the check box for the required Support Libraries then click <strong>Next</strong>.</li>
|
|
|
|
<li>In the <strong>Configure Launcher Icon</strong> page, create an icon and options, then click
|
|
<strong>Next</strong>.</li>
|
|
|
|
<li>In the <strong>Create Activity</strong> page, select activity template then click
|
|
<strong>Next</strong>. For more information about Android code templates, see
|
|
<a href="{@docRoot}tools/projects/templates.html">Using Code Templates</a>.
|
|
</li>
|
|
|
|
<li>Review the new module settings then click <strong>Finish</strong>.</li>
|
|
|
|
</ul>
|
|
|
|
<p>The wizard creates a new Android application module according to the options you have chosen.</p>
|
|
|
|
|
|
|
|
<h2 id="SettingUpLibraryModule">Setting up a Library Module</h2>
|
|
|
|
<p>A library module is a standard Android module, so you can create a new one in the same way
|
|
as you would a new application module, using the New Module wizard and selecting <em>Android
|
|
Library</em> as the module type. The created library module will appear in your project view
|
|
along with the other modules. </p>
|
|
|
|
<p> You can easily change an existing application module to a library module by changing the
|
|
plugin assignment in the <strong>build.gradle</strong> file to <em>com.android.library</em>.</p>
|
|
|
|
<pre>
|
|
apply plugin: 'com.android.application'
|
|
|
|
android {...}
|
|
</pre>
|
|
|
|
<pre>
|
|
apply plugin: 'com.android.library'
|
|
|
|
android {...}
|
|
</pre>
|
|
|
|
|
|
<h3>Adding a dependency on a library module</h3>
|
|
|
|
<p>The library dependency can be declared in the module's manifest file or in the
|
|
<strong<build.gradle</strong> file. </p>
|
|
|
|
<p>A library modules's manifest file must declare all of the shared components that it includes,
|
|
just as would a standard Android application. For more information, see the documentation for
|
|
<a href="{@docRoot}guide/topics/manifest/manifest-intro.html">AndroidManifest.xml</a>.</p>
|
|
|
|
<p>For example, the <a href=
|
|
"{@docRoot}resources/samples/TicTacToeLib/AndroidManifest.html">TicTacToeLib</a> example library
|
|
project declares the activity <code>GameActivity</code>:</p>
|
|
<pre>
|
|
<manifest>
|
|
...
|
|
<application>
|
|
...
|
|
<activity android:name="GameActivity" />
|
|
...
|
|
</application>
|
|
</manifest>
|
|
</pre>
|
|
|
|
|
|
<p>To add the dependency declaration to the build file, edit the build file for the <code>app</code>
|
|
module (<code>app/build.gradle</code>) and add a dependency on the <code>lib</code> module:</p>
|
|
|
|
<pre>
|
|
...
|
|
dependencies {
|
|
...
|
|
compile project(":lib")
|
|
}
|
|
</pre>
|
|
|
|
<p>In this example, the <code>lib</code> module can still be built and tested independently, and
|
|
the build system creates an AAR package for it that you could reuse in other projects.</p>
|
|
|
|
<p class="note"><strong>Note:</strong> The library settings in the <code>app/build.gradle</code>
|
|
file will override any shared library resources declared in the manifest file.</p>
|
|
|
|
|
|
<h2 id="ReferencingLibraryModule">Referencing a library module</h2>
|
|
|
|
<p>If you are developing an application and want to include the shared code or resources from a
|
|
library module, you can also do so easily by adding a reference to the library module in the
|
|
module's dependency page.</p>
|
|
|
|
<p>To add a reference to a library module, follow these steps:</p>
|
|
|
|
<ol>
|
|
<li>Make sure that both the module library and the application module that depends on it are
|
|
in your project. If one of the modules is missing, import it into your project.</li>
|
|
|
|
<li>In the project view, right-click the dependent module and select
|
|
<strong>Open</strong> > <strong>Module Settings</strong>.</li>
|
|
|
|
<li>Right-click the plus icon to add a new dependencies.
|
|
<p>If you are adding references to multiple libraries, you can set their relative
|
|
priority (and merge order) by selecting a library and using the <strong>Up</strong> and
|
|
<strong>Down</strong> controls. The tools merge the referenced libraries with your application
|
|
starting from lowest priority (bottom of the list) to highest (top of the list). If more than one
|
|
library defines the same resource ID, the tools select the resource from the library with higher
|
|
priority. The application itself has highest priority and its resources are always used in
|
|
preference to identical resource IDs defined in libraries.</p>
|
|
</li>
|
|
|
|
<li>Use the <strong>Scope</strong> drop-down to select how the dependency will be applied.</li>
|
|
|
|
<li>Click <strong>Apply</strong> to create the dependency and <strong>OK</strong> to close the
|
|
<strong>Project Structure</strong> window.</li>
|
|
</ol>
|
|
|
|
<p>Android Studio rebuilds the module, including the contents of the library module the next time
|
|
the project or module is built.</p>
|
|
|
|
|
|
|
|
<h3>Declaring library components in the manifest file</h3>
|
|
|
|
<p>In the manifest file of the application module, you must add declarations of all components
|
|
that the application will use that are imported from a library module. For example, you must
|
|
declare any <code><activity></code>, <code><service></code>,
|
|
<code><receiver></code>, <code><provider></code>, and so on, as well as
|
|
<code><permission></code>, <code><uses-library></code>, and similar elements.</p>
|
|
|
|
<p>Declarations should reference the library components by their fully-qualified package names,
|
|
where appropriate.</p>
|
|
|
|
<p>For example, the <a href=
|
|
"{@docRoot}resources/samples/TicTacToeMain/AndroidManifest.html">TicTacToeMain</a> example
|
|
application declares the library activity <code>GameActivity</code> like this:</p>
|
|
<pre>
|
|
<manifest>
|
|
...
|
|
<application>
|
|
...
|
|
<activity android:name="com.example.android.tictactoe.library.GameActivity" />
|
|
...
|
|
</application>
|
|
</manifest>
|
|
</pre>
|
|
|
|
<p>For more information about the manifest file, see the documentation for <a href=
|
|
"{@docRoot}guide/topics/manifest/manifest-intro.html">AndroidManifest.xml</a>.</p>
|
|
|
|
|
|
<h2 id="ProjectView">Using the Android Project View</h2>
|
|
|
|
|
|
<p>The Android project view in Android Studio shows a flattened version of your project's structure
|
|
that provides quick access to the key source files of Android projects and helps you work with
|
|
the new <a href="{@docRoot}sdk/installing/studio-build.html">Gradle-based build system</a>. The
|
|
Android project view:</p>
|
|
|
|
<ul>
|
|
<li>Groups the build files for all modules at the top level of the project hierarchy.</li>
|
|
<li>Shows the most important source directories at the top level of the module hierarchy.</li>
|
|
<li>Groups all the manifest files for each module.</li>
|
|
<li>Shows resource files from all Gradle source sets.</li>
|
|
<li>Groups resource files for different locales, orientations, and screen types in a single group
|
|
per resource type.</li>
|
|
</ul>
|
|
|
|
|
|
|
|
<h2 id="enable-view">Use the Android Project View</h2>
|
|
|
|
<p>The <em>Android</em> project view is enabled by default and shows all the build files at
|
|
the top level of the project hierarchy under <strong>Gradle Scripts</strong>. The project module
|
|
appears as a folder at the top level of the project hierarchy and contains these three elements
|
|
at the top level:</p>
|
|
|
|
<ul>
|
|
<li><code>manifests/</code> - Manifest files for the module.</li>
|
|
<li><code>java/</code> - Source files for the module.</li>
|
|
<li><code>res/</code> - Resource files for the module.</li>
|
|
</ul>
|
|
|
|
<p>Notice how the Android project view groups all instances of the
|
|
<code>ic_launcher.png</code> resource for different screen densities under the same element.</p>
|
|
|
|
<p class="note"><strong>Note:</strong> The Android project view shows a hierarchy that helps you
|
|
work with Android projects by providing a flattened structure that highlights the most commonly
|
|
used files while developing Android applications. However, the project structure on disk differs
|
|
from this representation and maintains the traditional project structure.</p>
|
|
|
|
<img src="{@docRoot}images/tools/projectview-p1.png" alt="" style="width:240px" "/>
|
|
|
|
<img src="{@docRoot}images/tools/projectview-p2.png" alt="" style="width:240px" " />
|
|
<p class="img-caption"><strong>Figure 10:</strong> Android and Traditional project view </p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|