Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8371632b authored by Rich Slogar's avatar Rich Slogar
Browse files

docs: Studio 1.3 new install and feature sections

Change-Id: I1bf6d1fa60b01b404a01cc3b5f45753a764d6f31
parent 761b4a7d
Loading
Loading
Loading
Loading
+710 B
Loading image diff...
−36.9 KiB
Loading image diff...
+17 −12
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ page.title=Android Studio Tips and Tricks

    <h2>In this document</h2>
    <ol>
      <li><a href="#productivity-features">Productivity Features</a></li>
      <li><a href="#productivity-features">Productivity Shortcuts</a></li>
      <li><a href="#intellij">Working with IntelliJ</a></li>
      <li><a href="#key-commands">Key Commands</a></li>
    </ol>
@@ -26,7 +26,7 @@ provides some tips to help you get started with some of the most common tasks an
enhancements. </p>


<h2 id="productivity-features">Productivity Features</h2>
<h2 id="productivity-features">Productivity Shortcuts</h2>

<p>Android Studio includes a number of features to help you be more productive in your coding.
This section notes a few of the key features to help you work quickly and efficiently.
@@ -48,6 +48,18 @@ the bitmap in the debugger. </p>
<p class="img-caption"><strong>Figure 1.</strong> Bitmap Rendering</p>


<h3>Creating new files</h3>
<p>You can quickly add new code and resource files by clicking the appropriate directory in the
<strong>Project</strong> pane and pressing <code>ALT + INSERT</code> on Windows and Linux or
<code>COMMAND + N</code> on Mac. Based on the type of directory selected, Android Studio
offers to create the appropriate file type.</p>

<p>For example, if you select a layout directory, press <code>ALT + INSERT</code> on Windows,
and select <strong>Layout resource file</strong>, a dialog opens so you can name the file
(you can exclude the {@code .xml} suffix) and choose a root view element. The editor then
switches to the layout design editor so you can begin designing your layout.</p>


<h3>Output window message filtering</h3>
<p>When checking build results, you can filter messages by <em>message type</em> to quickly
locate messages of interest.</p>
@@ -111,8 +123,8 @@ a class, method, or field from a library for which you do not have source file a
<h3>Debugging and performance enhancements</h3>
<p>Android Studio offers debugging and performance enhancements such as:</p>
<ul>
  <li>Auto detect an expanded set of code styles. To modify the current code style, choose
   <strong>File &gt; Settings &gt; Code Styles</strong>.  </li>
  <li>Custom keymaps. To modify the current keymap, choose
   <strong>File &gt; Settings &gt; Keymap</strong>.  </li>
  <li>Support for high density (Retina) displays on Windows and Linux.  </li>
  <li>Scratch files for quick prototyping without creating any project files.
   <p>Choose <strong>Tools &gt; New Scratch File</strong> to open a scratch file to quickly
@@ -188,13 +200,6 @@ attribute <em>?android:textAppearanceLarge</em>, you will see the theme inherita
resolved values for the various attributes that are pulled in.</p>


<h3>New Allocation Tracker integration in the Android/DDMS window</h3>
<p>You can now inspect theme attributes using <strong> View > Quick Documentation
</strong> <code>F1</code>, see the theme inheritance hierarchy, and resolved values for the
various attributes.</p>
<img src="{@docRoot}images/tools/studio-allocationtracker.png" style="width:300px" />
<p class="img-caption"><strong>Figure 4.</strong> Allocation Tracker</p>


<h3 id="key-commands">Keyboard Commands</h3>

+69 −0
Original line number Diff line number Diff line
@@ -198,6 +198,75 @@ settings from the Android SDK installation. Android Studio adds the module-speci
<code>proguard-rules.pro</code> at the root of the module, where you can add custom ProGuard
rules.</p>



