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