Home | History | Annotate | Download | only in publishing
      1 page.title=Publishing Overview
      2 @jd:body
      3 
      4 <div id="qv-wrapper">
      5 <div id="qv">
      6   <h2>Quickview</h2>
      7   <ul>
      8     <li>Learn how to publish Android apps.</li>
      9     <li>Find out how to prepare apps for release.</li>
     10     <li>Learn how to release apps to users.</li>
     11   </ul>
     12   <h2>In this document</h2>
     13   <ol>
     14     <li><a href="#publishing-prepare">Preparing Your Application for Release</a></li>
     15     <li><a href="#publishing-release">Releasing Your Application to Users</a>
     16     <ol>
     17       <li><a href="#publishing-market">Releasing on Google Play</a></li>
     18       <li><a href="#publishing-website">Releasing on your own website</a></li>
     19       <li><a href="#publishing-email">Releasing through email</a></li>
     20     </ol>
     21   </ol>
     22   <h2>See also</h2>
     23   <ol>
     24     <li><a href="{@docRoot}tools/publishing/preparing.html">Preparing for
     25     Release</a></li>
     26     <li><a href="{@docRoot}tools/publishing/publishing.html">Publishing on Google Play</a></li>
     27   </ol>
     28 </div>
     29 </div>
     30 
     31 <p>Publishing is the process that makes your Android applications available to users. When you
     32 publish an Android application you perform two main tasks:</p>
     33 
     34 <ul>
     35   <li>You prepare the application for release.
     36     <p>During the preparation step you build a release version of your application, which users can
     37       download and install on their Android-powered devices.</p>
     38   </li>
     39   <li>You release the application to users.
     40     <p>During the release step you publicize, sell, and distribute the release version of your
     41       application to users.</p>
     42   </li>
     43 </ul>
     44 
     45 <p>Usually, you release your application through an application marketplace, such as Google Play.
     46 However, you can also release applications by sending them directly to users or by letting users
     47 download them from your own website.</p>
     48 
     49 <p>Figure 1 shows how the publishing process fits into the overall Android <a
     50 href="{@docRoot}tools/workflow/index.html">application development process</a>.
     51 The publishing process is typically performed after you finish testing your application in a debug
     52 environment. Also, as a best practice, your application should meet all of your release criteria for
     53 functionality, performance, and stability before you begin the publishing process.</p>
     54 
     55 <img src="{@docRoot}images/publishing/publishing_overview.png" alt="Shows where the publishing
     56        process fits into the overall development process" height="86" id="figure1" />
     57 <p class="img-caption">
     58   <strong>Figure 1.</strong> Publishing is the last phase of the Android <a
     59 href="{@docRoot}tools/workflow/index.html">application development process</a>.
     60 </p>
     61 
     62 <h2 id="publishing-prepare">Preparing Your Application for Release</h2>
     63 
     64 <p>Preparing your application for release is a multi-step process that involves the following
     65 tasks:</p>
     66 
     67 <ul>
     68 
     69   <li>Configuring your application for release.
     70     <p>At a minimum you need to remove {@link android.util.Log} calls and remove the
     71     <a href="{@docRoot}guide/topics/manifest/application-element.html#debug">android:debuggable</a>
     72     attribute from your manifest file. You should also provide values for the
     73     <code>android:versionCode</code> and <code>android:versionName</code> attributes, which are
     74     located in the
     75     <a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a>
     76     element. You may also have to configure several other settings to meet Google Play
     77     requirements or accomodate whatever method you're using to release your application.</p>
     78   </li>
     79   <li>Building and signing a release version of your application.
     80     <p>The Android Development Tools (ADT) plugin and the Ant build script that are provided
     81     with the Android SDK tools provide everything you need to build and sign a release version of
     82     your application.</p>
     83   </li>
     84   <li>Testing the release version of your application.
     85     <p>Before you distribute your application, you should thoroughly test the release version on at
     86     least one target handset device and one target tablet device.</p>
     87   </li>
     88   <li>Updating application resources for release.
     89     <p>You need to be sure that all application resources such as multimedia files and graphics
     90     are updated and included with your application or staged on the proper production servers.</p>
     91   </li>
     92   <li>Preparing remote servers and services that your application depends on.
     93     <p>If your application depends on external servers or services, you need to be sure they
     94     are secure and production ready.</p>
     95   </li>
     96 </ul>
     97 
     98 <p>You may have to perform several other tasks as part of the preparation process. For example, you
     99 will need to get a private key for signing your application, and you may need to get a Maps API
    100 release key if you are using the <a
    101 href="http://code.google.com/android/add-ons/google-apis/maps-overview.html">Google Maps external
    102 library</a>. You will also need to create an icon for your application, and you may want to prepare
    103 an End User License Agreement (EULA) to protect your person, organization, and intellectual
    104 property.</p>
    105 
    106 <p>When you are finished preparing your application for release you will have a signed
    107 <code>.apk</code> file that you can distribute to users.</p>
    108 
    109 <p>To learn how to prepare your application for release, see <a
    110 href="{@docRoot}tools/publishing/preparing.html">Preparing for Release</a> in the Dev Guide. This
    111 topic provides step-by-step instructions for configuring and building a release version of your
    112 application.</p>
    113 
    114 <h2 id="publishing-release">Releasing Your Application to Users</h2>
    115 
    116 <p>You can release your Android applications several ways. Usually, you release applications
    117 through an application marketplace, such as Google Play, but you can also release applications
    118 on your own website or by sending an application directly to a user. Google Play is the
    119 recommended marketplace for Android applications and is particularly useful if you want to
    120 distribute your applications to a large global audience. The other two release methods&mdash;server
    121 distribution and email distribution&mdash;are useful if you are releasing an application to a small
    122 group of users (for example, a work group in an enterprise environment), or if you do not want to
    123 make your application available to the general public.</p>
    124 
    125 <h3 id="publishing-market">Releasing Your Applications on Google Play</h3>
    126 
    127 <p>Google Play is a robust publishing platform that helps you publicize, sell, and distribute
    128 your Android applications to users around the world. When you release your applications through
    129 Google Play you have access to a suite of developer tools that let you analyze your sales,
    130 identify market trends, and control who your applications are being distributed to. You also have
    131 access to several revenue-enhancing features that are not available anywhere else, such as <a
    132 href="{@docRoot}guide/google/play/billing/index.html">in-app billing</a> and <a
    133 href="{@docRoot}guide/google/play/licensing.html">application licensing</a>. This rich array of tools
    134 and features, coupled with numerous end-user community features, makes Google Play the premier
    135 marketplace for selling and buying Android applications.</p>
    136 
    137 <p>Releasing your application on Google Play is a simple process that involves three basic
    138   steps:</p>
    139 
    140 <div class="figure" style="width:275px">
    141   <img src="{@docRoot}images/publishing/publishing_unknown_sources.png"
    142        alt="Screenshot showing the graphical user interface element that allows unknown sources
    143        to be installed" />
    144   <p class="img-caption">
    145     <strong>Figure 2.</strong> The <strong>Unknown sources</strong> setting lets you install
    146     applications that are not published on Google Play .
    147   </p>
    148 </div>
    149 
    150 <ul>
    151   <li>Preparing promotional materials.
    152     <p>To fully leverage the marketing and publicity capabilities of Google Play, you need to
    153     create promotional materials for your application, such as screenshots, videos, graphics, and
    154     promotional text.</p>
    155   </li>
    156   <li>Configuring options and uploading assets.
    157     <p>Google Play lets you target your application to a worldwide pool of users and devices.
    158     By configuring various Google Play settings, you can choose the countries you want to
    159     reach, the listing languages you want to use, and the price you want to charge in each
    160     country. You can also configure listing details such as the application type, category, and
    161     content rating. When you are done configuring options you can upload your promotional materials
    162     and your application as a draft (unpublished) application.</p>
    163   </li>
    164   <li>Publishing the release version of your application.
    165     <p>If you are satisfied that your publishing settings are correctly configured and your
    166     uploaded application is ready to be released to the public, you can simply click
    167     <strong>Publish</strong > in the developer console and within minutes your application will be
    168     live and available for download around the world.</p>
    169   </li>
    170 </ul>
    171 
    172 <p>For information about Google Play, see <a
    173 href="{@docRoot}tools/publishing/publishing.html#market">Publishing on Google Play</a>. This
    174 topic provides an introduction to Google Play features and provides a step-by-step guide for
    175 distributing your applications on Google Play.</p>
    176 
    177 <h3 id="publishing-website">Releasing your application on your own website</h3>
    178 
    179 <p>If you do not want to release your application on an application marketplace like Google Play,
    180 you can release your application by making it available for download on your own website or server.
    181 To do this, you must first prepare your application for release (that is, you must build it for
    182 release and sign it). Then all you need to do is host the release-ready application on your website
    183 and provide a download link for the application. When users browse to your website with their
    184 Android-powered devices and download your application, the Android system will automatically start
    185 installing the application on the device. However, the installation process will start automatically
    186 only if the user has configured their device to allow the installation of non-Google Play
    187 applications.</p>
    188 
    189 <div class="figure" style="width:275px">
    190   <img src="{@docRoot}images/publishing/publishing_via_email.png"
    191        alt="Screenshot showing the graphical user interface users see when you send them an app"
    192        height="453" />
    193   <p class="img-caption">
    194     <strong>Figure 3.</strong> Users can simply click <strong>Install</strong> when you send them
    195     an application via email.
    196   </p>
    197 </div>
    198 
    199 <p>By default, Android-powered devices allow users to install applications only if the applications
    200 have been downloaded from Google Play. To allow the installation of applications from other
    201 sources, users need to enable the <strong>Unknown sources</strong> setting on their devices, and
    202 they need to make this configuration change before they download your application to their
    203 device (see figure 2).</p>
    204 
    205 <p class="note"><strong>Note:</strong> Some network providers do not allow users to install
    206 applications from unknown sources.</p>
    207 
    208 <p>Although it is relatively easy to release your application on your own website, it can be
    209 inefficient and cumbersome. For example, if you want to monetize your application you will
    210 have to process and track all financial transactions yourself and you will not be able to use
    211 Google Play's in-app billing feature to sell in-app products. In addition, you will not be
    212 able to use the licensing feature to help prevent unauthorized installation and use of your
    213 application.</p>
    214 
    215 <h3 id="publishing-email">Releasing your application through email</h3>
    216 
    217 <p>The easiest and quickest way to release your application is to send it to a user through
    218 email. To do this, you prepare your application for release and then attach it to an email
    219 and send it to a user. When the user opens your email message on their Android-powered device
    220 the Android system will recognize the <code>.apk</code> and display an <strong>Install Now</strong>
    221 button in the email message (see figure 3). Users can install your application by touching the
    222 button.</p>
    223 
    224 <p class="note"><strong>Note:</strong> The <strong>Install Now</strong> button appears only if a
    225 user has configured their device to allow the installation of non-Google Play applications and
    226 they open your email with the native Gmail application.</p>
    227 
    228 <p>Releasing applications through email is convenient if you are sending your application to
    229 only a few trusted users, but it provides few protections from piracy and unauthorized
    230 distribution; that is, anyone you send your application to can simply forward it to someone else.
    231 else.
    232