| page.title=Publishing Overview |
| @jd:body |
| |
| <div id="qv-wrapper"> |
| <div id="qv"> |
| <h2>Quickview</h2> |
| <ul> |
| <li>Learn how to publish Android apps.</li> |
| <li>Find out how to prepare apps for release.</li> |
| <li>Learn how to release apps to users.</li> |
| </ul> |
| <h2>In this document</h2> |
| <ol> |
| <li><a href="#publishing-prepare">Preparing Your Application for Release</a></li> |
| <li><a href="#publishing-release">Releasing Your Application to Users</a> |
| <ol> |
| <li><a href="#publishing-market">Releasing on Google Play</a></li> |
| <li><a href="#publishing-website">Releasing on your own website</a></li> |
| <li><a href="#publishing-email">Releasing through email</a></li> |
| </ol> |
| </ol> |
| <h2>See also</h2> |
| <ol> |
| <li><a href="{@docRoot}guide/publishing/preparing.html">Preparing for |
| Release</a></li> |
| <li><a href="{@docRoot}guide/publishing/publishing.html">Publishing on Google Play</a></li> |
| </ol> |
| </div> |
| </div> |
| |
| <p>Publishing is the process that makes your Android applications available to users. When you |
| publish an Android application you perform two main tasks:</p> |
| |
| <ul> |
| <li>You prepare the application for release. |
| <p>During the preparation step you build a release version of your application, which users can |
| download and install on their Android-powered devices.</p> |
| </li> |
| <li>You release the application to users. |
| <p>During the release step you publicize, sell, and distribute the release version of your |
| application to users.</p> |
| </li> |
| </ul> |
| |
| <p>Usually, you release your application through an application marketplace, such as Google Play. |
| However, you can also release applications by sending them directly to users or by letting users |
| download them from your own website.</p> |
| |
| <p>Figure 1 shows how the publishing process fits into the overall Android <a |
| href="{@docRoot}guide/developing/index.html">application development process</a>. |
| The publishing process is typically performed after you finish testing your application in a debug |
| environment. Also, as a best practice, your application should meet all of your release criteria for |
| functionality, performance, and stability before you begin the publishing process.</p> |
| |
| <img src="{@docRoot}images/publishing/publishing_overview.png" alt="Shows where the publishing |
| process fits into the overall development process" height="86" id="figure1" /> |
| <p class="img-caption"> |
| <strong>Figure 1.</strong> Publishing is the last phase of the Android <a |
| href="{@docRoot}guide/developing/index.html">application development process</a>. |
| </p> |
| |
| <h2 id="publishing-prepare">Preparing Your Application for Release</h2> |
| |
| <p>Preparing your application for release is a multi-step process that involves the following |
| tasks:</p> |
| |
| <ul> |
| |
| <li>Configuring your application for release. |
| <p>At a minimum you need to remove {@link android.util.Log} calls and remove the |
| <a href="{@docRoot}guide/topics/manifest/application-element.html#debug">android:debuggable</a> |
| attribute from your manifest file. You should also provide values for the |
| <code>android:versionCode</code> and <code>android:versionName</code> attributes, which are |
| located in the |
| <a href="{@docRoot}guide/topics/manifest/manifest-element.html"><manifest></a> |
| element. You may also have to configure several other settings to meet Google Play |
| requirements or accomodate whatever method you're using to release your application.</p> |
| </li> |
| <li>Building and signing a release version of your application. |
| <p>The Android Development Tools (ADT) plugin and the Ant build script that are provided |
| with the Android SDK tools provide everything you need to build and sign a release version of |
| your application.</p> |
| </li> |
| <li>Testing the release version of your application. |
| <p>Before you distribute your application, you should thoroughly test the release version on at |
| least one target handset device and one target tablet device.</p> |
| </li> |
| <li>Updating application resources for release. |
| <p>You need to be sure that all application resources such as multimedia files and graphics |
| are updated and included with your application or staged on the proper production servers.</p> |
| </li> |
| <li>Preparing remote servers and services that your application depends on. |
| <p>If your application depends on external servers or services, you need to be sure they |
| are secure and production ready.</p> |
| </li> |
| </ul> |
| |
| <p>You may have to perform several other tasks as part of the preparation process. For example, you |
| will need to get a private key for signing your application, and you may need to get a Maps API |
| release key if you are using the <a |
| href="http://code.google.com/android/add-ons/google-apis/maps-overview.html">Google Maps external |
| library</a>. You will also need to create an icon for your application, and you may want to prepare |
| an End User License Agreement (EULA) to protect your person, organization, and intellectual |
| property.</p> |
| |
| <p>When you are finished preparing your application for release you will have a signed |
| <code>.apk</code> file that you can distribute to users.</p> |
| |
| <p>To learn how to prepare your application for release, see <a |
| href="{@docRoot}guide/publishing/preparing.html">Preparing for Release</a> in the Dev Guide. This |
| topic provides step-by-step instructions for configuring and building a release version of your |
| application.</p> |
| |
| <h2 id="publishing-release">Releasing Your Application to Users</h2> |
| |
| <p>You can release your Android applications several ways. Usually, you release applications |
| through an application marketplace, such as Google Play, but you can also release applications |
| on your own website or by sending an application directly to a user. Google Play is the |
| recommended marketplace for Android applications and is particularly useful if you want to |
| distribute your applications to a large global audience. The other two release methods—server |
| distribution and email distribution—are useful if you are releasing an application to a small |
| group of users (for example, a work group in an enterprise environment), or if you do not want to |
| make your application available to the general public.</p> |
| |
| <h3 id="publishing-market">Releasing Your Applications on Google Play</h3> |
| |
| <p>Google Play is a robust publishing platform that helps you publicize, sell, and distribute |
| your Android applications to users around the world. When you release your applications through |
| Google Play you have access to a suite of developer tools that let you analyze your sales, |
| identify market trends, and control who your applications are being distributed to. You also have |
| access to several revenue-enhancing features that are not available anywhere else, such as <a |
| href="{@docRoot}guide/market/billing/index.html">in-app billing</a> and <a |
| href="{@docRoot}guide/market/licensing.html">application licensing</a>. This rich array of tools |
| and features, coupled with numerous end-user community features, makes Google Play the premier |
| marketplace for selling and buying Android applications.</p> |
| |
| <p>Releasing your application on Google Play is a simple process that involves three basic |
| steps:</p> |
| |
| <div class="figure" style="width:275px"> |
| <img src="{@docRoot}images/publishing/publishing_unknown_sources.png" |
| alt="Screenshot showing the graphical user interface element that allows unknown sources |
| to be installed" /> |
| <p class="img-caption"> |
| <strong>Figure 2.</strong> The <strong>Unknown sources</strong> setting lets you install |
| applications that are not published on Google Play . |
| </p> |
| </div> |
| |
| <ul> |
| <li>Preparing promotional materials. |
| <p>To fully leverage the marketing and publicity capabilities of Google Play, you need to |
| create promotional materials for your application, such as screenshots, videos, graphics, and |
| promotional text.</p> |
| </li> |
| <li>Configuring options and uploading assets. |
| <p>Google Play lets you target your application to a worldwide pool of users and devices. |
| By configuring various Google Play settings, you can choose the countries you want to |
| reach, the listing languages you want to use, and the price you want to charge in each |
| country. You can also configure listing details such as the application type, category, and |
| content rating. When you are done configuring options you can upload your promotional materials |
| and your application as a draft (unpublished) application.</p> |
| </li> |
| <li>Publishing the release version of your application. |
| <p>If you are satisfied that your publishing settings are correctly configured and your |
| uploaded application is ready to be released to the public, you can simply click |
| <strong>Publish</strong > in the developer console and within minutes your application will be |
| live and available for download around the world.</p> |
| </li> |
| </ul> |
| |
| <p>For information about Google Play, see <a |
| href="{@docRoot}guide/publishing/publishing.html#market">Publishing on Google Play</a>. This |
| topic provides an introduction to Google Play features and provides a step-by-step guide for |
| distributing your applications on Google Play.</p> |
| |
| <h3 id="publishing-website">Releasing your application on your own website</h3> |
| |
| <p>If you do not want to release your application on an application marketplace like Google Play, |
| you can release your application by making it available for download on your own website or server. |
| To do this, you must first prepare your application for release (that is, you must build it for |
| release and sign it). Then all you need to do is host the release-ready application on your website |
| and provide a download link for the application. When users browse to your website with their |
| Android-powered devices and download your application, the Android system will automatically start |
| installing the application on the device. However, the installation process will start automatically |
| only if the user has configured their device to allow the installation of non-Google Play |
| applications.</p> |
| |
| <div class="figure" style="width:275px"> |
| <img src="{@docRoot}images/publishing/publishing_via_email.png" |
| alt="Screenshot showing the graphical user interface users see when you send them an app" |
| height="453" /> |
| <p class="img-caption"> |
| <strong>Figure 3.</strong> Users can simply click <strong>Install</strong> when you send them |
| an application via email. |
| </p> |
| </div> |
| |
| <p>By default, Android-powered devices allow users to install applications only if the applications |
| have been downloaded from Google Play. To allow the installation of applications from other |
| sources, users need to enable the <strong>Unknown sources</strong> setting on their devices, and |
| they need to make this configuration change before they download your application to their |
| device (see figure 2).</p> |
| |
| <p class="note"><strong>Note:</strong> Some network providers do not allow users to install |
| applications from unknown sources.</p> |
| |
| <p>Although it is relatively easy to release your application on your own website, it can be |
| inefficient and cumbersome. For example, if you want to monetize your application you will |
| have to process and track all financial transactions yourself and you will not be able to use |
| Google Play's in-app billing feature to sell in-app products. In addition, you will not be |
| able to use the licensing feature to help prevent unauthorized installation and use of your |
| application.</p> |
| |
| <h3 id="publishing-email">Releasing your application through email</h3> |
| |
| <p>The easiest and quickest way to release your application is to send it to a user through |
| email. To do this, you prepare your application for release and then attach it to an email |
| and send it to a user. When the user opens your email message on their Android-powered device |
| the Android system will recognize the <code>.apk</code> and display an <strong>Install Now</strong> |
| button in the email message (see figure 3). Users can install your application by touching the |
| button.</p> |
| |
| <p class="note"><strong>Note:</strong> The <strong>Install Now</strong> button appears only if a |
| user has configured their device to allow the installation of non-Google Play applications and |
| they open your email with the native Gmail application.</p> |
| |
| <p>Releasing applications through email is convenient if you are sending your application to |
| only a few trusted users, but it provides few protections from piracy and unauthorized |
| distribution; that is, anyone you send your application to can simply forward it to someone else. |
| else. |