<h3>Application ID for package identification </h3>
<p>With the Android build system, the <em>applicationId</em> attribute is used to
uniquely identify application packages for publishing. The application ID is set in the
<em>android</em> section of the <code>build.gradle</code> file.
</p>

    <pre>
    apply plugin: 'com.android.application'

    android {
        compileSdkVersion 19
        buildToolsVersion "19.1"

    defaultConfig {
        <strong>applicationId "com.example.my.app"</strong>
        minSdkVersion 15
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    ...
    </pre>

<p class="note"><strong>Note:</strong> The <em>applicationId</em> is specified only in your
{@code build.gradle} file, and not in the AndroidManifest.xml file.</p>

<p>When using build variants, the build system enables you to uniquely identify different
packages for each product flavors and build types. The application ID in the build type is added as
a suffix to those specified for the product flavors. </p>

   <pre>
   productFlavors {
        pro {
            applicationId = "com.example.my.pkg.pro"
        }
        free {
            applicationId = "com.example.my.pkg.free"
        }
    }

    buildTypes {
        debug {
            applicationIdSuffix ".debug"
        }
    }
    ....
   </pre>

<p>The package name must still be specified in the manifest file. It is used in your source code
to refer to your R class and to resolve any relative activity/service registrations. </p>

   <pre>
   <?xml version="1.0" encoding="utf-8"?>
   <manifest xmlns:android="http://schemas.android.com/apk/res/android"
   <strong>package="com.example.app"</strong>>
   </pre>

<p class="note"><strong>Note:</strong> If you have multiple manifests (for example, a product
flavor specific manifest and a build type manifest), the package name is optional in those manifests.
If it is specified in those manifests, the package name must be identical to the package name
specified in the manifest in the <code>src/main/</code> folder. </p>

<p>For more information about the build files and process, see
<a href="{@docRoot}sdk/installing/studio-build.html">Build System Overview</a>.</p>



<h3 id="configureSigning">Configure signing settings</h3>

<p>The debug and the release versions of the app differ on whether the application can be
+6 −317
Original line number Diff line number Diff line
@@ -12,9 +12,6 @@ page.tags=studio,sdk,tools,firstapp
      <li><a href="#project-structure">Project and File Structure</a></li>
      <li><a href="#build-system">Android Build System</a></li>
      <li><a href="#debug-perf">Debug and Performance</a></li>
      <li><a href="#install-updates">Installation, Setup, and Update Management</a></li>
      <li><a href="#proxy">HTTP Proxy Settings</a></li>
      <li><a href="#other">Other Highlights</a></li>


    </ol>
@@ -46,7 +43,6 @@ Android Studio offers:</p>
  <li>And much more</li>
</ul>

<p><b><a href="{@docRoot}sdk/index.html">Download Android Studio now</a></b>. </p>

<p>If you're new to Android Studio or the IntelliJ IDEA interface, this
page provides an introduction to some key Android
@@ -141,22 +137,7 @@ and <a href="{@docRoot}tools/projects/index.html">Managing Projects</a>.</p>



<h3>Creating new files</h3>
<p>You can quickly add new code and resource files by clicking the appropriate directory in the
<strong>Project</strong> pane and pressing <code>ALT + INSERT</code> on Windows and Linux or
<code>COMMAND + N</code> on Mac. Based on the type of directory selected, Android Studio
offers to create the appropriate file type.</p>

<p>For example, if you select a layout directory, press <code>ALT + INSERT</code> on Windows,
and select <strong>Layout resource file</strong>, a dialog opens so you can name the file
(you can exclude the {@code .xml} suffix) and choose a root view element. The editor then
switches to the layout design editor so you can begin designing your layout.</p>



<h2 id="build-system">Android Build System</h2>

<h3>Android Build System</h3>
<p>The Android build system is the toolkit you use to build, test, run and package
your apps. This build system replaces the Ant system used with Eclipse ADT. It can run as an
integrated tool from the Android Studio menu and independently from the command line. You can use
@@ -176,76 +157,11 @@ To configure custom build settings in an Android Studio project, see
<a href="{@docRoot}tools/building/configuring-gradle.html">Configuring Gradle Builds</a>.</p>


<h3 id="app-id">Application ID for package identification </h3>
<p>With the Android build system, the <em>applicationId</em> attribute is used to
uniquely identify application packages for publishing. The application ID is set in the
<em>android</em> section of the <code>build.gradle</code> file.
</p>

    <pre>
    apply plugin: 'com.android.application'

    android {
        compileSdkVersion 19
        buildToolsVersion "19.1"

    defaultConfig {
        <strong>applicationId "com.example.my.app"</strong>
        minSdkVersion 15
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    ...
    </pre>

<p class="note"><strong>Note:</strong> The <em>applicationId</em> is specified only in your
{@code build.gradle} file, and not in the AndroidManifest.xml file.</p>

<p>When using build variants, the build system enables you to uniquely identify different
packages for each product flavors and build types. The application ID in the build type is added as
a suffix to those specified for the product flavors. </p>

   <pre>
   productFlavors {
        pro {
            applicationId = "com.example.my.pkg.pro"
        }
        free {
            applicationId = "com.example.my.pkg.free"
        }
    }

    buildTypes {
        debug {
            applicationIdSuffix ".debug"
        }
    }
    ....
   </pre>

<p>The package name must still be specified in the manifest file. It is used in your source code
to refer to your R class and to resolve any relative activity/service registrations. </p>

   <pre>
   <?xml version="1.0" encoding="utf-8"?>
   <manifest xmlns:android="http://schemas.android.com/apk/res/android"
   <strong>package="com.example.app"</strong>>
   </pre>

<p class="note"><strong>Note:</strong> If you have multiple manifests (for example, a product
flavor specific manifest and a build type manifest), the package name is optional in those manifests.
If it is specified in those manifests, the package name must be identical to the package name
specified in the manifest in the <code>src/main/</code> folder. </p>

<p>For more information about the build files and process, see
<a href="{@docRoot}sdk/installing/studio-build.html">Build System Overview</a>.</p>




<h2 id="debug-perf">Debug and Performance</h2>

<p>Android Studio provides a number of improvements to assist you in debugging and improving the
performance of your code, including an improved virtual device management, inline debugging, and
performance analysis tools.</p>

<h3>Android Virtual Device (AVD) Manager</h3>
<p>AVD Manager has updated screens with links to help you select the most popular device
@@ -350,7 +266,8 @@ android {


<p>You can also manage inspection profiles and configure inspections within Android Studio.
Choose <strong>File &gt; Settings &gt; Project Settings</strong> and expand <strong>Editor</strong>.
Choose <strong>File &gt; Settings &gt;</strong>, expand the <strong>Editor</strong> options,
and select <strong>Inspections</strong>.
The <em>Inspection Configuration</em> page appears with the supported inspections.</p>
<p><img src="{@docRoot}images/tools/studio-inspections-config.png" alt="" /> </p>
<p class="img-caption"><strong>Figure 5.</strong> Configure inspections.</p>
@@ -506,7 +423,7 @@ the device display. </p>

<h3>Log messages</h3>
<p>When you build and run your app with Android Studio, you can view adb and device log messages
(logcat) in the DDMS pane by clicking <strong>Android</strong> at the bottom of the window.</p>
(logcat) by clicking <strong>Android</strong> at the bottom of the window.</p>

<p>If you want to debug your app with the
<a href="{@docRoot}tools/help/monitor.html">Android Debug Monitor</a>, you can launch it by
@@ -520,232 +437,4 @@ controlling device behaviors, and more. It also includes the Hierarchy Viewer to



<h2 id="install-updates">Installation, Setup, and Update Management</h2>

<h3>Android Studio installation and setup wizards</h3>
<p>When you begin the installation process, an installation and setup wizard walks you through
a step-by-step installation and setup process as the wizard checks for system requirements,
such as the Java Development Kit (JDK) and available RAM, and then prompts for optional
installation options, such as the Intel&#174; HAXM emulator accelerator.</p>

<p>During the installation process, a setup wizard walks you through the setup processes as
the wizard updates your system image and emulation requirements, such GPU, and then creates
an optimized default Android Virtual Device (AVD) based on Android 5 (Lollipop) for speedy and
reliable emulation. </p>
<p><img src="{@docRoot}images/tools/studio-setup-wizard.png" /></p>
<p class="img-caption"><strong>Figure 9.</strong> Installation and setup wizard.</p>


<h3>Expanded template and form factor support</h3>
<p>Android Studio supports templates for Google Services and expands the available device
types. </p>

    <h4> Android Wear and TV support</h4>
    <p>For easy cross-platform development, the Project Wizard provides templates for
    creating your apps for Android Wear and TV. </p>
    <p><img src="{@docRoot}images/tools/studio-tvwearsupport.png"  />

      <p class="img-caption"><strong>Figure 10.</strong> Supported form factors.</p>
    <p>During app creation, the Project Wizard also displays an API Level dialog to help you choose
    the best <em>minSdkVersion</em> for your project.</p>


    <h4> Google App Engine integration (Google Cloud Platform/Messaging)</h4>
    <p>Quick cloud integration. Using Google App Engine to connect to the Google cloud
    and create a cloud end-point is as easy as selecting <em>File > New Module > App Engine Java
    Servlet Module</em> and specifying the module, package, and client names. </p>
    <p><img src="{@docRoot}images/tools/studio-cloudmodule.png" /></p>
    <p class="img-caption"><strong>Figure 11.</strong> Google App Engine integration.</p>


<h3>Easy access to project and file settings</h3>
<p>Android Studio provides setting dialogs so you can manage the most important project and file
settings from the <strong>File</strong> menus as well as the build and configuration files. For
example, you can use the <strong>File &gt; Project Structure</strong> menu or
the <code>build.gradle</code> file to update your <code>productFlavor</code> settings.
Additional settings from the <strong>File</strong> menus include:
<ul>
 <li>SDK and JDK location </li>
 <li>SDK version </li>
 <li>Gradle and Android Plugin for Gradle versions </li>
 <li>Build tools version </li>
 <li>Multidex setting</li>
 <li>Product flavors </li>
 <li>Build types </li>
 <li>Dependencies </li>
</ul>
</p>



<h3>Update channels</h3>
<p>Android Studio provides four update channels to keep Android Studio up-to-date based on your
code-level preference:
<ul>
  <li><strong>Canary channel</strong>: Canary builds provide bleeding edge releases, updated
  about weekly. While these builds do get tested, they are still subject to bugs, as we want
  people to see what's new as soon as possible. This is not recommended for production.</li>
  <li><strong>Dev channel</strong>: Dev builds are hand-picked older canary builds that survived
  the test of time. They are updated roughly bi-weekly or monthly.</li>
  <li><strong>Beta channel</strong>: Beta builds are used for beta-quality releases before a
  production release.</li>
  <li><strong>Stable channel</strong>: Used for stable, production-ready versions.</li>
</ul>
</p>

<p>By default, Android Studio uses the <em>Stable</em> channel. Use
<strong>File > Settings > Updates</strong> to change your channel setting. </p>



<h2 id="proxy">Proxy Settings</h2>
<p>Proxies serve as intermediary connection points between HTTP clients and web servers that add
security and privacy to internet connections.</p>

<p>To support running Android Studio behind a firewall, set the proxy settings for the
Android Studio IDE and the SDK Manager. Use the Android Studio IDE HTTP Proxy settings page to set
the HTTP proxy settings for Android Studio. The SDK Manager has a separate HTTP Proxy settings
page.</p>

<p>When running the Android Plugin for Gradle from the command line or on machines where
Android Studio is not installed, such as continuous integration servers, set the proxy settings
in the Gradle build file.</p>

<p class="note"><strong>Note:</strong> After the initial installation of the Android Studio bundle,
Android Studio can run with internet access or off-line. However, Android Studio requires an
internet connection for Setup Wizard synchronization, 3rd-party library access, access to remote
repositories, Gradle initialization and synchronization, and Android Studio version updates.</p>


<h3>Setting up the Android Studio Proxy</h3>
<p>Android Studio supports HTTP proxy settings so you can run Android Studio behind a firewall or
secure network. To set the HTTP proxy settings in Android Studio:</p>
<ol>
 <li>From the main menu choose <strong>File &gt; Settings &gt; Appearance & Behavior -- System
 Settings -- HTTP Proxy</strong>.

<li>In Android Studio, open the IDE Settings dialog.
  <ul>
     <li>On Windows and Linux, choose
     <strong>File &gt; Settings &gt; IDE Setting -- HTTP Proxy</strong>. </li>
     <li>On Mac, choose
     <strong>Android Studio &gt; Preferences &gt; IDE Setting -- HTTP Proxy</strong>. </li>
   </ul>
 The HTTP Proxy page appears.</li>
 <li>Select <strong>auto-detection</strong> to use an auto-configuration URL to configure the
 proxy settings or <strong>manual</strong> to enter each of the settings. For a detailed explanation
 of these settings, see
 <a href="https://www.jetbrains.com/idea/help/http-proxy.html">HTTP Proxy</a>. </li>
 <li>Click <strong>Apply</strong> to enable the proxy settings. </li>
</ol>

<h3>Android Plugin for Gradle HTTP proxy settings</h3>
When running the Android Plugin from the command line or on machines where Android Studio is not
installed, set the Android Plugin for Gradle proxy settings in the Gradle build file.</p>

<p>For application-specific HTTP proxy settings, set the proxy settings in the
{@code build.gradle} file as required for each application module.</p>
<pre>
apply plugin: 'com.android.application'

android {
    ...

    defaultConfig {
        ...
        systemProp.http.proxyHost=proxy.company.com
        systemProp.http.proxyPort=443
        systemProp.http.proxyUser=userid
        systemProp.http.proxyPassword=password
        systemProp.http.auth.ntlm.domain=domain
    }
    ...
}
</pre>



<p>For project-wide HTTP proxy settings, set the proxy settings in the
<code>gradle/gradle.properties</code> file. </p>

<pre>
# Project-wide Gradle settings.
...

systemProp.http.proxyHost=proxy.company.com
systemProp.http.proxyPort=443
systemProp.http.proxyUser=username
systemProp.http.proxyPassword=password
systemProp.http.auth.ntlm.domain=domain

systemProp.https.proxyHost=proxy.company.com
systemProp.https.proxyPort=443
systemProp.https.proxyUser=username
systemProp.https.proxyPassword=password
systemProp.https.auth.ntlm.domain=domain

...
</pre>


<p>For information about using Gradle properties for proxy settings, see the
 <a href="http://www.gradle.org/docs/current/userguide/build_environment.html">Gradle User Guide</a>.</p>

<p class="note"><strong>Note:</strong> When using Android Studio, the settings in the Android
Studio IDE HTTP proxy settings page override the HTTP proxy settings in the
<strong>gradle.properties</strong> file.</p>



<h3>SDK Manager HTTP Proxy Settings </h3>
<p>SDK Manager proxy settings enable proxy internet access for Android package and library
updates from SDK Manager packages. </p>

<p>To set the SDK Manager settings for proxy internet access, start the SDK Manager and open the
SDK Manager page. </p>

<ul>
   <li>On Windows, select <strong>Tools &gt; Options</strong> from the menu bar. </li>
   <li>On Mac and Linux, choose <strong>Tools &gt; Options</strong> from the system menu bar. </li>
 </ul>

<p>The Android SDK Manager page appears. Enter the settings and click <strong>Apply</strong>. </p>



<h2 id="other">Other Highlights</h2>

<h3 id="trans-editor"> Translations Editor</h3>
<p>Multi-language support is enhanced with the Translations Editor plugin so you can easily add
a variety of locales to the app's translation file. With
<a href="https://tools.ietf.org/html/bcp47">BCP 47</a> support, the editor combines language and
region codes into a single selection for targeted localizations. Color codes indicate whether a
locale is complete or still missing string translations. </p>

<p>To access the Translations Editor, open a <code>strings.xml</code> file and click the
<strong>Open Editor</strong> link.  </p>

    <img src="{@docRoot}images/tools/studio-translationeditoropen.png" />
    <p class="img-caption"><strong>Figure 12.</strong> Add locales and strings in the
    Translations Editor.</p>


<h3> Editor support for the latest Android APIs</h3>
<p>Android Studio supports the
<a href="{@docRoot}design/material/index.html">Material Design</a></li> themes, widgets, and
graphics, such as shadow layers and API version rendering (showing the layout across different
UI versions). Also, the drawable XML tags and attributes, such as <code>&lt;ripple&gt;</code>
and <code>&lt;animated-selector&gt;</code>, are supported.</p>


<h3 id="git-samples"> Easy access to Android code samples on GitHub</h3>
<p>Clicking <strong>Import Samples</strong> from the <strong>File</strong> menu or <em>Welcome</em>
page provides seamless access to Google code samples on GitHub.</p>
    <p><img src="{@docRoot}images/tools/studio-samples-githubaccess.png" /></p>
    <p class="img-caption"><strong>Figure 13.</strong> Get code samples from GitHub.</p>


    <p><img src="{@docRoot}images/tools/studio-sample-in-editor.png" /></p>
    <p class="img-caption"><strong>Figure 14.</strong> Imported code sample.</p>

Loading