summaryrefslogtreecommitdiffstats
path: root/docs/html/guide/publishing/publishing.jd
diff options
context:
space:
mode:
Diffstat (limited to 'docs/html/guide/publishing/publishing.jd')
-rw-r--r--docs/html/guide/publishing/publishing.jd250
1 files changed, 250 insertions, 0 deletions
diff --git a/docs/html/guide/publishing/publishing.jd b/docs/html/guide/publishing/publishing.jd
new file mode 100644
index 0000000..1a022dd
--- /dev/null
+++ b/docs/html/guide/publishing/publishing.jd
@@ -0,0 +1,250 @@
+page.title=Publishing Your Applications
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+
+<h2>Publishing quickview</h2>
+
+<ul>
+<li>You can publish your application using a hosted service such as Android Market or through a web server.</li>
+<li>Before you publish, make sure you have prepared your application properly.</li>
+<li>Android Market makes it easy for users of Android-powered devices to see and download your application.</li>
+</ul>
+
+
+<h2>In this document</h2>
+
+<ol>
+<li><a href="#overview">Publishing on Android Market</a>
+ <ol>
+ <li><a href="#marketupgrade">Publishing Upgrades on Android Market</a>
+ <li><a href="#marketintent">Using Intents to Launch the Market Application</a></li>
+ </ol></li>
+
+<li><span style="color:ccc">Publishing on Other Hosted Services</a></li>
+<li><span style="color:ccc">Publishing through a Web Server</a></li>
+
+</ol>
+
+<h2>See also</h2>
+
+<ol>
+<li><a href="{@docRoot}guide/publishing/preparing.html">Preparing to Publish</a></li>
+</ol>
+
+<div id="qv-extra">
+ <img id="rule" src="{@docRoot}assets/images/grad-rule-qv.png">
+ <div id="qv-sub-rule">
+ <img src="{@docRoot}assets/images/icon_market.jpg" style="float:left;margin:0;padding:0;">
+ <p style="color:#669999;">Interested in publishing your app on Android Market?</p>
+ <a id="publish-link" href="http://market.android.com/publish">Go to Android Market &raquo;</a>
+ </div>
+</div>
+
+</div>
+</div>
+
+<p>Publishing an application means testing it, packaging it appropriately, and making
+it available to users of Android-powered mobile devices for download or sideload.</p>
+
+<p>If you've followed the steps outlined in
+<a href="{@docRoot}guide/publishing/preparing.html">Preparing to
+Publish Your Applications</a>, the result of the process is a compiled .apk that
+is signed with your release private key. Inside the .apk, the application is
+properly versioned and any MapView elements reference a Maps API Key that you
+obtained by registering the MD5 fingerprint of the same certificate used to sign
+the .apk. Your application is now ready for publishing. </p>
+
+<p>The sections below provide information about publishing your Android
+application to mobile device users.</p>
+
+<h2 id="market">Publishing on Android Market</h2>
+
+<p>Android Market is a hosted service that makes it easy for users to find and
+download Android applications to their Android-powered devices, and makes it
+easy for developers to publish their applications to Android users.</p>
+
+<p>To publish your application on Android Market, you first need to register
+with the service using your Google account and agree to the terms of service.
+Once you are registered, you can upload your application to the service whenever
+you want, as many times as you want, and then publish it when you are ready.
+Once published, users can see your application, download it, and rate it using
+the Market application installed on their Android-powered devices. </p>
+
+<p>To register as an Android Market developer and get started with publishing,
+visit the Android Market: </p>
+
+<p style="margin-left:3em;"><a
+href="http://market.android.com/publish">http://market.android.com/publish</a>
+</p>
+
+<p>If you plan to publish your application on Android Market, you must make sure
+that it meets the requirements listed below, which are enforced by the Market
+server when you upload the application.</p>
+
+<div class="special">
+<p>Requirements enforced by the Android Market server</p>
+<ol>
+<li>Your application must be signed with a cryptographic private key whose
+validity period ends after <span style="color:red">22 October 2033</span>. </li>
+<li>Your application must define both an <code>android:versionCode</code> and an
+<code>android:versionName</code> attribute in the <code>&lt;manifest&gt;</code>
+element of its manifest. The server uses the <code>android:versionCode</code> as
+the basis for identifying the application internally and handling upgrades, and
+it displays the <code>android:versionName</code> to users as the application's
+version.</li>
+<li>Your application must define both an <code>android:icon</code> and an
+<code>android:label</code> attribute in the <code>&lt;application&gt;</code>
+element of its manifest.</li>
+</ol>
+</div>
+
+<h3 id="marketupgrade">Publishing Upgrades on Android Market</h3>
+
+<p>The beta version of Android Market does not support notifying your users when
+you publish a new version of your application. This capability will be
+added soon, but currently the user must independently initiate download of an
+upgraded application. When you publish an upgrade, you can assist users by
+notifying them that the upgrade is available and giving them a way to download
+the upgraded application from Android Market.</p>
+
+<p>Here is a suggested way of tracking installed application versions and
+notifying users that an upgrade is available:</p>
+
+<ol>
+<li>Have your app occasionally check in with a web-service that you're
+running. This web service should return two values: the latest available
+version number for the application (corresponding to
+<code>android:versionCode</code>) and a URI string that your application
+can later send in an Intent, to launch Market and search for the
+upgraded application for the user.
+
+<p>The URI that your web service returns should be properly formatted to
+search Android Market for your upgraded application. See
+<a href="#marketintent">Using Intents to Launch the Market Application</a>
+for more information. The URI should specify the upgraded
+application's package name as the query parameter, since the package name
+is guaranteed to be unique on Android Market. The URI format for the
+package name search is: </p>
+
+<p><code>http://market.android.com/search?q=pname:&lt;package&gt;</code> or
+<br><code>market://search?q=pname:&lt;package&gt;</code></p>
+
+</li>
+<li>Your application can then compare its own version number against
+that retrieved. If the retrieved value is greater, your application can
+show a dialog informing the user that a new version is available. The
+dialog can offer buttons to begin the download or cancel. </li> <li>If
+the user clicks the button to begin the download, your application can
+call startActivity() using the ACTION_VIEW Intent, passing the URI
+received from your web service. The Intent launches the Market
+application on the device and initiates an immediate search on the
+Android Market site, based on the query parameters in the URI. When the
+result is displayed, the user can view the details of the upgraded
+application and begin the download.
+
+<p>Note that, because the URI string is received from your web
+service and not hard-coded into your application, you can easily change
+the Market launch behaviors whenever needed, without
+having to change your application. </p></li></ol>
+
+<p>For more information about URIs you can pass to the Market application at
+launch, see <a href="#marketintent">Using Intents to Launch the Market
+Application</a>, below.</p>
+
+<h3 id="marketintent">Using Intents to Launch the Market Application on
+a Device</h3>
+
+<p>Android-powered devices include a preinstalled Market application that gives
+users access to the Android Market site. From Market, users can
+browse or search available applications, read ratings and reviews, and
+download/install applications.</p>
+
+<p>You can launch the Market application from another Android
+application by sending an Intent to the system. You might want to do
+this, for example, to help the user locate and download an upgrade to an
+installed application, or to let the user know about related
+applications that are available for download. </p>
+
+<p>To launch Market, you send an ACTION_VIEW Intent, passing a Market-handled
+URI string as the Intent data. In most cases, your application would call
+startActivity() to send the ACTION_VIEW Intent with the Market-handled URI.</p>
+
+<p>The URI that you supply with the Intent lets the system route the intent
+properly and also expresses the type of action that you want Market to perform
+after launch. Currently, you can have Market initiate a search for applications
+on Android Market, based on query parameters that you provide. For example, you
+can specify URIs to search for applications by:</p>
+
+<ul>
+<li>Package name</li>
+<li>Developer name</li>
+<li>String match across application name, developer name, and
+description, or </li>
+<li>Any combination of the above</li>
+</ul>
+
+<p>Note that the URI queries return results from the public metadata supplied by
+developers in their Android Market profiles or application publishing
+information, but not from the developer's private account or from the
+certificate used to sign the application. </p>
+
+<p>The table below provides a list of URIs and actions currently
+supported by the Market application.</p>
+
+<table>
+<tr>
+<th>For this Result</th>
+<th>Pass this URI with the ACTION_VIEW Intent</th>
+<th>Comments</th>
+</tr>
+
+<!--
+<tr>
+<td>Display the details screen for a specific application, as identified
+by its Market appID string.</td>
+<td><code>http://market.android.com/details?id=&lt;appMarketAppIdString&gt;</code>
+or<br>
+<code>market://details?id=&lt;appMarketUidString&gt;</code></td>
+<td>Note that Market appID is specific to an application
+<em>and</em> its version. That is, an appID query loads the details page
+for a specific version of an application.</td>
+</tr>
+-->
+<tr>
+<td>Search for an application by its fully qualified Java package name and
+display the result.</td>
+<td><code>http://market.android.com/search?q=pname:&lt;package&gt;</code> or<br>
+<code>market://search?q=pname:&lt;package&gt;</code></td>
+<td>Searches only the Java package name of applications. Returns only exact
+matches.</td>
+</tr>
+
+<tr>
+<td>Search for applications by developer name and display the results.</td>
+<td><code>http://market.android.com/search?q=pub:"&lt;Developer&nbsp;Name&gt;"</code>
+or<br> <code>market://search?q=pub:"&lt;Developer Name&gt;"</code></td>
+<td>Searches only the "Developer Name" fields of Market public profiles.
+Returns exact matches only. </td>
+</tr>
+
+<tr>
+<td>Search for applications by substring and display the results.</td>
+<td><code>http://market.android.com/search?q=&lt;substring&gt;</code> or
+<br><code>market://search?q=&lt;substring&gt;</code></td>
+<td>Searches all public fields (application title, developer name, and
+application description) for all applications. Returns exact and partial
+matches.</td>
+</tr>
+
+<tr>
+<td>Search using multiple query parameters and display the results.</td>
+<td>Example:<p><code>http://market.android.com/search?q=world pname:com.android.hello pub:Android</code></p></td>
+<td>Returns a list of applications meeting all the supplied parameters. </td>
+</tr>
+</table>
+
+<p>Note that these URIs work only when passed as intent data &mdash; you
+can't currently load the URIs in a web browser, either on a desktop machine or
+on the device. </p> \ No newline at end of file