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