| 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> |
| <h2>See also</h2> |
| <ol> |
| <li><a href="{@docRoot}distribute/tools/launch-checklist.html">Publishing on Google Play</a></li> |
| </ol> |
| </div> |
| </div> |
| |
| <p>Publishing is the general 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 <a href="{@docRoot}distribute/googleplay/index.html">Google Play</a>. |
| 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}tools/workflow/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}tools/workflow/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> |
| <p>If you are using Gradle build files, you can use the <em>release</em> build type to set |
| your build settings for the published version of your app. </p> |
| </li> |
| <li>Building and signing a release version of your application. |
| <p>You can use the Gradle build files with the <em>release</em> build type to build and sign a |
| release version of your application. See |
| <a href="{@docRoot}tools/building/building-studio.html">Building and Running from Android |
| Studio</a>.</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}tools/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. |
| |
| <h3 id="publishing-marketplace">Releasing through an App Marketplace</h3> |
| |
| <p>If you want to distribute your apps to the broadest possible audience, releasing through |
| an app marketplace such as Google Play is ideal. </p> |
| |
| <p>Google Play is the premier marketplace for Android apps and is particularly |
| useful if you want to distribute your applications to a large global audience. |
| However, you can distribute your apps through any app marketplace you want or |
| you can use multiple marketplaces.</p> |
| |
| |
| <h4 id="publishing-market">Releasing Your Applications on Google Play</h4> |
| |
| <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 such as <a |
| href="{@docRoot}google/play/billing/index.html">in-app billing</a> and <a |
| href="{@docRoot}google/play/licensing/index.html">application licensing</a>. The 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> |
| |
| <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 complete information, see <a href="{@docRoot}distribute/googleplay/index.html">Google Play</a>.</p> |
| |
| |
| <h3 id="publishing-email">Releasing your application through email</h3> |
| |
| <div class="figure" style="width:246px"> |
| <img src="{@docRoot}images/publishing/publishing_via_email.png" |
| alt="Screenshot showing the graphical user interface users see when you send them an app" |
| style="width:240px;" /> |
| <p class="img-caption"> |
| <strong>Figure 1.</strong> Users can simply click <strong>Install</strong> when you send them |
| an application via email. |
| </p> |
| </div> |
| |
| <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 APK and display an <strong>Install Now</strong> |
| button in the email message (see figure 1). Users can install your application by touching the |
| button.</p> |
| |
| <p class="note"><strong>Note:</strong> The <strong>Install Now</strong> button |
| shown in Figure 1 appears only if a user has configured their device to allow |
| installation from <a href="#unknown-sources">unknown sources</a> and has opened your |
| email with the native Gmail application.</p> |
| |
| <p>Distributing 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.</p> |
| |
| <h2 id="publishing-website">Releasing through a web site</h2> |
| |
| <p>If you do not want to release your app on a marketplace like Google Play, you |
| can make the app available for download on your own website or server, including |
| on a private or enterprise server. To do this, you must first prepare your |
| application for release in the normal way. Then all you need to do is host the |
| release-ready APK file on your website and provide a download link to users. |
| </p> |
| |
| <p>When users browse to the download link from their Android-powered devices, |
| the file is downloaded and Android system automatically starts installing it on |
| the device. However, the installation process will start automatically only if |
| the user has configured their Settings to allow the installation of apps from |
| <a href="#unknown-sources">unknown sources</a>.</p> |
| |
| <p>Although it is relatively easy to release your application on your own |
| website, it can be inefficient. 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 <a |
| href="{@docRoot}google/play/billing/index.html">In-app Billing service</a> |
| to sell in-app products. In addition, you will not be able to use the <a |
| href="{@docRoot}google/play/licensing/index.html">Licensing service</a> to |
| help prevent unauthorized installation and use of your application.</p> |
| |
| |
| <h2 id="unknown-sources">User Opt-In for Apps from Unknown Sources</h2> |
| |
| <div class="figure" style="width:246px;margin-top:0;"> |
| <img src="{@docRoot}images/publishing/publishing_unknown_sources_sm.png" |
| alt="Screenshot showing the setting for accepting download and install of |
| apps from unknown sources." style="width:240px;" /> |
| <p class="img-caption"> |
| <strong>Figure 2.</strong> Users must enable the <strong>Unknown sources</strong> |
| setting before they can install apps not downloaded from Google Play. |
| </p> |
| </div> |
| |
| <p>Android protects users from inadvertent download and install of apps from |
| locations other than Google Play (which is trusted). It blocks such installs |
| until the user opts-in <strong>Unknown sources</strong> in |
| Settings <strong>></strong> Security, shown in Figure 2. To allow |
| the installation of applications from other sources, users need to enable the |
| Unknown sources setting on their devices, and they need to make this |
| configuration change <em>before</em> they download your application to their |
| devices.</p> |
| |
| <p class="note">Note that some network providers do not allow users to install |
| applications from unknown sources.</p> |