| Scott Main | 50e990c | 2012-06-21 17:14:39 -0700 | [diff] [blame] | 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"><manifest></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 |
| Dirk Dougherty | 2b286bb | 2012-11-29 17:25:09 -0800 | [diff] [blame] | 130 | href="{@docRoot}google/play/billing/index.html">in-app billing</a> and <a |
| 131 | href="{@docRoot}google/play/licensing/index.html">application licensing</a>. The rich array of tools |
| Scott Main | 50e990c | 2012-06-21 17:14:39 -0700 | [diff] [blame] | 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 |
| Dirk Dougherty | 2b286bb | 2012-11-29 17:25:09 -0800 | [diff] [blame] | 210 | href="{@docRoot}google/play/billing/index.html">In-app Billing service</a> |
| Scott Main | 50e990c | 2012-06-21 17:14:39 -0700 | [diff] [blame] | 211 | to sell in-app products. In addition, you will not be able to use the <a |
| Dirk Dougherty | 2b286bb | 2012-11-29 17:25:09 -0800 | [diff] [blame] | 212 | href="{@docRoot}google/play/licensing/index.html">Licensing service</a> to |
| Scott Main | 50e990c | 2012-06-21 17:14:39 -0700 | [diff] [blame] | 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 <strong>></strong> 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> |