Home | History | Annotate | Download | only in workflow
      1 page.title=Introduction
      2 @jd:body
      3 
      4 <p>To develop apps for Android devices, you use a set of tools that are included in the Android SDK.
      5 Once you've downloaded and installed the SDK, you can access these tools right from your Eclipse IDE,
      6 through the ADT plugin, or from the command line. Developing with Eclipse is the preferred method because
      7 it can directly invoke the tools that you need while developing applications.</p>
      8 
      9   <p>However, you may choose to develop with another IDE or a simple text editor and invoke the
     10   tools on the command line or with scripts. This is a less streamlined way to develop because you
     11   will sometimes have to call command line tools manually, but you will have access to the same
     12   number of features that you would have in Eclipse.</p>
     13 
     14 <div class="figure" style="width:461px">
     15   <img src="{@docRoot}images/developing/developing_overview.png"
     16        alt="Development process for Android applications"
     17        height="738" />
     18   <p class="img-caption">
     19     <strong>Figure 1.</strong> The development process for Android applications.
     20   </p>
     21 </div>
     22 
     23 <p>The basic steps for developing applications (with or without Eclipse) are shown in figure 1. The
     24 development steps encompass four development phases, which include:</p>
     25 
     26 <ul>
     27   <li><strong>Setup</strong>
     28     <p>During this phase you install and set up your development environment. You also create
     29       Android Virtual Devices (AVDs) and connect hardware devices on which you can install your
     30       applications.</p>
     31     <p>See <a href="{@docRoot}tools/devices/index.html">Managing Virtual Devices</a>
     32       and <a href="{@docRoot}tools/device.html">Using Hardware Devices</a> for more
     33       information.
     34   </li>
     35   <li><strong>Development</strong>
     36     <p>During this phase you set up and develop your Android project, which contains all of the
     37     source code and resource files for your application. For more information, see
     38     <a href="{@docRoot}tools/projects/index.html">Create an Android project</a>.</p>
     39   </li>
     40   <li><strong>Debugging and Testing</strong>
     41     <p>During this phase you build your project into a debuggable <code>.apk</code> package that you
     42     can install and run on the emulator or an Android-powered device. If you are using Eclipse,
     43     builds are generated each time you project is saved. If you're using another IDE,
     44     you can build your project using Ant and install it on a device using
     45     <a href="{@docRoot}tools/help/adb.html">adb</a>. For more information, see
     46     <a href="{@docRoot}tools/building/index.html">Build and run your application</a>.</p>
     47     <p>Next, you debug your application using a JDWP-compliant debugger along with the debugging
     48     and logging tools that are provided with the Android SDK. Eclipse already comes packaged with
     49     a compatible debugger. For more information see,
     50     <a href="{@docRoot}tools/debugging/index.html">Debug your application with the
     51       SDK debugging and logging tools</a>.</p>
     52     <p>Last, you test your application using various Android SDK testing tools. For more
     53     information, see <a href="{@docRoot}tools/testing/index.html">Test your application
     54     with the Testing and Instrumentation framework</a>.</p>
     55   </li>
     56   <li><strong>Publishing</strong>
     57     <p>During this phase you configure and build your application for release and distribute your
     58       application to users. For more information, see
     59       <a href="{@docRoot}tools/publishing/publishing_overview.html">Publishing Overview</a>.</p>
     60   </li>
     61 </ul>
     62 
     63 <h2 id="EssentialTools">Essential command line tools</h2>
     64 
     65   <p>When developing in IDEs or editors other than Eclipse, be familiar with
     66   all of the tools below, because you will have to run them from the command line.</p>
     67 
     68   <dl>
     69     <dt><a href="{@docRoot}tools/help/android.html">android</a></dt>
     70 
     71     <dd>Create and update Android projects and create, move, and delete AVDs.</dd>
     72 
     73     <dt><a href="{@docRoot}tools/devices/emulator.html">Android Emulator</a></dt>
     74 
     75     <dd>Run your Android applications on an emulated Android platform.</dd>
     76 
     77     <dt><a href="{@docRoot}tools/help/adb.html">Android Debug Bridge</a></dt>
     78 
     79     <dd>Interface with your emulator or connected device (install apps, shell the device, issue
     80     commands, etc.).</dd>
     81   </dl>
     82 
     83   <p>In addition to the above tools that are included with the SDK, you need the following open
     84   source and third-party tools:</p>
     85 
     86   <dl>
     87     <dt>Ant</dt>
     88 
     89     <dd>To compile and build your Android project into an installable .apk file.</dd>
     90 
     91     <dt>Keytool</dt>
     92 
     93     <dd>To generate a keystore and private key, used to sign your .apk file. Keytool is part of the
     94     JDK.</dd>
     95 
     96     <dt>Jarsigner (or similar signing tool)</dt>
     97 
     98     <dd>To sign your .apk file with a private key generated by Keytool. Jarsigner is part of the
     99     JDK.</dd>
    100   </dl>
    101 
    102   <p>If you are using Eclipse and ADT, tools such as <code>adb</code> and <code>android</code>
    103   are automatically called by Eclipse and ADT so you don't have to manually invoke these tools.
    104   You need to be familiar with <code>adb</code>, however, because certain functions are not
    105 accessible from
    106   Eclipse, such as the <code>adb</code> shell commands. You might also need to call Keytool and
    107 Jarsigner to
    108   sign your applications, but you can set up Eclipse to do this automatically as well.</p>
    109 
    110 <p>For more information on the tools provided with the Android SDK, see the
    111   <a href="{@docRoot}tools/index.html">Tools</a> section of the documentation.</p>
    112 
    113 <h2 id="ThirdParty">Other Third-Party Development Tools</h2>
    114 <p>
    115 	The tools described in this section are not developed by the Android SDK team. The Android Dev Guide
    116 	    does not provide documentation for these tools. Please refer to the linked documents in each
    117 	    section for documentation.
    118 </p>
    119 <h3 id="IntelliJ">Developing in IntelliJ IDEA</h3>
    120 <div style="float: right">
    121 <img alt="The IntelliJ graphical user interface" height="500px"
    122 src="{@docRoot}images/developing/intellijidea_android_ide.png"/>
    123 </div>
    124 <p>
    125 	IntelliJ IDEA is a powerful Java IDE from JetBrains that provides
    126 	full-cycle Android development support in both the free Community
    127 	Edition and the Ultimate edition.
    128 </p>
    129 <p>
    130 	The IDE ensures compatibility with the latest Android SDK and offers a
    131 	smart code editor with completion, quick navigation between code and
    132 	resources, a graphical debugger, unit testing support using Android
    133 	Testing Framework, and the ability to run applications in either the
    134 	emulator or a USB-connected device.
    135 </p>
    136 <p>
    137 	<strong>Links:</strong>
    138 </p>
    139 <ul>
    140 	<li>
    141     	<a href="http://www.jetbrains.com/idea">IntelliJ IDEA official website</a>
    142 </li>
    143 	<li>
    144     	<a href="http://www.jetbrains.com/idea/features/google_android.html">Android support in IntelliJ IDEA</a>
    145 </li>
    146 	<li>
    147     	<a href="http://wiki.jetbrains.net/intellij/Android">IntelliJ IDEA Android Tutorials</a>
    148 	</li>
    149 </ul>
    150 
    151