diff options
author | Dirk Dougherty <ddougherty@google.com> | 2012-11-29 17:25:09 -0800 |
---|---|---|
committer | Dirk Dougherty <ddougherty@google.com> | 2012-11-29 21:07:41 -0800 |
commit | 2b286bb26b95ac9d4eb35679239ea12d4f63b50b (patch) | |
tree | 0b793476a51edce1679e7a499f40a30f5761af04 | |
parent | 830b23b76676542cbcb5ef3c60c869460d4c5466 (diff) | |
download | frameworks_base-2b286bb26b95ac9d4eb35679239ea12d4f63b50b.zip frameworks_base-2b286bb26b95ac9d4eb35679239ea12d4f63b50b.tar.gz frameworks_base-2b286bb26b95ac9d4eb35679239ea12d4f63b50b.tar.bz2 |
Doc change: cleanup filtering sidebars and api level table. Changes links pointing to billing and other play docs that have moved.
Change-Id: I5528e82a6f97eb25f2ec2db5dfe1e178d9580f3c
65 files changed, 383 insertions, 388 deletions
diff --git a/docs/html/about/versions/android-3.1.jd b/docs/html/about/versions/android-3.1.jd index c39f174..8681327 100644 --- a/docs/html/about/versions/android-3.1.jd +++ b/docs/html/about/versions/android-3.1.jd @@ -825,7 +825,7 @@ devices.</li> href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code <uses-feature>}</a> manifest elements. For more information about declaring features in an application manifest, read <a -href="{@docRoot}guide/google/play/filters.html">Google Play +href="{@docRoot}google/play/filters.html">Google Play Filters</a>.</p> diff --git a/docs/html/about/versions/android-4.2.jd b/docs/html/about/versions/android-4.2.jd index 039e71e..37434fb 100644 --- a/docs/html/about/versions/android-4.2.jd +++ b/docs/html/about/versions/android-4.2.jd @@ -343,7 +343,7 @@ unique installations</a>. By creating a new {@link java.util.UUID} when your app first time, you’re certain to obtain a unique ID for tracking each user, regardless of how many users install your app on a single device. Alternatively, you can save a local token fetched from your server or use the registrations ID provided by <a -href="{@docRoot}guide/google/gcm/index.html">Google Cloud Messaging</a>.</p> +href="{@docRoot}google/gcm/index.html">Google Cloud Messaging</a>.</p> <p>Beware that if your app requests one of the hardware device identifiers (such as the WiFi MAC address, the {@link android.os.Build#SERIAL} number, or the {@link diff --git a/docs/html/about/versions/jelly-bean.jd b/docs/html/about/versions/jelly-bean.jd index 5350941..6cd6f9d 100644 --- a/docs/html/about/versions/jelly-bean.jd +++ b/docs/html/about/versions/jelly-bean.jd @@ -962,7 +962,7 @@ style="font-weight:500;">App Widgets</span> can resize automatically to fit the <p>GCM handles all the details of <strong>queuing messages and delivering them</strong> efficiently to the targeted Android devices. It supports message <strong>multicasting</strong> and can reach up to 1000 connected devices simultaneously with a single request. It also supports message <strong>payloads</strong>, which means that in addition to sending tickle messages to an app on the device, developers can send up to 4K of data. </p> -<p>Google Cloud Messaging is completely <strong>free for all developers</strong> and sign-up is easy. See the <a href="{@docRoot}guide/google/gcm/index.html">Google Cloud Messaging</a> page for registration, downloads, and documentation.</p> +<p>Google Cloud Messaging is completely <strong>free for all developers</strong> and sign-up is easy. See the <a href="{@docRoot}google/gcm/index.html">Google Cloud Messaging</a> page for registration, downloads, and documentation.</p> <h3>App Encryption</h3> diff --git a/docs/html/develop/index.jd b/docs/html/develop/index.jd index 99bee67..86c04a7 100644 --- a/docs/html/develop/index.jd +++ b/docs/html/develop/index.jd @@ -52,7 +52,7 @@ src="http://1.bp.blogspot.com/-6K1kfNOdek8/T72bXvtTSQI/AAAAAAAABmw/kYzmJt0_328/s <h2>In-app Subscriptions with Trials</h2> <p>You can now set up a <strong>free trial period</strong> for any Google Play in-app subscription, making it easy for users try your subscriber content before automatically converting to a full subscription. Free trials give you a new way to bring users into your products and engage them effectively. </p> <p><a class="button" -href="{@docRoot}guide/google/play/billing/billing_subscriptions.html#trials">Read +href="{@docRoot}google/play/billing/billing_subscriptions.html#trials">Read more</a></p> </div> </li> diff --git a/docs/html/distribute/googleplay/about/distribution.jd b/docs/html/distribute/googleplay/about/distribution.jd index 0d055ab..aff5dab 100644 --- a/docs/html/distribute/googleplay/about/distribution.jd +++ b/docs/html/distribute/googleplay/about/distribution.jd @@ -62,7 +62,7 @@ others.</p> <p>When you upload your app, Google Play reads the dependencies and sets up any necessary distribution rules. For technical information about declaring -dependencies, read <a href="{@docRoot}guide/google/play/filters.html">Filters on +dependencies, read <a href="{@docRoot}google/play/filters.html">Filters on Google Play</a>. </p> <p>For pinpoint control over distribution, Google Play lets you see all of the diff --git a/docs/html/distribute/googleplay/about/monetizing.jd b/docs/html/distribute/googleplay/about/monetizing.jd index 47d5266..cabd56b 100644 --- a/docs/html/distribute/googleplay/about/monetizing.jd +++ b/docs/html/distribute/googleplay/about/monetizing.jd @@ -112,7 +112,7 @@ gameplay levels, and upgrades as in-app products. The only restriction is that free apps must remain free (to download) for the life of the app.</p> <p>For details about in-app products or subscriptions, -see <a href="/guide/google/play/billing/index.html">Google Play In-app Billing</a>.</p> +see <a href="{@docRoot}google/play/billing/index.html">Google Play In-app Billing</a>.</p> <h2 id="buyer-currency" style="margin-top:1.5em;">Flexible pricing in the currencies of your customers</h2> diff --git a/docs/html/distribute/googleplay/publish/console.jd b/docs/html/distribute/googleplay/publish/console.jd index 31bef9c..af2b7e8 100644 --- a/docs/html/distribute/googleplay/publish/console.jd +++ b/docs/html/distribute/googleplay/publish/console.jd @@ -141,10 +141,10 @@ time, just by saving changes in the Develoer Console.</p> <div class="sidebox"> <h2>In-app Billing</h2> <p>For details on how to implement In-app Billing, see the -<a href="{@docRoot}guide/google/play/billing/index.html">In-app Billing</span></a> +<a href="{@docRoot}google/play/billing/index.html">In-app Billing</span></a> developer documentation.</p></div></div> -<p><a href="{@docRoot}guide/google/play/billing/index.html">In-app Billing</a> is a Google Play service that lets you monetize your apps in more ways by selling in-app products and subscriptions. In-app products are one-time purchases, while subscriptions are recurring charges on an monthly or annual basis.</p> +<p><a href="{@docRoot}google/play/billing/index.html">In-app Billing</a> is a Google Play service that lets you monetize your apps in more ways by selling in-app products and subscriptions. In-app products are one-time purchases, while subscriptions are recurring charges on an monthly or annual basis.</p> <p>From the Developer Console you can create product lists for in-app products and subscriptions, set prices, and publish.</p> diff --git a/docs/html/distribute/googleplay/publish/preparing.jd b/docs/html/distribute/googleplay/publish/preparing.jd index a3538a9..9b623e3 100644 --- a/docs/html/distribute/googleplay/publish/preparing.jd +++ b/docs/html/distribute/googleplay/publish/preparing.jd @@ -188,7 +188,7 @@ launch target date.</p> Google Play. Currently, the maximum size for an APK published on Google Play is <strong>50 MB</strong>. If your app exceeds that size, or if you want to offer a secondary download, you can use <a -href="{@docRoot}guide/google/play/expansion-files.html">APK Expansion Files</a>, +href="{@docRoot}google/play/expansion-files.html">APK Expansion Files</a>, which Google Play will host for free on its server infrastructure and automatically handle the download to devices.</p> @@ -207,7 +207,7 @@ creating your release-ready APK.</p> <tr> <td><p>Related resources:</p> <ul style="margin-top:-.5em;"> -<li><strong><a href="{@docRoot}guide/google/play/expansion-files.html">APK Expansion Files</a></strong> — Developer documentation describing APK Expansion Files and how to support them in your app.</li> +<li><strong><a href="{@docRoot}google/play/expansion-files.html">APK Expansion Files</a></strong> — Developer documentation describing APK Expansion Files and how to support them in your app.</li> </ul> </td> </tr> @@ -276,7 +276,7 @@ you need set up a Checkout Merchant Account before you can publish.</p> <tr> <td><p>Related resources:</p> <ul style="margin-top:-.5em;"> -<li><strong><a href="{@docRoot}guide/google/play/billing/index.html">In-app Billing</a></strong> — Developer introduction to Google Play In-app Billing.</li> +<li><strong><a href="{@docRoot}google/play/billing/index.html">In-app Billing</a></strong> — Developer introduction to Google Play In-app Billing.</li> </ul> </td> </tr> @@ -284,7 +284,7 @@ you need set up a Checkout Merchant Account before you can publish.</p> <h2 id="inapp-billing">9. Consider using In-app Billing</h2> -<p>Google Play <a href="{@docRoot}guide/google/play/billing/index.html">In-app +<p>Google Play <a href="{@docRoot}google/play/billing/index.html">In-app Billing</a> lets you sell digital content in your applications. You can use the service to sell a wide range of content, including downloadable content such as media files or photos, and virtual content such as game levels or potions. @@ -302,7 +302,7 @@ before creating your release-ready APK.</p> <tr> <td><p>Related resources:</p> <ul style="margin-top:-.5em;"> -<li><strong><a href="{@docRoot}guide/google/play/billing/index.html">In-app Billing</a></strong> — Developer documentation describing In-app Billing and how to support it in your app.</li> +<li><strong><a href="{@docRoot}google/play/billing/index.html">In-app Billing</a></strong> — Developer documentation describing In-app Billing and how to support it in your app.</li> </ul> </td> </tr> diff --git a/docs/html/distribute/googleplay/quality/tablet.jd b/docs/html/distribute/googleplay/quality/tablet.jd index 80346a7..cc7ba3f 100644 --- a/docs/html/distribute/googleplay/quality/tablet.jd +++ b/docs/html/distribute/googleplay/quality/tablet.jd @@ -478,7 +478,7 @@ and tablets), with a single Google Play listing: </ul> </li> <li>If necessary, you can alternatively choose to deliver your app using <a -href="{@docRoot}guide/google/play/publishing/multiple-apks.html">Multiple APK Support</a>, +href="{@docRoot}google/play/publishing/multiple-apks.html">Multiple APK Support</a>, although in most cases using a single APK to reach all devices is strongly recommended.</li> <li>Highlight your app’s tablet capabilities in the product details page: diff --git a/docs/html/distribute/open.jd b/docs/html/distribute/open.jd index edcfc9c..f9e9c3b 100644 --- a/docs/html/distribute/open.jd +++ b/docs/html/distribute/open.jd @@ -74,9 +74,9 @@ users have configured their Settings to allow the installation of apps from 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}guide/google/play/billing/index.html">In-app Billing service</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}guide/google/play/licensing/index.html">Licensing service</a> to +href="{@docRoot}google/play/licensing/index.html">Licensing service</a> to help prevent unauthorized installation and use of your application.</p> diff --git a/docs/html/google/gcm/c2dm.jd b/docs/html/google/gcm/c2dm.jd index e80a41f..381460e 100644 --- a/docs/html/google/gcm/c2dm.jd +++ b/docs/html/google/gcm/c2dm.jd @@ -75,7 +75,7 @@ page.title=Migration <dt><strong>Canonical registration ID</strong></dt> <dd>There may be situations where the server ends up with 2 registration IDs for the same device. If the GCM response contains a registration ID, simply replace the registration ID you have with the one provided. With this feature your application doesn't need to send the device ID to your server anymore. For more information, see <a href="adv.html#canonical">Advanced Topics</a>.</dd> </dl> -<p>GCM also provides helper libraries (<a href="{@docRoot}guide/google/gcm/client-javadoc/index.html">client</a> and <a href="{@docRoot}guide/google/gcm/server-javadoc/index.html">server</a>) to make writing your code easier.</p> +<p>GCM also provides helper libraries (<a href="{@docRoot}google/gcm/client-javadoc/index.html">client</a> and <a href="{@docRoot}google/gcm/server-javadoc/index.html">server</a>) to make writing your code easier.</p> <h3 id="interop">Relationship between C2DM and GCM</h3> diff --git a/docs/html/google/gcm/demo.jd b/docs/html/google/gcm/demo.jd index 7e35fd6..6dfae2d 100644 --- a/docs/html/google/gcm/demo.jd +++ b/docs/html/google/gcm/demo.jd @@ -40,8 +40,8 @@ page.title=GCM Demo Application </ul> <p>Here is the API reference documentation for the helper libraries on which the demo is based:</p> <ul> - <li><a href="{@docRoot}guide/google/gcm/client-javadoc/index.html">Client Reference</a></li> - <li><a href="{@docRoot}guide/google/gcm/server-javadoc/index.html">Server Reference</a></li> + <li><a href="{@docRoot}google/gcm/client-javadoc/index.html">Client Reference</a></li> + <li><a href="{@docRoot}google/gcm/server-javadoc/index.html">Server Reference</a></li> </ul> <p>The sections below describe how to download the demo code and helper libraries from the SDK Manager. The demo code and helper libraries are also available at the <a href="http://code.google.com/p/gcm">open source site</a>. diff --git a/docs/html/google/gcm/gs.jd b/docs/html/google/gcm/gs.jd index fc5c4a2..df13373 100644 --- a/docs/html/google/gcm/gs.jd +++ b/docs/html/google/gcm/gs.jd @@ -25,7 +25,7 @@ page.title=GCM: Getting Started </div> </div> -<p>This document describes how to write an Android application and the server-side logic, using the helper libraries (<a href="{@docRoot}guide/google/gcm/client-javadoc/index.html">client</a> and <a href="{@docRoot}guide/google/gcm/server-javadoc/index.html">server</a>) provided by GCM.</p> +<p>This document describes how to write an Android application and the server-side logic, using the helper libraries (<a href="{@docRoot}google/gcm/client-javadoc/index.html">client</a> and <a href="{@docRoot}google/gcm/server-javadoc/index.html">server</a>) provided by GCM.</p> <h2 id="create-proj">Creating a Google API project</h2> @@ -85,7 +85,7 @@ page.title=GCM: Getting Started <p class="note"><strong>Note:</strong> If you need to rotate the key, click <strong>Generate new key</strong>. A new key will be created while the old one will still be active for up to 24 hours. If you want to get rid of the old key immediately (for example, if you feel it was compromised), click <strong>Delete key</strong>.</p> <h2 id="libs">Install the Helper Libraries</h2> -<p>To perform the steps described in the following sections, you must first install the helper libraries (reference: <a href="{@docRoot}guide/google/gcm/client-javadoc/index.html">client</a> and <a href="{@docRoot}guide/google/gcm/server-javadoc/index.html">server</a>). From the SDK Manager, install <strong>Extras > Google Cloud Messaging for Android Library</strong>. This creates a <code>gcm</code> directory under <code><em>YOUR_SDK_ROOT</em>/extras/google/</code> containing these subdirectories: <code>gcm-client</code>, <code>gcm-server</code>, <code>samples/gcm-demo-client</code>, <code>samples/gcm-demo-server</code>, and <code>samples/gcm-demo-appengine</code>.</p> +<p>To perform the steps described in the following sections, you must first install the helper libraries (reference: <a href="{@docRoot}google/gcm/client-javadoc/index.html">client</a> and <a href="{@docRoot}google/gcm/server-javadoc/index.html">server</a>). From the SDK Manager, install <strong>Extras > Google Cloud Messaging for Android Library</strong>. This creates a <code>gcm</code> directory under <code><em>YOUR_SDK_ROOT</em>/extras/google/</code> containing these subdirectories: <code>gcm-client</code>, <code>gcm-server</code>, <code>samples/gcm-demo-client</code>, <code>samples/gcm-demo-server</code>, and <code>samples/gcm-demo-appengine</code>.</p> <p class="note"><strong>Note:</strong> If you don't see <strong>Extras > Google Cloud Messaging for Android Library</strong> in the SDK Manager, make sure you are running version 20 or higher. Be sure to restart the SDK Manager after updating it.</p> diff --git a/docs/html/google/gcm/index.jd b/docs/html/google/gcm/index.jd index 8079eba..5038125 100644 --- a/docs/html/google/gcm/index.jd +++ b/docs/html/google/gcm/index.jd @@ -10,19 +10,19 @@ page.title=Google Cloud Messaging for Android <p>To learn more about GCM, you can join the <a href="https://groups.google.com/forum/?fromgroups#!forum/android-gcm">android-gcm group</a> and read the following documents:</p> <dl> - <dt><strong><a href="{@docRoot}guide/google/gcm/gs.html">Getting Started</a></strong></dt> + <dt><strong><a href="{@docRoot}google/gcm/gs.html">Getting Started</a></strong></dt> <dd>Read this document to learn the basic steps involved in developing Android applications based on GCM.</dd> - <dt><strong><a href="{@docRoot}guide/google/gcm/gcm.html">Architectural Overview</a></strong></dt> + <dt><strong><a href="{@docRoot}google/gcm/gcm.html">Architectural Overview</a></strong></dt> <dd>Read this document for a description of the underlying concepts and architecture in GCM.</dd> - <dt><strong><a href="{@docRoot}guide/google/gcm/demo.html">Demo App Tutorial</a></strong></dt> + <dt><strong><a href="{@docRoot}google/gcm/demo.html">Demo App Tutorial</a></strong></dt> <dd>Read this document to walk through setting up and running the GCM demo app.</dd> - <dt><strong><a href="{@docRoot}guide/google/gcm/adv.html">Advanced Topics</a></strong></dt> + <dt><strong><a href="{@docRoot}google/gcm/adv.html">Advanced Topics</a></strong></dt> <dd>Read this document to get a more in-depth understanding of key GCM features.</dd> - <dt><a href="{@docRoot}guide/google/gcm/c2dm.html"><strong>Migration</strong></a></dt> + <dt><a href="{@docRoot}google/gcm/c2dm.html"><strong>Migration</strong></a></dt> <dd>Read this document if you are a C2DM developer moving to GCM.</dd> </dl> -<p>GCM also provides helper libraries for <a href="{@docRoot}guide/google/gcm/client-javadoc/index.html"><strong>client</strong></a> and <a href="{@docRoot}guide/google/gcm/server-javadoc/index.html"><strong>server</strong></a> development.</p> +<p>GCM also provides helper libraries for <a href="{@docRoot}google/gcm/client-javadoc/index.html"><strong>client</strong></a> and <a href="{@docRoot}google/gcm/server-javadoc/index.html"><strong>server</strong></a> development.</p> diff --git a/docs/html/google/index.jd b/docs/html/google/index.jd index 57a3524..97e4ea4 100644 --- a/docs/html/google/index.jd +++ b/docs/html/google/index.jd @@ -65,7 +65,7 @@ and track app usage.</p> <div class="cell-icon"> <img src="{@docRoot}images/google/gcm-cloud.png"> </div> - <h4><a href="{@docRoot}guide/google/gcm/index.html">Google Cloud Messaging</a></h4> + <h4><a href="{@docRoot}google/gcm/index.html">Google Cloud Messaging</a></h4> <p>Keep your users connected by delivering events with lightweight messages immediately from your web server. There are no quotas or charges to use Google Cloud Messaging.</p> @@ -82,7 +82,7 @@ and track app usage.</p> <div class="cell-icon"> <img src="{@docRoot}images/google/iab-99c.png" /> </div> - <h4><a href="{@docRoot}guide/google/play/billing/index.html">In-App Billing</a></h4> + <h4><a href="{@docRoot}google/play/billing/index.html">In-App Billing</a></h4> <p>Build an app with a steady revenue stream that keeps users engaged by offering new content or virtual goods directly in your app. All transactions are handled by Google Play Store for a simple user experience. diff --git a/docs/html/google/play-services/dist.jd b/docs/html/google/play-services/dist.jd index 85a64f9..e179bff 100644 --- a/docs/html/google/play-services/dist.jd +++ b/docs/html/google/play-services/dist.jd @@ -21,7 +21,7 @@ page.title=Google Play Distribution and Licensing <p> Make sure your app gets to the right users by filtering on a wide range of characteristics such as platform versions and hardware features. - </p><p><a href="{@docRoot}guide/google/play/filters.html">Learn more »</a></p> + </p><p><a href="{@docRoot}google/play/filters.html">Learn more »</a></p> </div> <div class="layout-content-col span-6"> @@ -31,7 +31,7 @@ page.title=Google Play Distribution and Licensing <p> Distribute different APKs based on a variety of properties such as platform version, screen size, and GLES texture compression support. - </p><p><a href="{@docRoot}guide/google/play/publishing/multiple-apks.html">Learn more »</a></p> + </p><p><a href="{@docRoot}google/play/publishing/multiple-apks.html">Learn more »</a></p> </div> <div class="layout-content-row"> @@ -43,7 +43,7 @@ page.title=Google Play Distribution and Licensing Tap into Google's content delivery services by serving up to 4GB of assets for free. Provide users with high-fidelity graphics, media files, or other large assets that are required by your app. - </p><a href="{@docRoot}guide/google/play/expansion-files.html">Learn more »</a> + </p><a href="{@docRoot}google/play/expansion-files.html">Learn more »</a> </div> <div class="layout-content-col span-6"> @@ -51,6 +51,6 @@ page.title=Google Play Distribution and Licensing Application Licensing </h4> <p>Protect your revenue streams and integrate policies for usage into your app. - </p><a href="{@docRoot}guide/google/play/licensing/index.html">Learn more »</a> + </p><a href="{@docRoot}google/play/licensing/index.html">Learn more »</a> </div> </div>
\ No newline at end of file diff --git a/docs/html/google/play/billing/billing_about.html b/docs/html/google/play/billing/billing_about.html index 9f41fa6..38616e6 100644 --- a/docs/html/google/play/billing/billing_about.html +++ b/docs/html/google/play/billing/billing_about.html @@ -1,12 +1,12 @@ <html> <head> <meta http-equiv="refresh" -content="0;url=http://developer.android.com/guide/google/play/billing/index.html"> +content="0;url=http://developer.android.com/google/play/billing/index.html"> <title>Redirecting...</title> </head> <body> <p>You should be redirected. Please <a -href="http://developer.android.com/guide/google/play/billing/index.html">click +href="http://developer.android.com/google/play/billing/index.html">click here</a>.</p> </body> </html>
\ No newline at end of file diff --git a/docs/html/google/play/billing/billing_admin.jd b/docs/html/google/play/billing/billing_admin.jd index cb288a5..2413ae5 100755 --- a/docs/html/google/play/billing/billing_admin.jd +++ b/docs/html/google/play/billing/billing_admin.jd @@ -15,20 +15,20 @@ parent.link=index.html </ol> <h2>Downloads</h2> <ol> - <li><a href="{@docRoot}guide/google/play/billing/billing_integrate.html#billing-download">Sample + <li><a href="{@docRoot}google/play/billing/billing_integrate.html#billing-download">Sample Application</a></li> </ol> <h2>See also</h2> <ol> - <li><a href="{@docRoot}guide/google/play/billing/billing_overview.html">Overview of In-app + <li><a href="{@docRoot}google/play/billing/billing_overview.html">Overview of In-app Billing</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_integrate.html">Implementing In-app + <li><a href="{@docRoot}google/play/billing/billing_integrate.html">Implementing In-app Billing</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_best_practices.html">Security and + <li><a href="{@docRoot}google/play/billing/billing_best_practices.html">Security and Design</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_testing.html">Testing In-app + <li><a href="{@docRoot}google/play/billing/billing_testing.html">Testing In-app Billing</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_reference.html">In-app Billing + <li><a href="{@docRoot}google/play/billing/billing_reference.html">In-app Billing Reference</a></li> </ol> </div> @@ -83,12 +83,12 @@ account and the application's manifest must include the <code>com.android.vendin permission. If an application's manifest does not include this permission, you will be able to edit existing items in the product list but you will not be able to add new items to the list. For more information about this permission, see -<a href="{@docRoot}guide/google/play/billing/billing_integrate.html#billing-permission">Updating Your +<a href="{@docRoot}google/play/billing/billing_integrate.html#billing-permission">Updating Your Application's Manifest</a>.</p> <p>In addition, an application package can have only one product list. If you create a product list for an application, and you use the <a -href="{@docRoot}guide/google/play/publishing/multiple-apks.html">multiple APK feature</a> to distribute +href="{@docRoot}google/play/publishing/multiple-apks.html">multiple APK feature</a> to distribute more than one APK for that application, the product list applies to all APK versions that are associated with the application listing. You cannot create individual product lists for each APK if you are using the multiple APK feature.</p> @@ -143,7 +143,7 @@ number of in-app items.</p> <strong>Published</strong> and the item's application must be published on Google Play.</p> <p class="note"><strong>Note:</strong> This is not true for test accounts. An item is visible to a test account if the application is not published and the item is published. See <a - href="{@docRoot}guide/google/play/billing/billing_testing.html#billing-testing-real">Testing In-app + href="{@docRoot}google/play/billing/billing_testing.html#billing-testing-real">Testing In-app Billing</a> for more information.</p> </li> <li><strong>Language</strong> @@ -435,7 +435,7 @@ in-app purchases must be directed to you (the application developer). You can th refund through your Google Wallet merchant account. When you do this, Google Play receives a refund notification from Google Wallet, and Google Play sends a refund message to your application. For more information, see <a -href="{@docRoot}guide/google/play/billing/billing_overview.html#billing-action-notify">Handling +href="{@docRoot}google/play/billing/billing_overview.html#billing-action-notify">Handling IN_APP_NOTIFY messages</a> and <a href="http://www.google.com/support/androidmarket/bin/answer.py?answer=1153485">In-app Billing Pricing</a>.</p> diff --git a/docs/html/google/play/billing/billing_best_practices.jd b/docs/html/google/play/billing/billing_best_practices.jd index 850c661..dbf1057 100755 --- a/docs/html/google/play/billing/billing_best_practices.jd +++ b/docs/html/google/play/billing/billing_best_practices.jd @@ -11,20 +11,20 @@ parent.link=index.html </ol> <h2>Downloads</h2> <ol> - <li><a href="{@docRoot}guide/google/play/billing/billing_integrate.html#billing-download">Sample + <li><a href="{@docRoot}google/play/billing/billing_integrate.html#billing-download">Sample Application</a></li> </ol> <h2>See also</h2> <ol> - <li><a href="{@docRoot}guide/google/play/billing/billing_overview.html">Overview of In-app + <li><a href="{@docRoot}google/play/billing/billing_overview.html">Overview of In-app Billing</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_integrate.html">Implementing In-app + <li><a href="{@docRoot}google/play/billing/billing_integrate.html">Implementing In-app Billing</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_testing.html">Testing In-app + <li><a href="{@docRoot}google/play/billing/billing_testing.html">Testing In-app Billing</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_admin.html">Administering In-app + <li><a href="{@docRoot}google/play/billing/billing_admin.html">Administering In-app Billing</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_reference.html">In-app Billing + <li><a href="{@docRoot}google/play/billing/billing_reference.html">In-app Billing Reference</a></li> </ol> </div> diff --git a/docs/html/google/play/billing/billing_integrate.jd b/docs/html/google/play/billing/billing_integrate.jd index 2d1582e..2ca7c83 100755 --- a/docs/html/google/play/billing/billing_integrate.jd +++ b/docs/html/google/play/billing/billing_integrate.jd @@ -21,15 +21,15 @@ parent.link=index.html </ol> <h2>See also</h2> <ol> - <li><a href="{@docRoot}guide/google/play/billing/billing_overview.html">Overview of In-app + <li><a href="{@docRoot}google/play/billing/billing_overview.html">Overview of In-app Billing</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_best_practices.html">Security and + <li><a href="{@docRoot}google/play/billing/billing_best_practices.html">Security and Design</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_testing.html">Testing In-app + <li><a href="{@docRoot}google/play/billing/billing_testing.html">Testing In-app Billing</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_admin.html">Administering In-app + <li><a href="{@docRoot}google/play/billing/billing_admin.html">Administering In-app Billing</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_reference.html">In-app Billing + <li><a href="{@docRoot}google/play/billing/billing_reference.html">In-app Billing Reference</a></li> </ol> </div> @@ -41,8 +41,8 @@ you implement in-app billing by stepping through the primary implementation task billing sample application as an example.</p> <p>Before you implement in-app billing in your own application, be sure that you read <a -href="{@docRoot}guide/google/play/billing/billing_overview.html">Overview of In-app Billing</a> and <a -href="{@docRoot}guide/google/play/billing/billing_best_practices.html">Security and Design</a>. These +href="{@docRoot}google/play/billing/billing_overview.html">Overview of In-app Billing</a> and <a +href="{@docRoot}google/play/billing/billing_best_practices.html">Security and Design</a>. These documents provide background information that will make it easier for you to implement in-app billing.</p> @@ -238,7 +238,7 @@ how to do this.</p> your product list so that <code>sword_001</code> has a purchase type of "Managed per user account" and <code>potion_001</code> has a purchase type of "Unmanaged" so you can see how these two purchase types behave. To learn how to set up a product list, see <a - href="{@docRoot}guide/google/play/billing/billing_admin.html#billing-list-setup">Creating a Product + href="{@docRoot}google/play/billing/billing_admin.html#billing-list-setup">Creating a Product List</a>.</p> <p class="note"><strong>Note:</strong> You must publish the items in your product list (<code>sword_001</code> and <code>potion_001</code>) even though you are not publishing the @@ -258,7 +258,7 @@ onto a device to run it. To run the sample application, do the following:</p> <p>You cannot purchase items from yourself (Google Wallet prohibits this), so you need to create at least one test account that you can use to purchase items in the sample application. To learn how to set up a test account, see <a - href="{@docRoot}guide/google/play/billing/billing_testing.html#billing-testing-setup">Setting up Test + href="{@docRoot}google/play/billing/billing_testing.html#billing-testing-setup">Setting up Test Accounts</a>.</p> </li> <li><strong>Verify that your device is running a supported version of the Google Play @@ -279,7 +279,7 @@ onto a device to run it. To run the sample application, do the following:</p> </li> <li><strong>Make one of your test accounts the primary account on your device.</strong> <p>The primary account on your device must be one of the <a - href="{@docRoot}guide/google/play/billing/billing_admin.html#billing-testing-setup">test accounts</a> + href="{@docRoot}google/play/billing/billing_admin.html#billing-testing-setup">test accounts</a> that you registered on the Google Play publisher site. If the primary account on your device is not a test account, you must do a factory reset of the device and then sign in with one of your test accounts. To perform a factory reset, do the following:</p> @@ -466,7 +466,7 @@ indicates the item being purchased, and another identifies your application. The code. However, this is not the complete purchase response; the complete response is delivered with an asynchronous broadcast intent. For more information about the various Bundle keys that are supported by the <code>MarketBillingService</code>, see <a -href="{@docRoot}guide/google/play/billing/billing_reference.html#billing-interface">In-app Billing +href="{@docRoot}google/play/billing/billing_reference.html#billing-interface">In-app Billing Service Interface</a>.</p> <p>You can use the <code>sendBillingRequest()</code> method to send five types of billing requests. @@ -482,7 +482,7 @@ key can have the following five values:</p> <li><code>CONFIRM_NOTIFICATIONS</code>—acknowledges that you received the transaction information for a purchase or refund.</li> <li><code>RESTORE_TRANSACTIONS</code>—retrieves a user's transaction history for <a - href="{@docRoot}guide/google/play/billing/billing_admin.html#billing-purchase-type">managed + href="{@docRoot}google/play/billing/billing_admin.html#billing-purchase-type">managed purchases</a>.</li> </ul> @@ -529,7 +529,7 @@ three keys that are required for all requests: <code>BILLING_REQUEST</code>, <code>API_VERSION</code>, and <code>PACKAGE_NAME</code>. If you are offering subscriptions in your app, set the API_VERSION key to a value of "2", to confirm that In-app Billing v2 is available. For an examnple, see -<a href="{@docRoot}guide/google/play/billing/billing_subscriptions.html#version">Subscriptions</a>.</p> +<a href="{@docRoot}google/play/billing/billing_subscriptions.html#version">Subscriptions</a>.</p> <p>The <code>CHECK_BILLING_SUPPORTED</code> request returns a synchronous {@link android.os.Bundle} response, which contains only a single key: <code>RESPONSE_CODE</code>. The @@ -577,7 +577,7 @@ Help topic.</p> <p>You must specify four keys in the request {@link android.os.Bundle}. The following code sample shows how to set these keys and make a purchase request for a single in-app item. In the sample, <code>mProductId</code> is the Google Play product ID of an in-app item (which is listed in the -application's <a href="{@docRoot}guide/google/play/billing/billing_admin.html#billing-list-setup">product +application's <a href="{@docRoot}google/play/billing/billing_admin.html#billing-list-setup">product list</a>), and <code>mService</code> is an instance of the <code>MarketBillingService</code> interface.</p> @@ -672,7 +672,7 @@ use to retrieve the transaction details for the <code>REQUEST_PURCHASE</code> re <p class="note"><strong>Note:</strong> The Google Play application also sends an <code>IN_APP_NOTIFY</code> for refunds. For more information, see <a -href="{@docRoot}guide/google/play/billing/billing_overview.html#billing-action-notify">Handling +href="{@docRoot}google/play/billing/billing_overview.html#billing-action-notify">Handling IN_APP_NOTIFY messages</a>.</p> <p>Because the purchase process is not instantaneous and can take several seconds (or more), you @@ -855,7 +855,7 @@ android.content.BroadcastReceiver}. To see an example of how you can send and re messages, see the <code>BillingReceiver.java</code> and <code>BillingService.java</code> files in the sample application. You can use these samples as a basis for your own implementation. However, if you use any of the code from the sample application, be sure you follow the guidelines in <a -href="{@docRoot}guide/google/play/billing/billing_best_practices.html">Security and Design</a>.</p> +href="{@docRoot}google/play/billing/billing_best_practices.html">Security and Design</a>.</p> <h2 id="billing-broadcast-receiver">Creating a BroadcastReceiver</h2> @@ -868,19 +868,19 @@ android.content.BroadcastReceiver} that can handle the following intents:</p> <p>This broadcast intent contains a Google Play response code, and is sent after you make an in-app billing request. For more information about the response codes that are sent with this response, see <a - href="{@docRoot}guide/google/play/billing/billing_reference.html#billing-codes">Google Play Response + href="{@docRoot}google/play/billing/billing_reference.html#billing-codes">Google Play Response Codes for In-app Billing</a>.</p> </li> <li>com.android.vending.billing.IN_APP_NOTIFY <p>This response indicates that a purchase has changed state, which means a purchase succeeded, was canceled, or was refunded. For more information about notification messages, see <a - href="{@docRoot}guide/google/play/billing/billing_reference.html#billing-intents">In-app Billing + href="{@docRoot}google/play/billing/billing_reference.html#billing-intents">In-app Billing Broadcast Intents</a></p> </li> <li>com.android.vending.billing.PURCHASE_STATE_CHANGED <p>This broadcast intent contains detailed information about one or more transactions. For more information about purchase state messages, see <a - href="{@docRoot}guide/google/play/billing/billing_reference.html#billing-intents">In-app Billing + href="{@docRoot}google/play/billing/billing_reference.html#billing-intents">In-app Billing Broadcast Intents</a></p> </li> </ul> @@ -989,7 +989,7 @@ local service (discussed in the next section). The <code>BillingReceiver.java</c sample application shows you how to do this. You can use this sample as a basis for your own {@link android.content.BroadcastReceiver}. However, if you use any of the code from the sample application, be sure you follow the guidelines that are discussed in <a -href="{@docRoot}guide/google/play/billing/billing_best_practices.html">Security and Design </a>.</p> +href="{@docRoot}google/play/billing/billing_best_practices.html">Security and Design </a>.</p> <h2 id="billing-signatures">Verifying Signatures and Nonces</h2> @@ -1028,7 +1028,7 @@ code shows some simple methods you can use to do this.</p> <code>PURCHASE_STATE_CHANGED</code> broadcast intent. The <code>Security.java</code> file in the sample application shows you how to do this. If you use this file as a basis for your own security implementation, be sure to follow the guidelines in <a -href="{@docRoot}guide/google/play/billing/billing_best_practices.html">Security and Design</a> and +href="{@docRoot}google/play/billing/billing_best_practices.html">Security and Design</a> and obfuscate your code.</p> <p>You will need to use your Google Play public key to perform the signature verification. The @@ -1075,7 +1075,7 @@ sample application provides an example database (PurchaseDatabase.java); however database has been simplified for clarity and does not exhibit the security best practices that we recommend. If you have a remote server, we recommend that you store purchase information on your server instead of in a local database on a device. For more information about security best -practices, see <a href="{@docRoot}guide/google/play/billing/billing_best_practices.html">Security and +practices, see <a href="{@docRoot}google/play/billing/billing_best_practices.html">Security and Design</a>.</p> <p class="note"><strong>Note</strong>: If you store any purchase information on a device, be sure to diff --git a/docs/html/google/play/billing/billing_overview.jd b/docs/html/google/play/billing/billing_overview.jd index 82f6cf4..4b2a643 100755 --- a/docs/html/google/play/billing/billing_overview.jd +++ b/docs/html/google/play/billing/billing_overview.jd @@ -21,19 +21,19 @@ parent.link=index.html </ol> <h2>Downloads</h2> <ol> - <li><a href="{@docRoot}guide/google/play/billing/billing_integrate.html#billing-download">Sample + <li><a href="{@docRoot}google/play/billing/billing_integrate.html#billing-download">Sample Application</a></li> </ol> <h2>See also</h2> <ol> - <li><a href="{@docRoot}guide/google/play/billing/billing_integrate.html">Implementing In-app + <li><a href="{@docRoot}google/play/billing/billing_integrate.html">Implementing In-app Billing</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_best_practices.html">Security and + <li><a href="{@docRoot}google/play/billing/billing_best_practices.html">Security and Design</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_testing.html">Testing In-app Billing</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_admin.html">Administering In-app + <li><a href="{@docRoot}google/play/billing/billing_testing.html">Testing In-app Billing</a></li> + <li><a href="{@docRoot}google/play/billing/billing_admin.html">Administering In-app Billing</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_reference.html">In-app Billing + <li><a href="{@docRoot}google/play/billing/billing_reference.html">In-app Billing Reference</a></li> </ol> </div> @@ -156,7 +156,7 @@ messaging that takes place between your application and the Google Play applicat interface. This interface is defined in an <a href="{@docRoot}guide/components/aidl.html">Android Interface Definition Language</a> file (<code>IMarketBillingService.aidl</code>). You can <a -href="{@docRoot}guide/google/play/billing/billing_integrate.html#billing-download">download</a> this AIDL +href="{@docRoot}google/play/billing/billing_integrate.html#billing-download">download</a> this AIDL file with the in-app billing sample application.</p> <p>The <code>sendBillingRequest()</code> method has a single {@link android.os.Bundle} parameter. @@ -164,7 +164,7 @@ The Bundle that you deliver must include several key-value pairs that specify va the request, such as the type of billing request you are making, the item that is being purchased and its type, and the application that is making the request. For more information about the Bundle keys that are sent with a request, see <a -href="{@docRoot}guide/google/play/billing/billing_reference.html#billing-interface">In-app Billing +href="{@docRoot}google/play/billing/billing_reference.html#billing-interface">In-app Billing Service Interface</a>. <p>One of the most important keys that every request Bundle must have is the @@ -198,9 +198,9 @@ requests:</p> </li> <li><code>RESTORE_TRANSACTIONS</code> <p>This request retrieves a user's transaction status for <a - href="{@docRoot}guide/google/play/billing/billing_admin.html#billing-purchase-type">managed + href="{@docRoot}google/play/billing/billing_admin.html#billing-purchase-type">managed purchases</a> and <a - href="{@docRoot}guide/google/play/billing/billing_admin.html#billing-purchase-type">subscriptions</a>. + href="{@docRoot}google/play/billing/billing_admin.html#billing-purchase-type">subscriptions</a>. You should send this request only when you need to retrieve a user's transaction status, which is usually only when your application is reinstalled or installed for the first time on a device.</p> @@ -240,7 +240,7 @@ include the following:</p> request. This response is <em>not</em> used to report any purchase state changes (such as refund or purchase information). For more information about the response codes that are sent with this response, see <a - href="{@docRoot}guide/google/play/billing/billing_reference.html#billing-codes">Server Response Codes + href="{@docRoot}google/play/billing/billing_reference.html#billing-codes">Server Response Codes for In-app Billing</a>.</p> </li> <li><code>com.android.vending.billing.IN_APP_NOTIFY</code> @@ -276,7 +276,7 @@ string for a subscription item is shown below:</p> </pre> <p>For more information about the fields in this JSON string, see <a -href="{@docRoot}guide/google/play/billing/billing_reference.html#billing-intents">In-app Billing +href="{@docRoot}google/play/billing/billing_reference.html#billing-intents">In-app Billing Broadcast Intents</a>.</p> <h3 id="billing-message-sequence">Messaging sequence</h3> @@ -435,7 +435,7 @@ application can handle this message the same way it handles the response from an application-initiated <code>REQUEST_PURCHASE</code> message, so that ultimately your application receives a <code>PURCHASE_STATE_CHANGED</code> broadcast intent message that includes information about the item that has been purchased. This applies only to items that have their <a -href="{@docRoot}guide/google/play/billing/billing_admin.html#billing-purchase-type">purchase type</a> set +href="{@docRoot}google/play/billing/billing_admin.html#billing-purchase-type">purchase type</a> set to "managed per user account."</p> <p>In the second case, your application can receive an <code>IN_APP_NOTIFY</code> broadcast intent @@ -478,7 +478,7 @@ application. When your application receives the JSON string, you need to verify the signature of the JSON string.</p> <p>For more information about best practices for security and design, see <a -href="{@docRoot}guide/google/play/billing/billing_best_practices.html">Security and Design</a>.</p> +href="{@docRoot}google/play/billing/billing_best_practices.html">Security and Design</a>.</p> <h2 id="billing-limitations">In-app Billing Requirements and Limitations</h2> diff --git a/docs/html/google/play/billing/billing_reference.jd b/docs/html/google/play/billing/billing_reference.jd index c5541fa..e78c99f 100755 --- a/docs/html/google/play/billing/billing_reference.jd +++ b/docs/html/google/play/billing/billing_reference.jd @@ -15,20 +15,20 @@ parent.link=index.html </ol> <h2>Downloads</h2> <ol> - <li><a href="{@docRoot}guide/google/play/billing/billing_integrate.html#billing-download">Sample + <li><a href="{@docRoot}google/play/billing/billing_integrate.html#billing-download">Sample Application</a></li> </ol> <h2>See also</h2> <ol> - <li><a href="{@docRoot}guide/google/play/billing/billing_overview.html">Overview of In-app + <li><a href="{@docRoot}google/play/billing/billing_overview.html">Overview of In-app Billing</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_integrate.html">Implementing In-app + <li><a href="{@docRoot}google/play/billing/billing_integrate.html">Implementing In-app Billing</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_best_practices.html">Security and + <li><a href="{@docRoot}google/play/billing/billing_best_practices.html">Security and Design</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_testing.html">Testing In-app + <li><a href="{@docRoot}google/play/billing/billing_testing.html">Testing In-app Billing</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_admin.html">Administering In-app + <li><a href="{@docRoot}google/play/billing/billing_admin.html">Administering In-app Billing</a></li> </ol> </div> @@ -114,7 +114,7 @@ purchase an item from yourself, which is not allowed by Google Wallet.</td> <p>The following section describes the interface for Google Play's in-app billing service. The interface is defined in the <code>IMarketBillingService.aidl</code> file, which is included with the in-app billing <a -href="{@docRoot}guide/google/play/billing/billing_integrate.html#billing-download">sample +href="{@docRoot}google/play/billing/billing_integrate.html#billing-download">sample application</a>.</p> <p>The interface consists of a single request method <code>sendBillingRequest()</code>. This method takes a single {@link android.os.Bundle} parameter. The Bundle parameter includes several key-value @@ -233,7 +233,7 @@ pairs, which are summarized in table 2.</p> </li> <li><code>RESTORE_TRANSACTIONS</code> <p>This request retrieves a user's transaction status for managed purchases (see <a - href="{@docRoot}guide/google/play/billing/billing_admin.html#billing-purchase-type">Choosing a + href="{@docRoot}google/play/billing/billing_admin.html#billing-purchase-type">Choosing a Purchase Type</a> for more information). You should send this message only when you need to retrieve a user's transaction status, which is usually only when your application is reinstalled or installed for the first time on a device.</p> @@ -304,7 +304,7 @@ each in-app billing request type.</p> Play application. These broadcast intents inform your application about in-app billing actions that have occurred. Your application must implement a {@link android.content.BroadcastReceiver} to receive these broadcast intents, such as the <code>BillingReceiver</code> that's shown in the in-app -billing <a href="{@docRoot}guide/google/play/billing/billing_integrate.html#billing-download">sample +billing <a href="{@docRoot}google/play/billing/billing_integrate.html#billing-download">sample application</a>.</p> <h4>com.android.vending.billing.RESPONSE_CODE</h4> @@ -442,7 +442,7 @@ validity of a specific subscription at any time or cancel a subscription. The API is designed to be used from your backend servers as a way of securely managing subscriptions, as well as extending and integrating subscriptions with other services. See <a -href="{@docRoot}guide/google/play/billing/billing_subscriptions.html#play-dev-api"> +href="{@docRoot}google/play/billing/billing_subscriptions.html#play-dev-api"> Google Play Android Developer API</a> for more information.</p> <h2 id="billing-versions">In-app Billing API Versions</h2> @@ -457,7 +457,7 @@ Versions are specified in the <code>API_VERSION</code> key of the Bundle object passed in the <code>sendBillingRequest()</code>, which is defined in the defined in the <code>IMarketBillingService.aidl</code> file, which is included with the in-app billing <a -href="{@docRoot}guide/google/play/billing/billing_integrate.html#billing-download"> +href="{@docRoot}google/play/billing/billing_integrate.html#billing-download"> sample application</a>. For more information, see <a href="#billing-interface">In-app Billing Service Interface</a>.</p> <h3 id="version_2">In-app Billing version 2</h3> diff --git a/docs/html/google/play/billing/billing_subscriptions.jd b/docs/html/google/play/billing/billing_subscriptions.jd index 68eda19..5980d83 100755 --- a/docs/html/google/play/billing/billing_subscriptions.jd +++ b/docs/html/google/play/billing/billing_subscriptions.jd @@ -48,19 +48,19 @@ parent.link=index.html </ol> <h2>Downloads</h2> <ol> - <li><a href="{@docRoot}guide/google/play/billing/billing_integrate.html#billing-download">Sample Application</a></li> + <li><a href="{@docRoot}google/play/billing/billing_integrate.html#billing-download">Sample Application</a></li> </ol> <h2>See also</h2> <ol> - <li><a href="{@docRoot}guide/google/play/billing/billing_overview.html">Overview of In-app + <li><a href="{@docRoot}google/play/billing/billing_overview.html">Overview of In-app Billing</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_best_practices.html">Security and + <li><a href="{@docRoot}google/play/billing/billing_best_practices.html">Security and Design</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_testing.html">Testing In-app + <li><a href="{@docRoot}google/play/billing/billing_testing.html">Testing In-app Billing</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_admin.html">Administering In-app + <li><a href="{@docRoot}google/play/billing/billing_admin.html">Administering In-app Billing</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_reference.html">In-app Billing + <li><a href="{@docRoot}google/play/billing/billing_reference.html">In-app Billing Reference</a></li> </ol> </div> @@ -78,7 +78,7 @@ subscriptions using the standard communication model, data structures, and user interactions as for other in-app products.subscriptions. Because the implementation of subscriptions follows the same path as for other in-app products, details are provided outside of this document, starting with the <a -href="{@docRoot}guide/google/play/billing/billing_overview.html">In-app Billing +href="{@docRoot}google/play/billing/billing_overview.html">In-app Billing Overview</a>. </p> <p>This document is focused on highlighting implementation details that are @@ -395,7 +395,7 @@ other in-app products.subscriptions. </p> <p>The full implementation details for In-app Billing are provided outside of this document, starting with the <a -href="{@docRoot}guide/google/play/billing/billing_overview.html">In-app Billing +href="{@docRoot}google/play/billing/billing_overview.html">In-app Billing Overview</a>. This document is focused on highlighting implementation details that are specific to subscriptions, along with some strategies for the associated billing and business models.</p> @@ -407,7 +407,7 @@ associated billing and business models.</p> subscriptions, an updated version of the In-app Billing sample app is available. You can download the sample app from the Android SDK repository using the Android SDK Manager. For details, see <a -href="{@docRoot}guide/google/play/billing/billing_integrate.html#billing-download"> +href="{@docRoot}google/play/billing/billing_integrate.html#billing-download"> Downloading the Sample Application</a>.</p> <h3 id="model">Application model</h3> @@ -426,7 +426,7 @@ Play. Also recommended are a response Handler for processing notifications, errors, and status messages, and an observer for sending callbacks to your application as needed. All of these components and their interactions are described in full in the <a -href="{@docRoot}guide/google/play/billing/billing_overview.html">In-app Billing +href="{@docRoot}google/play/billing/billing_overview.html">In-app Billing Overview</a> and related documents.</p> <p>To initiate different types of billing communication with Google Play, your @@ -470,7 +470,7 @@ is shown below. </p> pass it to your backend servers, which can then use it to query the billing status or cancel the subscription remotely. If your app will store the token locally, please read the <a -href="{@docRoot}guide/google/play/billing/billing_best_practices.html">Security and +href="{@docRoot}google/play/billing/billing_best_practices.html">Security and Design</a> document for best practices for maintaining the security of your data.</p> @@ -565,7 +565,7 @@ transaction.. <p>The REQUEST_PURCHASE includes a Bundle containing the item details, as described in the <a -href="{@docRoot}guide/google/play/billing/billing_overview.html">In-app Billing +href="{@docRoot}google/play/billing/billing_overview.html">In-app Billing Overview</a>. For a subscription, the Bundle must also specify:</p> <ul> @@ -581,7 +581,7 @@ Overview</a>. For a subscription, the Bundle must also specify:</p> <code>RESPONSE_CODE</code>, <code>PURCHASE_INTENT</code>, and <code>REQUEST_ID</code>. Your app uses the <code>PURCHASE_INTENT</code> to launch the checkout UI and the message flow proceeds exactly as described in <a -href="{@docRoot}guide/google/play/billing/billing_overview.html#billing-message- +href="{@docRoot}google/play/billing/billing_overview.html#billing-message- sequence">Messaging sequence</a>.</p> <p>Here’s how the sample app initiates a purchase for a subscription, where @@ -638,7 +638,7 @@ the subscriptions that the user has purchased.</p> <p>The process for restoring subscriptions transactions is the same as described in <a -href="{@docRoot}guide/google/play/billing/billing_overview.html#billing-message- +href="{@docRoot}google/play/billing/billing_overview.html#billing-message- sequence">Messaging sequence</a>. Your app sends a <code>RESTORE_TRANSACTIONS</code> request to Google Play. Google Play sends two broadcast intents as asynchronous responses — a <code>RESPONSE_CODE</code> @@ -654,7 +654,7 @@ restore locally.</p> <p>Your app can store the restored purchase state and other transaction details in the way that best meets your needs. Your app can use it later to check the subscription validity, although please read the <a -href="{@docRoot}guide/google/play/billing/billing_best_practices.html">Security and +href="{@docRoot}google/play/billing/billing_best_practices.html">Security and Design</a> document for best practices for maintaining the security of your data.</p> @@ -788,7 +788,7 @@ your app does not need to grant further access to the subscription content.</p> <p>For subscriptions, you make the same types of modifications to your app as are described in <a -href="{@docRoot}guide/google/play/billing/billing_integrate.html#billing-implement"> +href="{@docRoot}google/play/billing/billing_integrate.html#billing-implement"> Modifying your Application Code</a>.</p> <p>Note that, in your UI that lets users view and select subscriptions for @@ -816,7 +816,7 @@ subscription product:</p> <li>Additional currency pricing (can be auto-filled)</li> </ul> -<p>For details, please see <a href="{@docRoot}guide/google/play/billing/billing_admin.html">Administering +<p>For details, please see <a href="{@docRoot}google/play/billing/billing_admin.html">Administering In-app Billing</a>.</p> diff --git a/docs/html/google/play/billing/billing_testing.jd b/docs/html/google/play/billing/billing_testing.jd index e2d4a01..edf7e70 100755 --- a/docs/html/google/play/billing/billing_testing.jd +++ b/docs/html/google/play/billing/billing_testing.jd @@ -13,20 +13,20 @@ parent.link=index.html </ol> <h2>Downloads</h2> <ol> - <li><a href="{@docRoot}guide/google/play/billing/billing_integrate.html#billing-download">Sample + <li><a href="{@docRoot}google/play/billing/billing_integrate.html#billing-download">Sample Application</a></li> </ol> <h2>See also</h2> <ol> - <li><a href="{@docRoot}guide/google/play/billing/billing_overview.html">Overview of In-app + <li><a href="{@docRoot}google/play/billing/billing_overview.html">Overview of In-app Billing</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_integrate.html">Implementing In-app + <li><a href="{@docRoot}google/play/billing/billing_integrate.html">Implementing In-app Billing</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_best_practices.html">Security and + <li><a href="{@docRoot}google/play/billing/billing_best_practices.html">Security and Design</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_admin.html">Administering In-app + <li><a href="{@docRoot}google/play/billing/billing_admin.html">Administering In-app Billing</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_reference.html">In-app Billing + <li><a href="{@docRoot}google/play/billing/billing_reference.html">In-app Billing Reference</a></li> </ol> </div> @@ -94,7 +94,7 @@ reserved product IDs.</p> request through your Google Wallet account, a refund message is sent to your application by Google Play. This occurs only when Google Play gets notification from Google Wallet that a refund has been made. For more information about refunds, see <a - href="{@docRoot}guide/google/play/billing/billing_overview.html#billing-action-notify">Handling + href="{@docRoot}google/play/billing/billing_overview.html#billing-action-notify">Handling IN_APP_NOTIFY messages</a> and <a href="http://www.google.com/support/androidmarket/bin/answer.py?answer=1153485">In-app Billing Pricing</a>.</p> @@ -108,7 +108,7 @@ reserved product IDs.</p> <p>In some cases, the reserved items may return signed static responses, which lets you test signature verification in your application. To test signature verification with the special reserved product IDs, you may need to set up <a -href="{@docRoot}guide/google/play/billing/billing_admin.html#billing-testing-setup">test accounts</a> or +href="{@docRoot}google/play/billing/billing_admin.html#billing-testing-setup">test accounts</a> or upload your application as a unpublished draft application. Table 1 shows you the conditions under which static responses are signed.</p> @@ -218,7 +218,7 @@ testing.</p> register at least one test account on the Google Play publisher site. You cannot use your developer account to test the complete in-app purchase process because Google Wallet does not let you buy items from yourself. If you have not set up test accounts before, see <a -href="{@docRoot}guide/google/play/billing/billing_admin.html#billing-testing-setup">Setting up test +href="{@docRoot}google/play/billing/billing_admin.html#billing-testing-setup">Setting up test accounts</a>.</p> <p>Also, a test account can purchase an item in your product list only if the item is published. The @@ -243,7 +243,7 @@ actual payouts to your merchant account.</p> </li> <li><strong>Add items to the application's product list.</strong> <p>Make sure that you publish the items (the application can remain unpublished). See <a - href="{@docRoot}guide/google/play/billing/billing_admin.html#billing-catalog">Creating a product + href="{@docRoot}google/play/billing/billing_admin.html#billing-catalog">Creating a product list</a> to learn how to do this.</p> </li> <li><strong>Install your application on an Android-powered device.</strong> @@ -256,7 +256,7 @@ actual payouts to your merchant account.</p> <li><strong>Make one of your test accounts the primary account on your device.</strong> <p>To perform end-to-end testing of in-app billing, the primary account on your device must be one of the <a - href="{@docRoot}guide/google/play/billing/billing_admin.html#billing-testing-setup">test accounts</a> + href="{@docRoot}google/play/billing/billing_admin.html#billing-testing-setup">test accounts</a> that you registered on the Google Play site. If the primary account on your device is not a test account, you must do a factory reset of the device and then sign in with one of your test accounts. To perform a factory reset, do the following:</p> diff --git a/docs/html/google/play/billing/index.jd b/docs/html/google/play/billing/index.jd index 134140d..80ba2d4 100755 --- a/docs/html/google/play/billing/index.jd +++ b/docs/html/google/play/billing/index.jd @@ -6,25 +6,25 @@ page.title=In-app Billing <h2>Topics</h2> <ol> - <li><a href="{@docRoot}guide/google/play/billing/billing_overview.html">Overview of In-app + <li><a href="{@docRoot}google/play/billing/billing_overview.html">Overview of In-app Billing</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_integrate.html">Implementing In-app + <li><a href="{@docRoot}google/play/billing/billing_integrate.html">Implementing In-app Billing</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_subscriptions.html">Subscriptions</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_best_practices.html">Security and - Design</a></li> <li><a href="{@docRoot}guide/google/play/billing/billing_testing.html">Testing In-app + <li><a href="{@docRoot}google/play/billing/billing_subscriptions.html">Subscriptions</a></li> + <li><a href="{@docRoot}google/play/billing/billing_best_practices.html">Security and + Design</a></li> <li><a href="{@docRoot}google/play/billing/billing_testing.html">Testing In-app Billing</a></li> - <li><a href="{@docRoot}guide/google/play/billing/billing_admin.html">Administering In-app + <li><a href="{@docRoot}google/play/billing/billing_admin.html">Administering In-app Billing</a></li> </ol> <h2>Reference</h2> <ol> - <li><a href="{@docRoot}guide/google/play/billing/billing_reference.html">In-app Billing + <li><a href="{@docRoot}google/play/billing/billing_reference.html">In-app Billing Reference</a></li> </ol> <h2>Downloads</h2> <ol> - <li><a href="{@docRoot}guide/google/play/billing/billing_integrate.html#billing-download">Sample + <li><a href="{@docRoot}google/play/billing/billing_integrate.html#billing-download">Sample Application</a></li> </ol> </div> @@ -43,7 +43,7 @@ and features, and more. You can use In-app Billing to sell products as</p> <div class="sidebox-wrapper"> <div class="sidebox"> <p><strong>Free trials for subscriptions</strong> <span class="new" style="font-size:.78em;">New!</span></p> - <p>You can now offer users a configurable <a href="{@docRoot}guide/google/play/billing/billing_subscriptions.html#trials">free trial period</a> for your in-app subscriptions. You can set up trials with a simple change in the Developer Console—no change to your app code is needed. + <p>You can now offer users a configurable <a href="{@docRoot}google/play/billing/billing_subscriptions.html#trials">free trial period</a> for your in-app subscriptions. You can set up trials with a simple change in the Developer Console—no change to your app code is needed. </div> </div> @@ -71,7 +71,7 @@ business logic you might use to implement in-app billing.</p> <p class="caution"><strong>Important</strong>: Although the sample application is a working example of how you can implement in-app billing, we <em>strongly recommend</em> that you modify and obfuscate the sample code before you use it in a production application. For more information, see -<a href="{@docRoot}guide/google/play/billing/billing_best_practices.html">Security and Design</a>.</p> +<a href="{@docRoot}google/play/billing/billing_best_practices.html">Security and Design</a>.</p> <img src="{@docRoot}images/billing_checkout_flow.png" height="382" id="figure1" /> <p class="img-caption"> @@ -84,29 +84,29 @@ obfuscate the sample code before you use it in a production application. For mor applications, read the following documents:</p> <dl> - <dt><strong><a href="{@docRoot}guide/google/play/billing/billing_overview.html">Overview of In-app + <dt><strong><a href="{@docRoot}google/play/billing/billing_overview.html">Overview of In-app Billing</a></strong></dt> <dd>Learn how the service works and what a typical in-app billing implementation looks like.</dd> - <dt><strong><a href="{@docRoot}guide/google/play/billing/billing_integrate.html">Implementing + <dt><strong><a href="{@docRoot}google/play/billing/billing_integrate.html">Implementing In-app Billing</a></strong></dt> <dd>Use this step-by-step guide to start incorporating in-app billing into your application. The instructions apply to both one-time and subscription purchases.</dd> - <dt><strong><a href="{@docRoot}guide/google/play/billing/billing_subscriptions.html">Subscriptions</a></strong></dt> + <dt><strong><a href="{@docRoot}google/play/billing/billing_subscriptions.html">Subscriptions</a></strong></dt> <dd>Learn how subscriptions work and how to implement support for them in your app.</dd> - <dt><strong><a href="{@docRoot}guide/google/play/billing/billing_best_practices.html">Security + <dt><strong><a href="{@docRoot}google/play/billing/billing_best_practices.html">Security and Design</a></strong></dt> <dd>Review these best practices to help ensure that your in-app billing implementation is secure and well designed.</dd> - <dt><strong><a href="{@docRoot}guide/google/play/billing/billing_testing.html">Testing In-app + <dt><strong><a href="{@docRoot}google/play/billing/billing_testing.html">Testing In-app Billing</a></strong></dt> <dd>Understand how the in-app billing test tools work and learn how to test your in-app billing implementation.</dd> - <dt><strong><a href="{@docRoot}guide/google/play/billing/billing_admin.html">Administering + <dt><strong><a href="{@docRoot}google/play/billing/billing_admin.html">Administering In-app Billing</a></strong></dt> <dd>Learn how to set up your product list, register test accounts, and handle refunds.</dd> - <dt><strong><a href="{@docRoot}guide/google/play/billing/billing_reference.html">In-app Billing + <dt><strong><a href="{@docRoot}google/play/billing/billing_reference.html">In-app Billing Reference</a></strong></dt> <dd>Get detailed information about Google Play response codes and the in-app billing interface.</dd> diff --git a/docs/html/google/play/dist.jd b/docs/html/google/play/dist.jd index 7e60315..20523f6 100644 --- a/docs/html/google/play/dist.jd +++ b/docs/html/google/play/dist.jd @@ -17,7 +17,7 @@ page.title=Google Play Distribution and Licensing <p> Make sure your app gets to the right users by filtering on a wide range of characteristics such as platform versions and hardware features. - </p><p><a href="{@docRoot}guide/google/play/filters.html">Learn more »</a></p> + </p><p><a href="{@docRoot}google/play/filters.html">Learn more »</a></p> </div> <div class="layout-content-col span-6"> @@ -27,7 +27,7 @@ page.title=Google Play Distribution and Licensing <p> Distribute different APKs based on a variety of properties such as platform version, screen size, and GLES texture compression support. - </p><p><a href="{@docRoot}guide/google/play/publishing/multiple-apks.html">Learn more »</a></p> + </p><p><a href="{@docRoot}google/play/publishing/multiple-apks.html">Learn more »</a></p> </div> <div class="layout-content-row"> @@ -39,7 +39,7 @@ page.title=Google Play Distribution and Licensing Tap into Google's content delivery services by serving up to 4GB of assets for free. Provide users with high-fidelity graphics, media files, or other large assets that are required by your app. - </p><a href="{@docRoot}guide/google/play/expansion-files.html">Learn more »</a> + </p><a href="{@docRoot}google/play/expansion-files.html">Learn more »</a> </div> <div class="layout-content-col span-6"> @@ -47,6 +47,6 @@ page.title=Google Play Distribution and Licensing Application Licensing </h4> <p>Protect your revenue streams and integrate policies for usage into your app. - </p><a href="{@docRoot}guide/google/play/licensing/index.html">Learn more »</a> + </p><a href="{@docRoot}google/play/licensing/index.html">Learn more »</a> </div> </div>
\ No newline at end of file diff --git a/docs/html/google/play/expansion-files.jd b/docs/html/google/play/expansion-files.jd index 9cd1bb1..271c192 100644 --- a/docs/html/google/play/expansion-files.jd +++ b/docs/html/google/play/expansion-files.jd @@ -52,8 +52,8 @@ page.title=APK Expansion Files <h2>See also</h2> <ol> - <li><a href="{@docRoot}guide/google/play/licensing/index.html">Application Licensing</a></li> - <li><a href="{@docRoot}guide/google/play/publishing/multiple-apks.html">Multiple + <li><a href="{@docRoot}google/play/licensing/index.html">Application Licensing</a></li> + <li><a href="{@docRoot}google/play/publishing/multiple-apks.html">Multiple APK Support</a></li> </ol> </div> @@ -216,7 +216,7 @@ already saved on the device. <li>If yes, your app is ready to go.</li> <li>If no, your app must download the expansion files over HTTP from Google Play. Your app must send a request to the Google Play client using the Google Play's <a -href="{@docRoot}guide/google/play/licensing/index.html">Application Licensing</a> service, which +href="{@docRoot}google/play/licensing/index.html">Application Licensing</a> service, which responds with the name, file size, and URL for each expansion file. With this information, you then download the files and save them to the proper <a href="#StorageLocation">storage location</a>.</li> </ol> @@ -243,7 +243,7 @@ application:</p> Space is precious and you should keep your total application size as small as possible. If your app uses more than 50MB in order to provide multiple versions of your graphic assets for multiple screen densities, consider instead publishing <a -href="{@docRoot}guide/google/play/publishing/multiple-apks.html">multiple APKs</a> in which each APK +href="{@docRoot}google/play/publishing/multiple-apks.html">multiple APKs</a> in which each APK contains only the assets required for the screens that it targets.</li> <li>Determine which application resources to separate from your APK and package them in a file to use as the main expansion file. @@ -260,7 +260,7 @@ Library</a>.</p> </li> <li>Add logic to your application's main activity that checks whether the expansion files are on the device upon start-up. If the files are not on the device, use Google Play's <a -href="{@docRoot}guide/google/play/licensing/index.html">Application Licensing</a> service to request URLs +href="{@docRoot}google/play/licensing/index.html">Application Licensing</a> service to request URLs for the expansion files, then download and save them. <p>To greatly reduce the amount of code you must write and ensure a good user experience during the download, we recommend you use the <a href="#AboutLibraries">Downloader @@ -293,16 +293,16 @@ provide the URLs for your expansion files if the application was installed by ot provides for each file is unique for every download and each one expires shortly after it is given to your application.</li> <li>If you update your application with a new APK or upload <a -href="{@docRoot}guide/google/play/publishing/multiple-apks.html">multiple APKs</a> for the same +href="{@docRoot}google/play/publishing/multiple-apks.html">multiple APKs</a> for the same application, you can select expansion files that you've uploaded for a previous APK. <strong>The expansion file's name does not change</strong>—it retains the version received by the APK to which the file was originally associated.</li> <li>If you use expansion files in combination with <a -href="{@docRoot}guide/google/play/publishing/multiple-apks.html">multiple APKs</a> in order to +href="{@docRoot}google/play/publishing/multiple-apks.html">multiple APKs</a> in order to provide different expansion files for different devices, you still must upload separate APKs for each device in order to provide a unique <a href="{@docRoot}guide/topics/manifest/manifest-element.html#vcode">{@code versionCode}</a> -value and declare different <a href="{@docRoot}guide/google/play/filters.html">filters</a> for +value and declare different <a href="{@docRoot}google/play/filters.html">filters</a> for each APK.</li> <li>You cannot issue an update to your application by changing the expansion files alone—<strong>you must upload a new APK</strong> to update your app. If your changes only @@ -334,7 +334,7 @@ time it installs or updates the APK. This way, the expansion files are available application launches for the first time. However, in some cases your app must download the expansion files itself by requesting them from a URL provided to you in a response from Google Play's <a -href="{@docRoot}guide/google/play/licensing/index.html">Application Licensing</a> service.</p> +href="{@docRoot}google/play/licensing/index.html">Application Licensing</a> service.</p> <p>The basic logic you need to download your expansion files is the following:</p> @@ -347,7 +347,7 @@ href="#StorageLocation">shared storage location</a> (in the <li>If the expansion files are <em>not</em> there: <ol> <li>Perform a request using Google Play's <a -href="{@docRoot}guide/google/play/licensing/index.html">Application Licensing</a> to get your +href="{@docRoot}google/play/licensing/index.html">Application Licensing</a> to get your app's expansion file names, sizes, and URLs.</li> <li>Use the URLs provided by Google Play to download the expansion files and save the expansion files. You <strong>must</strong> save the files to the <a @@ -366,7 +366,7 @@ your application.</p> <p>If your application is free (not a paid app), then you probably haven't used the <a -href="{@docRoot}guide/google/play/licensing/index.html">Application Licensing</a> service. It's primarily +href="{@docRoot}google/play/licensing/index.html">Application Licensing</a> service. It's primarily designed for you to enforce licensing policies for your application and ensure that the user has the right to use your app (he or she rightfully paid for it on Google Play). In order to facilitate the @@ -410,7 +410,7 @@ download your expansion files. The information in the following sections explain the library into your application.</p> <p>If you'd rather develop your own solution to download the expansion files using the Google -Play URLs, you must follow the <a href="{@docRoot}guide/google/play/licensing/index.html">Application +Play URLs, you must follow the <a href="{@docRoot}google/play/licensing/index.html">Application Licensing</a> documentation to perform a license request, then retrieve the expansion file names, sizes, and URLs from the response extras. You should use the <a href="#ExpansionPolicy">{@code APKExpansionPolicy}</a> class (included in the License Verification Library) as your licensing @@ -572,11 +572,11 @@ DownloaderService} class and override three methods to provide specific applicat <dt>{@code getPublicKey()}</dt> <dd>This must return a string that is the Base64-encoded RSA public key for your publisher account, available from the profile page on the Developer Console (see <a -href="{@docRoot}guide/google/play/licensing/setting-up.html">Setting Up for Licensing</a>).</dd> +href="{@docRoot}google/play/licensing/setting-up.html">Setting Up for Licensing</a>).</dd> <dt>{@code getSALT()}</dt> <dd>This must return an array of random bytes that the licensing {@code Policy} uses to create an <a -href="{@docRoot}guide/google/play/licensing/adding-licensing.html#impl-Obfuscator">{@code +href="{@docRoot}google/play/licensing/adding-licensing.html#impl-Obfuscator">{@code Obfuscator}</a>. The salt ensures that your obfuscated {@link android.content.SharedPreferences} file in which your licensing data is saved will be unique and non-discoverable.</dd> <dt>{@code getAlarmReceiverClassName()}</dt> @@ -925,7 +925,7 @@ expansion files:</p> <p>For more information about how to use the {@code APKExpansionPolicy} when you're <em>not</em> using the <a href="#AboutLibraries">Downloader Library</a>, see the documentation for <a -href="{@docRoot}guide/google/play/licensing/adding-licensing.html">Adding Licensing to Your App</a>, +href="{@docRoot}google/play/licensing/adding-licensing.html">Adding Licensing to Your App</a>, which explains how to implement a license policy such as this one.</p> diff --git a/docs/html/google/play/filters.jd b/docs/html/google/play/filters.jd index 3db9cb6..eeb2215 100644 --- a/docs/html/google/play/filters.jd +++ b/docs/html/google/play/filters.jd @@ -6,19 +6,18 @@ page.title=Filters on Google Play <h2>Quickview</h2> <ul> -<li>Google Play applies filters that control which Android-powered devices can access your -application when the user is visiting the store.</li> -<li>Filtering is determined by comparing device configurations that you declare in you app's -manifest file to the configurations defined by the device, as well as other factors.</li> </ul> +<li>Google Play applies filters to control which Android devices can download +your application from the store.</li> +<li>Filtering ensures that your apps are available only to users whose devices meet your app's compatibility requirements. +<li>Filtering is determined by the configuration requirements that you declare in you app's +manifest file, as well as other factors.</li> +</ul> <h2>In this document</h2> <ol> <li><a href="#how-filters-work">How Filters Work on Google Play</a></li> <li><a href="#manifest-filters">Filtering based on Manifest Elements</a> - <ol> - <li><a href="#advanced-filters">Advanced manifest filters</a></li> - </ol> </li> <li><a href="#other-filters">Other Filters</a></li> <li><a href="#MultiApks">Publishing Multiple APKs with Different Filters</a></li> @@ -44,53 +43,44 @@ href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-per href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><uses-sdk></code></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_play.png" style="float:left;margin:0;padding:0 5px;"> - <h2 style="color:#669999;padding-top:1em;">Interested in publishing your app on Google Play?</h2> - <p><a id="publish-link" -href="http://play.google.com/apps/publish">Go to Google Play</a> to create a publisher -account and upload your app.</p></div> -</div> - </div> </div> +<p>When a user searches or browses for apps to download on Google Play, the +results are filtered based on which applications are compatible with the device. +For example, if an app requires a camera, Google Play would not show the app to devices +that do not have a camera. This <em>filtering</em> helps developers manage the +distribution of their apps and helps ensure the best possible experience for +users.</p> -<p>When a user searches or browses on Google Play on an Android device, the results are filtered -based on which applications are compatible with that device. For example, if an application -requires a camera (as specified in the application manifest file), then Google Play will not show -the app on any device that does not have a camera.</p> - -<p>Declarations in the manifest file that are compared to the device's configuration is not the -only part of how applications are filtered. Filtering might also occur due to the user's country and -carrier, the presence or absence of a SIM card, and other factors. </p> +<p>Filtering in Google Play is based on several types of app metadata and +configuration settings, including manifest declarations, required +libraries,architecture dependencies, and distribution controls set in the Google +Play Developer Console, such as geographic targeting, pricing, and more.</p> -<p>Changes to the Google Play filters are independent of changes to the Android platform itself. -This document is updated periodically to reflect any changes that affect the way Google Play -filters applications.</p> +<p>Google Play filtering is based in part on manifest declarations and other +aspects of the Android framework, but actual filtering behaviors are distinct +from the framework and are not bound to specific API levels. This document +specifies the current filtering rules used by Google Play.</p> <h2 id="how-filters-work">How Filters Work on Google Play</h2> <p>Google Play uses the filter restrictions described below to determine whether to show your application to a user who is browsing or searching for -applications from the Google Play app. When determining whether to display your app, -Google Play checks the device's hardware and software configuration, as well as it's -carrier, location, and other characteristics. It then compares those against the -restrictions and dependencies expressed by the application's -manifest file and publishing details. If the application is -compatible with the device according to the filter rules, Google Play displays the -application to the user. Otherwise, Google Play hides your application from search -results and category browsing, even if a user specifically requests -the app by clicking a deep link that points directly to the app's ID within Google Play..</p> - -<p class="note"><strong>Note:</strong> When users browse the <a -href="http://play.google.com/apps">Google Play web site</a>, they can see all published -applications. The Google Play web site compares the application requirements to each of the -user's registered devices for compatibility, though, and only allows them to install the application -if it's compatible with their device.</p> +applications from the Google Play app.</p> + +<p>When determining whether to display your app, Google Play checks the device's +hardware and software requirement, as well as it's carrier, location, and other +characteristics. It then compares those against the restrictions and +dependencies expressed by the application's manifest file and publishing +details. </p> + +<p>If the application is compatible with the device according to the filter +rules, Google Play displays the application to the user. Otherwise, Google Play +hides your application from search results and category browsing, even if a user +specifically requests the app by clicking a deep link that points directly to +the app's ID within Google Play.</p> <p>You can use any combination of the available filters for your app. For example, you can set a <code>minSdkVersion</code> requirement of <code>"4"</code> and set <code>smallScreens="false"</code> @@ -103,8 +93,15 @@ change between versions. For example, if a user has installed your application a update that makes the app invisible to the user, the user will not see that an update is available.</p> +<h4>Filtering on the Google Play web site</h4> + +<p>When users browse the <a href="http://play.google.com/apps">Google Play web +site</a>, they can see all published applications. The Google Play web site +compares the application requirements to each of the user's registered devices +for compatibility, though, and only allows them to install the application if +it's compatible with their device.</p> -<h2 id="manifest-filters">Filtering based on Manifest Elements</h2> +<h2 id="manifest-filters">Filtering based on the App Manifest</h2> <p>Most filters are triggered by elements within an application's manifest file, <a @@ -451,4 +448,4 @@ requires that you follow specific rules within your filters and that you pay ext version codes for each APK to ensure proper update paths for each configuration.</p> <p>If you need more information about how to publish multiple APKs on Google Play, read <a -href="{@docRoot}guide/google/play/publishing/multiple-apks.html">Multiple APK Support</a>.</p> +href="{@docRoot}google/play/publishing/multiple-apks.html">Multiple APK Support</a>.</p> diff --git a/docs/html/google/play/licensing/adding-licensing.jd b/docs/html/google/play/licensing/adding-licensing.jd index 4a45de3..15d1e92 100644 --- a/docs/html/google/play/licensing/adding-licensing.jd +++ b/docs/html/google/play/licensing/adding-licensing.jd @@ -72,11 +72,11 @@ most applications).</li> <p>The sections below describe these tasks. When you are done with the integration, you should be able to compile your application successfully and you can begin testing, as described in <a -href="{@docRoot}guide/google/play/licensing/setting-up.html#test-env">Setting Up the Test +href="{@docRoot}google/play/licensing/setting-up.html#test-env">Setting Up the Test Environment</a>.</p> <p>For an overview of the full set of source files included in the LVL, see <a -href="{@docRoot}guide/google/play/licensing/licensing-reference.html#lvl-summary">Summary of LVL Classes +href="{@docRoot}google/play/licensing/licensing-reference.html#lvl-summary">Summary of LVL Classes and Interfaces</a>.</p> @@ -224,7 +224,7 @@ in local persistent storage.</li> cached response is valid, rather than making a request to the licensing server. Setting the response validity according to the server-provided <code>VT</code> extra is highly recommended. See <a -href="{@docRoot}guide/google/play/licensing/licensing-reference.html#extras">Server Response Extras</a> +href="{@docRoot}google/play/licensing/licensing-reference.html#extras">Server Response Extras</a> for more information.</li> <li>Uses an exponential backoff period, if retrying any requests the result in errors. Note that the Google Play client automatically retries failed @@ -247,7 +247,7 @@ server-provided settings is straightforward and making use of them is highly recommended. See the ServerManagedPolicy implementation for an example of how to extract and use the extras. For a list of server settings and information about how to use them, see <a -href="{@docRoot}guide/google/play/licensing/licensing-reference.html#extras">Server Response +href="{@docRoot}google/play/licensing/licensing-reference.html#extras">Server Response Extras</a>.</p> <h3 id="ServerManagedPolicy">ServerManagedPolicy</h3> @@ -261,7 +261,7 @@ settings to the responses, to help the application manage licensing effectively. </p> <p style="margin-top:.5em;">See <a -href="{@docRoot}guide/google/play/licensing/licensing-reference.html#extras">Server Response Extras</a> +href="{@docRoot}google/play/licensing/licensing-reference.html#extras">Server Response Extras</a> for a list of settings and <code>ServerManagedPolicy.java</code> for information about how a {@code Policy} can use the extras.</p> @@ -294,7 +294,7 @@ retry count, among others. ServerManagedPolicy extracts the values from the license response in its <code>processServerResponse()</code> method and checks them in its <code>allowAccess()</code> method. For a list of the server-provided settings used by ServerManagedPolicy, see <a -href="{@docRoot}guide/google/play/licensing/licensing-reference.html#extras">Server Response +href="{@docRoot}google/play/licensing/licensing-reference.html#extras">Server Response Extras</a>.</p> <p>For convenience, best performance, and the benefit of using license settings @@ -697,9 +697,9 @@ private class MyLicenseCheckerCallback implements LicenseCheckerCallback { <p>Additionally, you should implement the <code>applicationError()</code> method, which the LVL calls to let your application handle errors that are not retryable. For a list of such errors, see <a -href="{@docRoot}guide/google/play/licensing/licensing-reference.html#server-response-codes">Server +href="{@docRoot}google/play/licensing/licensing-reference.html#server-response-codes">Server Response Codes</a> in the <a -href="{@docRoot}guide/google/play/licensing/licensing-reference.html">Licensing Reference</a>. You can implement +href="{@docRoot}google/play/licensing/licensing-reference.html">Licensing Reference</a>. You can implement the method in any way needed. In most cases, the method should log the error code and call <code>dontAllow()</code>.</p> diff --git a/docs/html/google/play/licensing/index.jd b/docs/html/google/play/licensing/index.jd index d393738..a13be10 100644 --- a/docs/html/google/play/licensing/index.jd +++ b/docs/html/google/play/licensing/index.jd @@ -31,25 +31,25 @@ on Google Play. However, any application (including free apps) may use the licen to initiate the download of an APK expansion file. In which case, the request that your application sends to the licensing service is not to check whether the user paid for the app, but to request the URL of the expansion files. For information about downloading expansion files for your application, -read the guide to <a href="{@docRoot}guide/google/play/expansion-files.html">APK Expansion Files</a>.</p> +read the guide to <a href="{@docRoot}google/play/expansion-files.html">APK Expansion Files</a>.</p> <p>To learn more about Google Play's application licensing service and start integrating it into your applications, read the following documents:</p> <dl> - <dt><strong><a href="{@docRoot}guide/google/play/licensing/overview.html">Licensing + <dt><strong><a href="{@docRoot}google/play/licensing/overview.html">Licensing Overview</a></strong></dt> <dd>Describes how the service works and what a typical licensing implementation looks like.</dd> - <dt><strong><a href="{@docRoot}guide/google/play/licensing/setting-up.html">Setting Up for + <dt><strong><a href="{@docRoot}google/play/licensing/setting-up.html">Setting Up for Licensing</a></strong></dt> <dd>Explains how to set up your Google Play account, development environment, and testing environment in order to add licensing to your app.</dd> - <dt><strong><a href="{@docRoot}guide/google/play/licensing/adding-licensing.html">Adding + <dt><strong><a href="{@docRoot}google/play/licensing/adding-licensing.html">Adding Licensing to Your App</a></strong></dt> <dd>Provides a step-by-step guide to add licensing verification to your application.</dd> - <dt><strong><a href="{@docRoot}guide/google/play/licensing/licensing-reference.html">Licensing + <dt><strong><a href="{@docRoot}google/play/licensing/licensing-reference.html">Licensing Reference</a></strong></dt> <dd>Provides detailed information about the licensing library's classes and the service response codes.</dd> diff --git a/docs/html/google/play/licensing/licensing-reference.jd b/docs/html/google/play/licensing/licensing-reference.jd index d3d5224..79c818c 100644 --- a/docs/html/google/play/licensing/licensing-reference.jd +++ b/docs/html/google/play/licensing/licensing-reference.jd @@ -230,7 +230,7 @@ implementation.</p> </table> <p class="note"><strong>Note:</strong> As documented in <a -href="{@docRoot}guide/google/play/licensing/setting-up.html#test-env"> +href="{@docRoot}google/play/licensing/setting-up.html#test-env"> Setting Up The Testing Environment</a>, the response code can be manually overridden for the application developer and any registered test users via the Google Play publisher site. @@ -251,13 +251,13 @@ testing purposes.</p> period and provide other information, The licensing server includes several pieces of information in the license responses. Specifically, the service provides recommended values for the application's license validity period, retry grace period, maximum allowable retry count, and other -settings. If your application uses <a href="{@docRoot}guide/google/play/expansion-files.html">APK +settings. If your application uses <a href="{@docRoot}google/play/expansion-files.html">APK expansion files</a>, the response also includes the file names, sizes, and URLs. The server appends the settings as key-value pairs in the license response "extras" field. </p> <p>Any {@code Policy} implementation can extract the extras settings from the license response and use them as needed. The LVL default {@code Policy} implementation, <a -href="{@docRoot}guide/google/play/licensing/adding-licensing.html#ServerManagedPolicy">{@code +href="{@docRoot}google/play/licensing/adding-licensing.html#ServerManagedPolicy">{@code ServerManagedPolicy}</a>, serves as a working implementation and an illustration of how to obtain, store, and use the settings. </p> diff --git a/docs/html/google/play/licensing/overview.jd b/docs/html/google/play/licensing/overview.jd index 467a3a2..1123748 100644 --- a/docs/html/google/play/licensing/overview.jd +++ b/docs/html/google/play/licensing/overview.jd @@ -206,7 +206,7 @@ secure.</li> functions when run on a device that does not offer Google Play.</li> <li>You can implement licensing controls for a free app, but only if you're using the service to provide <a -href="{@docRoot}guide/google/play/expansion-files.html">APK expansion files</a>.</li> +href="{@docRoot}google/play/expansion-files.html">APK expansion files</a>.</li> </ul> @@ -237,7 +237,7 @@ across all compatible devices, locked or unlocked, that run Android 1.5 or higher version of the platform.</p> <p>To begin adding application licensing to your application, continue to <a -href="{@docRoot}guide/google/play/licensing/setting-up.html">Setting Up for Licensing</a>.</p> +href="{@docRoot}google/play/licensing/setting-up.html">Setting Up for Licensing</a>.</p> diff --git a/docs/html/google/play/licensing/setting-up.jd b/docs/html/google/play/licensing/setting-up.jd index 80a4419..77e9d09 100644 --- a/docs/html/google/play/licensing/setting-up.jd +++ b/docs/html/google/play/licensing/setting-up.jd @@ -102,7 +102,7 @@ responses, see <a href="#test-env">Setting Up a Testing Environment</a>, below. </ol> <p>The sections below describe these tasks. When you are done with setup, -you can begin <a href="{@docRoot}guide/google/play/licensing/adding-licensing.html">Adding +you can begin <a href="{@docRoot}google/play/licensing/adding-licensing.html">Adding Licensing to Your App</a>.</p> <p>To get started, you need to set up a proper runtime environment on which @@ -358,7 +358,7 @@ LVL's <code>library/src/com</code> directory into your application's <p>If you add the LVL sources directly to your application, you can skip the next section and start working with the library, as described in <a -href="{@docRoot}guide/google/play/licensing/adding-licensing.html">Adding +href="{@docRoot}google/play/licensing/adding-licensing.html">Adding Licensing to Your App</a>.</p> @@ -483,9 +483,9 @@ test in your application.</p> <p>In general, you should make sure to test your application's licensing implementation with every response code available in the Test Response menu. For a description of the codes, see <a -href="{@docRoot}guide/google/play/licensing/licensing-reference.html#server-response-codes">Server +href="{@docRoot}google/play/licensing/licensing-reference.html#server-response-codes">Server Response Codes</a> in the <a -href="{@docRoot}guide/google/play/licensing/licensing-reference.html">Licensing Reference</a>.</p> +href="{@docRoot}google/play/licensing/licensing-reference.html">Licensing Reference</a>.</p> <img src="{@docRoot}images/licensing_test_response.png" alt=""/> <p class="img-caption"><strong>Figure 4.</strong> The Licensing @@ -506,7 +506,7 @@ sign using either your publisher account or one of the test accounts that you have set up. For more information about test accounts, see the next section.</p> <p>See <a -href="{@docRoot}guide/google/play/licensing/licensing-reference.html#server-response-codes">Server +href="{@docRoot}google/play/licensing/licensing-reference.html#server-response-codes">Server Response Codes</a> for a list of test responses available and their meanings. </p> @@ -695,7 +695,7 @@ publisher account or test account each time you wipe data when restarting the emulator.</p> <p>Once you've completed the setup procedures, continue to <a -href="{@docRoot}guide/google/play/licensing/adding-licensing.html">Adding Licensing to Your App</a>.</p> +href="{@docRoot}google/play/licensing/adding-licensing.html">Adding Licensing to Your App</a>.</p> diff --git a/docs/html/google/play/publishing/multiple-apks.jd b/docs/html/google/play/publishing/multiple-apks.jd index 0619dfc..fc9e0f9 100644 --- a/docs/html/google/play/publishing/multiple-apks.jd +++ b/docs/html/google/play/publishing/multiple-apks.jd @@ -44,8 +44,8 @@ support all desired devices with a single APK</li> <h2>See also</h2> <ol> - <li><a href="{@docRoot}guide/google/play/expansion-files.html">APK Expansion Files</a></li> - <li><a href="{@docRoot}guide/google/play/filters.html">Filters on Google Play</a></li> + <li><a href="{@docRoot}google/play/expansion-files.html">APK Expansion Files</a></li> + <li><a href="{@docRoot}google/play/filters.html">Filters on Google Play</a></li> <li><a href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple Screens</a></li> <li><a href="{@docRoot}tools/extras/support-library.html">Support Library</a></li> <li><a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels">Android API Levels</a></li> @@ -194,7 +194,7 @@ following sections describe more about how it works.</p> <h3 id="SupportedFilters">Supported filters</h3> <p>Which devices receive each APK is determined by <a -href="{@docRoot}guide/google/play/filters.html">Google Play filters</a> that are specified by +href="{@docRoot}google/play/filters.html">Google Play filters</a> that are specified by elements in the manifest file of each APK. However, Google Play allows you to publish multiple APKs only when each APK uses filters to support a variation of the following device characteristics:</p> @@ -293,7 +293,7 @@ higher, as per the previous note).</li> </ul> <p>Other manifest elements that enable <a -href="{@docRoot}guide/google/play/filters.html">Google Play filters</a>—but are not +href="{@docRoot}google/play/filters.html">Google Play filters</a>—but are not listed above—are still applied for each APK as usual. However, Google Play does not allow you to publish separate APKs based on variations of those device characteristics. Thus, you cannot publish multiple APKs if the above listed filters are the same for each APK (but the APKs differ diff --git a/docs/html/guide/appendix/install-location.jd b/docs/html/guide/appendix/install-location.jd index 19c4b39..50f6d27 100644 --- a/docs/html/guide/appendix/install-location.jd +++ b/docs/html/guide/appendix/install-location.jd @@ -174,7 +174,7 @@ external storage, it can never receive this broadcast.</dd> <dt>Copy Protection</dt> <dd>Your application cannot be installed to a device's SD card if it uses Google Play's Copy Protection feature. However, if you use Google Play's - <a href="{@docRoot}guide/google/play/licensing.html">Application Licensing</a> instead, your + <a href="{@docRoot}google/play/licensing.html">Application Licensing</a> instead, your application <em>can</em> be installed to internal or external storage, including SD cards.</dd> </dl> diff --git a/docs/html/guide/components/fundamentals.jd b/docs/html/guide/components/fundamentals.jd index 1717782..2c33a26 100644 --- a/docs/html/guide/components/fundamentals.jd +++ b/docs/html/guide/components/fundamentals.jd @@ -463,7 +463,7 @@ applications are available on each device. As such, your application should be a devices that meet all your application requirements.</p> <p>For more information about how Google Play filters applications based on these (and other) -requirements, see the <a href="{@docRoot}guide/google/play/filters.html">Filters on Google Play</a> +requirements, see the <a href="{@docRoot}google/play/filters.html">Filters on Google Play</a> document.</p> diff --git a/docs/html/guide/practices/compatibility.jd b/docs/html/guide/practices/compatibility.jd index a2284bd..bc58403 100644 --- a/docs/html/guide/practices/compatibility.jd +++ b/docs/html/guide/practices/compatibility.jd @@ -7,7 +7,7 @@ page.title=Android Compatibility <h2>See also</h2> <ol> <li><a -href="{@docRoot}guide/google/play/filters.html">Filtering on Google Play</a></li> +href="{@docRoot}google/play/filters.html">Filtering on Google Play</a></li> <li><a href="{@docRoot}guide/topics/resources/providing-resources.html#AlternativeResources">Providing Alternative Resources</a></li> <li><a @@ -119,7 +119,7 @@ device. <p style="margin-top:1em;">For information about other filters that you can use to control the availability of your apps, see the -<a href="{@docRoot}guide/google/play/filters.html">Filters on Google Play</a> +<a href="{@docRoot}google/play/filters.html">Filters on Google Play</a> document.</p> </div> </div> diff --git a/docs/html/guide/practices/screens-distribution.jd b/docs/html/guide/practices/screens-distribution.jd index 90ac752..29d2a8c 100644 --- a/docs/html/guide/practices/screens-distribution.jd +++ b/docs/html/guide/practices/screens-distribution.jd @@ -213,4 +213,4 @@ sizes, especially, is within reason using a single APK, as long as you follow th <a href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple Screens</a>.</p> <p>If you need more information about how to publish multiple APKs on Google Play, read <a -href="{@docRoot}guide/google/play/publishing/multiple-apks.html">Multiple APK Support</a>.</p> +href="{@docRoot}google/play/publishing/multiple-apks.html">Multiple APK Support</a>.</p> diff --git a/docs/html/guide/topics/data/install-location.jd b/docs/html/guide/topics/data/install-location.jd index 5abdced..061a2c0 100644 --- a/docs/html/guide/topics/data/install-location.jd +++ b/docs/html/guide/topics/data/install-location.jd @@ -167,7 +167,7 @@ external storage, it can never receive this broadcast.</dd> <dt>Copy Protection</dt> <dd>Your application cannot be installed to a device's SD card if it uses Google Play's Copy Protection feature. However, if you use Google Play's - <a href="{@docRoot}guide/google/play/licensing/index.html">Application Licensing</a> instead, your + <a href="{@docRoot}google/play/licensing/index.html">Application Licensing</a> instead, your application <em>can</em> be installed to internal or external storage, including SD cards.</dd> </dl> diff --git a/docs/html/guide/topics/manifest/compatible-screens-element.jd b/docs/html/guide/topics/manifest/compatible-screens-element.jd index bb004fb..9ef44fe 100644 --- a/docs/html/guide/topics/manifest/compatible-screens-element.jd +++ b/docs/html/guide/topics/manifest/compatible-screens-element.jd @@ -54,7 +54,7 @@ href="{@docRoot}guide/topics/manifest/supports-screens-element.html">{@code <supports-screens>}</a> element to declare whether the system should resize your application for different screen sizes.</p> - <p>Also see the <a href="{@docRoot}guide/google/play/filters.html">Filters on Google Play</a> + <p>Also see the <a href="{@docRoot}google/play/filters.html">Filters on Google Play</a> document for more information about how Google Play filters applications using this and other manifest elements.</p> @@ -138,5 +138,5 @@ entry looks like if your application is compatible with only small and normal sc <dt>see also:</dt> <dd><a href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple Screens</a></dd> -<dd><a href="{@docRoot}guide/google/play/filters.html">Filters on Google Play</a></dd> +<dd><a href="{@docRoot}google/play/filters.html">Filters on Google Play</a></dd> </dl> diff --git a/docs/html/guide/topics/manifest/manifest-element.jd b/docs/html/guide/topics/manifest/manifest-element.jd index 4807a5e..fd9f203 100644 --- a/docs/html/guide/topics/manifest/manifest-element.jd +++ b/docs/html/guide/topics/manifest/manifest-element.jd @@ -152,7 +152,7 @@ either internal or external storage through the system settings.</td> <p class="caution"><strong>Caution:</strong> If your application uses Google Play's Copy Protection feature, it cannot be installed to a device's SD card. However, if you use Google - Play's <a href="{@docRoot}guide/google/play/licensing/index.html">Application Licensing</a> instead, + Play's <a href="{@docRoot}google/play/licensing/index.html">Application Licensing</a> instead, your application <em>can</em> be installed to internal or external storage, including SD cards.</p> <p class="note"><strong>Note:</strong> By default, your application will be installed on the diff --git a/docs/html/guide/topics/manifest/supports-gl-texture-element.jd b/docs/html/guide/topics/manifest/supports-gl-texture-element.jd index 6dfc59e..65d3d40 100644 --- a/docs/html/guide/topics/manifest/supports-gl-texture-element.jd +++ b/docs/html/guide/topics/manifest/supports-gl-texture-element.jd @@ -3,38 +3,36 @@ parent.title=The AndroidManifest.xml File parent.link=manifest-intro.html @jd:body + <div class="sidebox-wrapper"> + <div class="sidebox"> + <img src="{@docRoot}assets/images/icon_play.png" style="float:left;margin:0;padding:0;"> + <p style="color:#669999;padding-top:1em;">Google Play Filtering</p> + <p style="padding-top:1em;">Google Play filters applications according + to the texture compression formats that they support, to ensure that + they can be installed only on devices that can handle their textures + properly. You can use texture compression filtering + as a way of targeting specific device types, based on GPU platform.</p> + + <p style="margin-top:1em;">For important information about how + Google Play uses <code><supports-gl-texture></code> elements as + the basis for filtering, please read <a href="#market-texture-filtering">Google + Play and texture compression filtering</a>, below.</p> +</div> +</div> + <dl class="xml"> <dt>syntax:</dt> <dd> <pre class="stx"> -<supports-gl-texture android:<a href="#name">name</a>="<em>string</em>" /> +<supports-gl-texture + android:<a href="#name">name</a>="<em>string</em>" /> </pre> </dd> <dt>contained in:</dt> <dd><code><a href="{@docRoot}guide/topics/manifest/manifest-element.html"><manifest></a></code></dd> - <div class="sidebox-wrapper"> - <img id="rule" src="{@docRoot}assets/images/grad-rule-qv.png"> - <div id="qv-sub-rule"> - <img src="{@docRoot}assets/images/icon_play.png" - style="float:left;margin:0;padding:0;"> - <p style="color:#669999;padding-top:1em;">Google Play and <code - style="color:#669999;"><supports-gl-texture></code> elements</p> - <p style="margin-top:1em;">Google Play filters applications according - to the texture compression formats that they support, to ensure that - they can be installed only on devices that can handle their textures - properly. Developers can use texture compression filtering - as a way of targeting specific device types, based on GPU platform.</p> - - <p style="margin-top:1em;" class="caution">For important information about how - Google Play uses <code><supports-gl-texture></code> elements as - the basis for filtering, please read <a href="#market-texture-filtering">Google - Play and texture compression filtering</a>, below.</p> -</div> -</div> - <dt>description:</dt> <dd>Declares a single GL texture compression format that is supported by the application. @@ -141,7 +139,7 @@ and others.</td> <dt>see also:</dt> <dd> <ul> - <li><a href="{@docRoot}guide/google/play/filters.html">Filters on Google Play</a></li> + <li><a href="{@docRoot}google/play/filters.html">Filters on Google Play</a></li> </ul> </dd> diff --git a/docs/html/guide/topics/manifest/uses-configuration-element.jd b/docs/html/guide/topics/manifest/uses-configuration-element.jd index 20ec85f..810975e 100755 --- a/docs/html/guide/topics/manifest/uses-configuration-element.jd +++ b/docs/html/guide/topics/manifest/uses-configuration-element.jd @@ -16,14 +16,12 @@ easier to update the doc when the change is made. --> <dl class="xml"> <dt>syntax:</dt> -<dd><pre class="stx"><uses-configuration android:<a href="#five">reqFiveWayNav</a>=["true" | "false"] - android:<a href="#hard">reqHardKeyboard</a>=["true" | "false"] - android:<a href="#kbd">reqKeyboardType</a>=["undefined" | "nokeys" | "qwerty" | - "twelvekey"] - android:<a href="#nav">reqNavigation</a>=["undefined" | "nonav" | "dpad" | - "trackball" | "wheel"] - android:<a href="#touch">reqTouchScreen</a>=["undefined" | "notouch" | "stylus" | - "finger"] /></pre></dd> +<dd><pre class="stx"><uses-configuration + android:<a href="#five">reqFiveWayNav</a>=["true" | "false"] + android:<a href="#hard">reqHardKeyboard</a>=["true" | "false"] + android:<a href="#kbd">reqKeyboardType</a>=["undefined" | "nokeys" | "qwerty" | "twelvekey"] + android:<a href="#nav">reqNavigation</a>=["undefined" | "nonav" | "dpad" | "trackball" | "wheel"] + android:<a href="#touch">reqTouchScreen</a>=["undefined" | "notouch" | "stylus" | "finger"] /></pre></dd> <dt>contained in:</dt> <dd><code><a href="{@docRoot}guide/topics/manifest/manifest-element.html"><manifest></a></code></dd> diff --git a/docs/html/guide/topics/manifest/uses-feature-element.jd b/docs/html/guide/topics/manifest/uses-feature-element.jd index 10b5a33..c25dff8 100644 --- a/docs/html/guide/topics/manifest/uses-feature-element.jd +++ b/docs/html/guide/topics/manifest/uses-feature-element.jd @@ -28,47 +28,40 @@ parent.link=manifest-intro.html </div> </div> - -<dl class="xml"> - -<dt>syntax:</dt> -<dd> -<pre class="stx"><uses-feature android:<a href="#name">name</a>="<em>string</em>" - android:<a href="#required">required</a>=["true" | "false"] - android:<a href="#glEsVersion">glEsVersion</a>="<em>integer</em>" /></pre> -</dd> - -<dt>contained in:</dt> -<dd><code><a -href="{@docRoot}guide/topics/manifest/manifest-element.html"><manifest></a></code></dd> - <div class="sidebox-wrapper"> - <img id="rule" src="{@docRoot}assets/images/grad-rule-qv.png"> - <div id="qv-sub-rule"> + <div class="sidebox"> <img src="{@docRoot}assets/images/icon_play.png" style="float:left;margin:0;padding:0;"> - <p style="color:#669999;padding-top:1em;">Google Play and <code style="color:#669999;"><uses-feature></code> elements</p> - <p style="margin-top:1em;">Google Play filters the applications that are visible to users, so -that users can see and download only those applications that are compatible with their -devices. One of the ways it filters applications is by feature compatibility.</p> - -<p style="margin-top:1em;">To do this, Google Play checks the -<code><uses-feature></code> elements in each application's manifest, to -establish the app's feature needs. Google Play then shows or hides the application to -each user, based on a comparison with the features available on the user's -device. </p> + <p style="color:#669999;padding-top:1em;">Google Play Filtering</p> + <p style="padding-top:1em;">Google Play uses the <code><uses-feature></code> + elements declared in your app manifest to filter your app from devices + that do not meet it's hardware and software feature requirements. </p> <p style="margin-top:1em;">By specifying the features that your application requires, you enable Google Play to present your application only to users whose devices meet the application's feature requirements, rather than presenting it to all users. </p> -<p style="margin-top:1em;" class="caution">For important information about how +<p>For important information about how Google Play uses features as the basis for filtering, please read <a href="#market-feature-filtering">Google Play and Feature-Based Filtering</a>, below.</p> </div> </div> +<dl class="xml"> + +<dt>syntax:</dt> +<dd> +<pre class="stx"><uses-feature + android:<a href="#name">name</a>="<em>string</em>" + android:<a href="#required">required</a>=["true" | "false"] + android:<a href="#glEsVersion">glEsVersion</a>="<em>integer</em>" /></pre> +</dd> + +<dt>contained in:</dt> +<dd><code><a +href="{@docRoot}guide/topics/manifest/manifest-element.html"><manifest></a></code></dd> + <dt>description:</dt> <dd>Declares a single hardware or software feature that is used by the application. @@ -207,7 +200,7 @@ can check at run-time whether a higher level of OpenGL ES is available.)</p> <li>{@link android.content.pm.FeatureInfo}</li> <li>{@link android.content.pm.ConfigurationInfo}</li> <li><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><code><uses-permission></code></a></li> - <li><a href="{@docRoot}guide/google/play/filters.html">Filters on Google Play</a></li> + <li><a href="{@docRoot}google/play/filters.html">Filters on Google Play</a></li> </ul> </dd> diff --git a/docs/html/guide/topics/manifest/uses-library-element.jd b/docs/html/guide/topics/manifest/uses-library-element.jd index 3ad8ddb..253807e 100644 --- a/docs/html/guide/topics/manifest/uses-library-element.jd +++ b/docs/html/guide/topics/manifest/uses-library-element.jd @@ -3,12 +3,25 @@ parent.title=The AndroidManifest.xml File parent.link=manifest-intro.html @jd:body +<div class="sidebox-wrapper"> +<div class="sidebox"> + <img src="{@docRoot}assets/images/icon_play.png" style="float:left;margin:0;padding:0;"> + <p style="color:#669999;padding-top:1em;">Google Play Filtering</p> + <p style="padding-top:1em;">Google Play uses the <uses-library> elements declared + in your app manifest to filter your app from devices that do not meet it's library + requirements. For more information about filtering, see the topic + <a href="{@docRoot}google/play/filters.html">Google Play filters</a>.</p> + </div> +</div> + <dl class="xml"> + <dt>syntax:</dt> <dd> <pre class="stx"> -<uses-library android:<a href="#nm">name</a>="<var>string</var>" - android:<a href="#rq">required</a>=["true" | "false"] /> +<uses-library + android:<a href="#nm">name</a>="<var>string</var>" + android:<a href="#rq">required</a>=["true" | "false"] /> </pre> </dd> <dt>contained in:</dt> @@ -42,12 +55,6 @@ parent.link=manifest-intro.html {@code true}, the {@link android.content.pm.PackageManager} framework won't let the user install the application unless the library is present on the user's device. </dd> - <dt><em>Google Play</em></dt> - <dd> - Google Play filters applications based on the libraries installed on the - user's device. For more information about filtering, see the topic - <a href="{@docRoot}guide/google/play/filters.html">Filters on Google Play</a>. - </dd> </dl> <p> The {@code android:required} attribute is described in detail in the following section. diff --git a/docs/html/guide/topics/manifest/uses-permission-element.jd b/docs/html/guide/topics/manifest/uses-permission-element.jd index 6c71fb4..8e9e795 100644 --- a/docs/html/guide/topics/manifest/uses-permission-element.jd +++ b/docs/html/guide/topics/manifest/uses-permission-element.jd @@ -5,22 +5,21 @@ parent.link=manifest-intro.html <dl class="xml"> - <div class="sidebox-wrapper"> - <img id="rule" src="{@docRoot}assets/images/grad-rule-qv.png"> - <div id="qv-sub-rule"> - <img src="{@docRoot}assets/images/icon_play.png" style="float:left;margin:0;padding:0;"> - <p style="color:#669999;padding-top:1em;"><code style="color:#669999;"><uses-permission></code> and filtering on Google Play. </p> +<div class="sidebox-wrapper"> +<div class="sidebox"> +<img src="{@docRoot}assets/images/icon_play.png" style="float:left;margin:0;padding:0;"> +<p style="color:#669999;padding-top:1em;">Google Play Filtering</p> -<p style="margin-top:1em;">In some cases, the permissions that you request +<p style="clear:left;">In some cases, the permissions that you request through <code><uses-permission></code> can affect how your application is filtered by Google Play.</p> -<p style="margin-top:1em;">If you request a hardware-related permission — +<p>If you request a hardware-related permission — <code>CAMERA</code>, for example — Google Play assumes that your application requires the underlying hardware feature and filters the application from devices that do not offer it.</p> -<p style="margin-top:1em;">To control filtering, always explicitly declare +<p>To control filtering, always explicitly declare hardware features in <code><uses-feature></code> elements, rather than relying on Google Play to "discover" the requirements in <code><uses-permission></code> elements. Then, if you want to disable @@ -28,14 +27,13 @@ filtering for a particular feature, you can add a <code>android:required="false"</code> attribute to the <code><uses-feature></code> declaration.</p> -<p style="margin-top:1em;" class="caution">For a list of permissions that imply +<p>For a list of permissions that imply hardware features, see the documentation for the <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html#permissions-features"> <code><uses-feature></code></a> element.</p> </div> </div> - <dt>syntax:</dt> <dd><pre class="stx"><uses-permission android:<a href="#nm">name</a>="<i>string</i>" /></pre></dd> diff --git a/docs/html/guide/topics/manifest/uses-sdk-element.jd b/docs/html/guide/topics/manifest/uses-sdk-element.jd index 61f03b9..f9e2785 100644 --- a/docs/html/guide/topics/manifest/uses-sdk-element.jd +++ b/docs/html/guide/topics/manifest/uses-sdk-element.jd @@ -26,6 +26,18 @@ parent.link=manifest-intro.html </div> </div> +<div class="sidebox-wrapper"> +<div class="sidebox"> + <img src="{@docRoot}assets/images/icon_play.png" style="float:left;margin:0;padding:0;"> + <p style="color:#669999;padding-top:1em;">Google Play Filtering</p> + <p style="padding-top:1em;">Google Play uses the <code><uses-sdk></code> + attributes declared in your app manifest to filter your app from devices + that do not meet it's platform version requirements. Before setting these + attributes, make sure that you understand + <a href="{@docRoot}google/play/filters.html">Google Play filters</a>. </p> + </div> +</div> + <dl class="xml"> <dt>syntax:</dt> <dd><pre> @@ -52,22 +64,6 @@ major version or the sum of the major and minor versions).</p> <a href="{@docRoot}tools/publishing/versioning.html">Versioning Your Applications</a>. </p></dd> - <div class="sidebox-wrapper" xstyle="margin-bottom:2em;margin-top:.5em;width:90%;"> - <img id="rule" src="{@docRoot}assets/images/grad-rule-qv.png"> - <div id="qv-sub-rule"> - <img src="{@docRoot}assets/images/icon_play.png" style="float:left;margin:0;padding:0;"> - <p style="color:#669999;padding-top:1em;">Google Play and <uses-sdk> attributes</p> - <p style="padding-top:1em;">Google Play filters the applications that are visible to users, so -that users can only see and download applications that are compatible with their -devices. One of the ways it filters applications is by Android -version-compatibility. To do this, Google Play checks the <code><uses-sdk></code> -attributes in each application's manifest to establish its version-compatibility -range, then shows or hides the application based on a comparison with the API -Level of the user's Android system version. For more information, see <a -href="{@docRoot}guide/google/play/filters.html">Filters on Google Play</a>.</p> - </div> -</div> - <dt>attributes:</dt> <dd> @@ -224,12 +220,20 @@ exactly one API Level, although support is implicit for all earlier API Levels (down to API Level 1). The initial release of the Android platform provided API Level 1 and subsequent releases have incremented the API Level.</p> -<p>The following table specifies the API Level supported by each version of the -Android platform.</p> +<p>The table below specifies the API Level supported by each version of the +Android platform. For information about the relative numbers of devices that +are running each version, see the <a href="{@docRoot}about/dashboards/index.html">Platform +Versions dashboards page</a>.</p> <table> <tr><th>Platform Version</th><th>API Level</th><th>VERSION_CODE</th><th>Notes</th></tr> + <tr><td><a href="{@docRoot}about/versions/android-4.2.html">Android 4.2</a></td> + <td><a href="{@docRoot}sdk/api_diff/17/changes.html" title="Diff Report">17</a></td> + <td>{@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1}</td> + <td><a href="{@docRoot}about/versions/jelly-bean.html">Platform +Highlights</a></td></tr> + <tr><td><a href="{@docRoot}about/versions/android-4.1.html">Android 4.1, 4.1.1</a></td> <td><a href="{@docRoot}sdk/api_diff/16/changes.html" title="Diff Report">16</a></td> <td>{@link android.os.Build.VERSION_CODES#JELLY_BEAN}</td> diff --git a/docs/html/sdk/exploring.jd b/docs/html/sdk/exploring.jd index 8272b06..e8d8e37 100644 --- a/docs/html/sdk/exploring.jd +++ b/docs/html/sdk/exploring.jd @@ -85,13 +85,13 @@ android.support.v4.view.ViewPager} APIs that allow you to easily build a side-sw <td>{@code <sdk>/extras/android/support/}</td> </tr> <tr> - <td><a href="{@docRoot}guide/google/play/billing/index.html">Google Play Billing</a></td> + <td><a href="{@docRoot}google/play/billing/index.html">Google Play Billing</a></td> <td>Provides the static libraries and samples that allow you to integrate billing services in your app with Google Play.</td> <td>{@code <sdk>/extras/google/}</td> </tr> <tr> - <td><a href="{@docRoot}guide/google/play/licensing/index.html">Google Play Licensing</a></td> + <td><a href="{@docRoot}google/play/licensing/index.html">Google Play Licensing</a></td> <td>Provides the static libraries and samples that allow you to perform license verification for your app when distributing with Google Play.</td> <td>{@code <sdk>/extras/google/}</td> diff --git a/docs/html/tools/help/jobb.jd b/docs/html/tools/help/jobb.jd index d390ac9..97f0942 100644 --- a/docs/html/tools/help/jobb.jd +++ b/docs/html/tools/help/jobb.jd @@ -8,7 +8,7 @@ page.title=JOBB Level 9) or higher. OBB files are used to provide additional file assets for Android applications (such as graphics, sounds and video), separate from an application's APK file. For more information on using expansion files, see - <a href="{@docRoot}guide/google/play/expansion-files.html">APK Expansion Files</a>.</p> + <a href="{@docRoot}google/play/expansion-files.html">APK Expansion Files</a>.</p> <h2 id="usage">Usage</h2> diff --git a/docs/html/tools/help/proguard.jd b/docs/html/tools/help/proguard.jd index 1da94ba..be0b8dc 100644 --- a/docs/html/tools/help/proguard.jd +++ b/docs/html/tools/help/proguard.jd @@ -39,7 +39,7 @@ parent.link=index.html sized <code>.apk</code> file that is more difficult to reverse engineer. Because ProGuard makes your application harder to reverse engineer, it is important that you use it when your application utilizes features that are sensitive to security like when you are - <a href="{@docRoot}guide/google/play/licensing/index.html">Licensing Your Applications</a>.</p> + <a href="{@docRoot}google/play/licensing/index.html">Licensing Your Applications</a>.</p> <p>ProGuard is integrated into the Android build system, so you do not have to invoke it manually. ProGuard runs only when you build your application in release mode, so you do not diff --git a/docs/html/tools/publishing/preparing.jd b/docs/html/tools/publishing/preparing.jd index 3ebf3f7..b1585f0 100644 --- a/docs/html/tools/publishing/preparing.jd +++ b/docs/html/tools/publishing/preparing.jd @@ -246,7 +246,7 @@ application on Google Play. For example, the <code>android:minSdkVersion</code> <code>android:targetSdkVersion</code> attributes, which are located in the <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"> <uses-sdk></a> element. For more information about these and other Google Play settings, see <a -href="{@docRoot}guide/google/play/filters.html">Filters on Google Play</a>.</p> +href="{@docRoot}google/play/filters.html">Filters on Google Play</a>.</p> <h4>Address compatibility issues</h4> @@ -291,7 +291,7 @@ current user has purchased it. Using Google Play Licensing is optional even if y releasing your app through Google Play.</p> <p>For more information about Google Play Licensing Service and how to use it in your -application, see <a href="{@docRoot}guide/google/play/licensing/index.html">Application Licensing</a>.</p> +application, see <a href="{@docRoot}google/play/licensing/index.html">Application Licensing</a>.</p> <h2 id="publishing-build">Building Your Application for Release</h2> @@ -333,7 +333,7 @@ information about the signing process and signing guidelines.</p> <p>If your application relies on a remote server, make sure the server is secure and that it is configured for production use. This is particularly important if you are implementing <a -href="{@docRoot}guide/google/play/billing/index.html">in-app billing</a> in your application and you are +href="{@docRoot}google/play/billing/index.html">in-app billing</a> in your application and you are performing the signature verification step on a remote server.</p> <p>Also, if your application fetches content from a remote server or a real-time service (such as a diff --git a/docs/html/tools/publishing/publishing_overview.jd b/docs/html/tools/publishing/publishing_overview.jd index 572766c..ea01e20 100755 --- a/docs/html/tools/publishing/publishing_overview.jd +++ b/docs/html/tools/publishing/publishing_overview.jd @@ -127,8 +127,8 @@ your Android applications to users around the world. When you release your appli 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}guide/google/play/billing/index.html">in-app billing</a> and <a -href="{@docRoot}guide/google/play/licensing/index.html">application licensing</a>. The rich array of tools +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> @@ -207,9 +207,9 @@ the user has configured their Settings to allow the installation of apps from 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}guide/google/play/billing/index.html">In-app Billing service</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}guide/google/play/licensing/index.html">Licensing service</a> to +href="{@docRoot}google/play/licensing/index.html">Licensing service</a> to help prevent unauthorized installation and use of your application.</p> diff --git a/docs/html/tools/sdk/tools-notes.jd b/docs/html/tools/sdk/tools-notes.jd index 50fc24a..a5dfa5a 100644 --- a/docs/html/tools/sdk/tools-notes.jd +++ b/docs/html/tools/sdk/tools-notes.jd @@ -92,7 +92,7 @@ href="http://tools.android.com/knownissues">http://tools.android.com/knownissues </ul> </li> <li>Added {@code jobb} tool for creating and encrypting - <a href="{@docRoot}guide/google/play/expansion-files.html">APK Expansion Files</a>. + <a href="{@docRoot}google/play/expansion-files.html">APK Expansion Files</a>. (<a href="{@docRoot}tools/help/jobb.html">more info</a>) <li>Improved the Android JUnit test runner to allow a test to be run on all connected devices simultaneously.</li> diff --git a/docs/html/tools/workflow/publishing/preparing.jd b/docs/html/tools/workflow/publishing/preparing.jd index 4633d7e..9925037 100644 --- a/docs/html/tools/workflow/publishing/preparing.jd +++ b/docs/html/tools/workflow/publishing/preparing.jd @@ -291,7 +291,7 @@ current user has purchased it. Using Google Play Licensing is optional even if y releasing your app through Google Play.</p> <p>For more information about Google Play Licensing Service and how to use it in your -application, see <a href="{@docRoot}guide/google/play/licensing/index.html">Application Licensing</a>.</p> +application, see <a href="{@docRoot}google/play/licensing/index.html">Application Licensing</a>.</p> <h2 id="publishing-build">Building Your Application for Release</h2> @@ -333,7 +333,7 @@ information about the signing process and signing guidelines.</p> <p>If your application relies on a remote server, make sure the server is secure and that it is configured for production use. This is particularly important if you are implementing <a -href="{@docRoot}guide/google/play/billing/index.html">in-app billing</a> in your application and you are +href="{@docRoot}google/play/billing/index.html">in-app billing</a> in your application and you are performing the signature verification step on a remote server.</p> <p>Also, if your application fetches content from a remote server or a real-time service (such as a diff --git a/docs/html/tools/workflow/publishing/publishing.jd b/docs/html/tools/workflow/publishing/publishing.jd index a54b030..400f56f 100644 --- a/docs/html/tools/workflow/publishing/publishing.jd +++ b/docs/html/tools/workflow/publishing/publishing.jd @@ -73,8 +73,8 @@ your Android applications to users around the world. When you release your appli 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}guide/google/play/billing/index.html">in-app billing</a> and -<a href="{@docRoot}guide/google/play/licensing/index.html">application licensing</a>.</p> +href="{@docRoot}google/play/billing/index.html">in-app billing</a> and +<a href="{@docRoot}google/play/licensing/index.html">application licensing</a>.</p> <p>Before you can publish applications on Google Play, you need to <a href="http://play.google.com/apps/publish">register</a> as a Google Play developer. During the @@ -150,7 +150,7 @@ href="https://support.google.com/androidmarket/developer/bin/answer.py?hl=en&ans href="http://support.google.com/androidmarket/developer/bin/answer.py?hl=en&answer=188189&topic= 2364761&ctx=topic">content rating</a>. In addition, if you want to sell items within your app using the in-app billing feature, you can use the Developer Console to <a -href="http://grendel.sea.corp.google.com:48014/guide/google/play/billing/billing_admin.html#billing-list +href="http://grendel.sea.corp.google.com:48014/google/play/billing/billing_admin.html#billing-list - setup">create a product list</a> and control which items are available for purchase in your app.</p> @@ -194,7 +194,7 @@ filter in your manifest, only those devices that have a camera will see your app Play. Filters must be configured in your application's manifest file when you are <a href="{@docRoot}tools/publishing/preparing.html">preparing your app for release</a> (that is, before you upload your app to Google Play). For more information, see <a -href="{@docRoot}guide/google/play/filters.html">Filters on Google Play</a>.</p> +href="{@docRoot}google/play/filters.html">Filters on Google Play</a>.</p> <p>You can also use the multiple APK feature to distribute different {@code .apk} files under the same application listing and the same package name; however, you should use this option only as a last @@ -211,7 +211,7 @@ each APK to the appropriate devices based on configuration support you've declar file of each APK. To use this feature, you need to build your separate {@code .apk} files when you are <a href="{@docRoot}tools/publishing/preparing.html">preparing your app for release</a> (that is, before you upload your app to Google Play). For more information, see <a -href="{@docRoot}guide/google/play/publishing/multiple-apks.html">Multiple APK Support</a>.</p> +href="{@docRoot}google/play/publishing/multiple-apks.html">Multiple APK Support</a>.</p> <h2 id="marketupgrade">Publishing Updates on Google Play</h2> @@ -254,11 +254,11 @@ higher.</p> <p>For complete information about Google Play Licensing Service and how to use it in your application, read <a -href="{@docRoot}guide/google/play/licensing/index.html">Application Licensing</a>.</p> +href="{@docRoot}google/play/licensing/index.html">Application Licensing</a>.</p> <h2 id="marketinappbilling">Using Google Play In-app Billing</h2> -<p><a href="{@docRoot}guide/google/play/billing/billing_overview.html">Google Play In-app Billing</a> +<p><a href="{@docRoot}google/play/billing/billing_overview.html">Google Play In-app Billing</a> is a Google Play service that lets you sell digital content in your applications. You can use the service to sell a wide range of content, including downloadable content such as media files or photos, and virtual content such as game levels or potions.</p> @@ -275,12 +275,12 @@ Checkout Merchant account. Also, because the service uses no dedicated framework in-app billing to any application that uses a minimum API level of 4 or higher.</p> <p>To help you integrate in-app billing into your application, the Android SDK provides a <a -href="{@docRoot}guide/google/play/billing/billing_integrate.html#billing-download">sample application</a> +href="{@docRoot}google/play/billing/billing_integrate.html#billing-download">sample application</a> that demonstrates a simple implementation of in-app billing. The sample application contains examples of billing-related classes you can use to implement in-app billing in your application. It also contains examples of the database, user interface, and business logic you might use to implement in-app billing. For more information about the in-app billing feature, see the -<a href="{@docRoot}guide/google/play/billing/index.html">In-app Billing documentation</a>.</p> +<a href="{@docRoot}google/play/billing/index.html">In-app Billing documentation</a>.</p> <h2 id="marketintent">Linking to Your Apps on Google Play</h2> diff --git a/docs/html/tools/workflow/publishing/publishing_overview.jd b/docs/html/tools/workflow/publishing/publishing_overview.jd index ca0dca8..a1973c9 100755 --- a/docs/html/tools/workflow/publishing/publishing_overview.jd +++ b/docs/html/tools/workflow/publishing/publishing_overview.jd @@ -129,8 +129,8 @@ your Android applications to users around the world. When you release your appli 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/google/play/billing/index.html">in-app billing</a> and <a -href="{@docRoot}guide/google/play/licensing.html">application licensing</a>. This rich array of tools +href="{@docRoot}google/play/billing/index.html">in-app billing</a> and <a +href="{@docRoot}google/play/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> diff --git a/docs/html/tools/workflow/publishing_overview.jd b/docs/html/tools/workflow/publishing_overview.jd index ca0dca8..a1973c9 100755 --- a/docs/html/tools/workflow/publishing_overview.jd +++ b/docs/html/tools/workflow/publishing_overview.jd @@ -129,8 +129,8 @@ your Android applications to users around the world. When you release your appli 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/google/play/billing/index.html">in-app billing</a> and <a -href="{@docRoot}guide/google/play/licensing.html">application licensing</a>. This rich array of tools +href="{@docRoot}google/play/billing/index.html">in-app billing</a> and <a +href="{@docRoot}google/play/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> diff --git a/docs/html/training/articles/security-tips.jd b/docs/html/training/articles/security-tips.jd index 88d6017..11e25af 100644 --- a/docs/html/training/articles/security-tips.jd +++ b/docs/html/training/articles/security-tips.jd @@ -296,7 +296,7 @@ any responses to intents issued against HTTP.</p> <p>The <acronym title="Short Message Service">SMS</acronym> protocol was primarily designed for user-to-user communication and is not well-suited for apps that want to transfer data. Due to the limitations of SMS, we strongly recommend the use of <a -href="{@docRoot}guide/google/gcm/index.html">Google Cloud Messaging</a> (GCM) +href="{@docRoot}google/gcm/index.html">Google Cloud Messaging</a> (GCM) and IP networking for sending data messages from a web server to your app on a user device.</p> <p>Beware that SMS is neither encrypted nor strongly diff --git a/docs/html/training/cloudsync/gcm.jd b/docs/html/training/cloudsync/gcm.jd index df26d34..fa395e4 100644 --- a/docs/html/training/cloudsync/gcm.jd +++ b/docs/html/training/cloudsync/gcm.jd @@ -20,7 +20,7 @@ previous.link=backupapi.html </ol> <h2>You should also read</h2> <ul> - <li><a href="http://developer.android.com/guide/google/gcm/index.html">Google + <li><a href="http://developer.android.com/google/gcm/index.html">Google Cloud Messaging for Android</a></li> </ul> </div> @@ -37,7 +37,7 @@ your server.</p> <p>This lesson covers some of the best practices for integrating GCM into your application, and assumes you are already familiar with basic implementation of this service. If this is not the case, you can read the <a - href="{@docRoot}guide/google/gcm/demo.html">GCM demo app tutorial</a>.</p> + href="{@docRoot}google/gcm/demo.html">GCM demo app tutorial</a>.</p> <h2 id="multicast">Send Multicast Messages Efficiently</h2> <p>One of the most useful features in GCM is support for up to 1,000 recipients for @@ -53,7 +53,7 @@ disaster alerts or sports scores, where a 30 minute interval might render the information useless.</p> <p>Taking advantage of this functionality is easy. If you're using the <a - href="http://developer.android.com/guide/google/gcm/gs.html#libs">GCM helper + href="{@docRoot}google/gcm/gs.html#libs">GCM helper library</a> for Java, simply provide a <code>List<String></code> collection of registration IDs to the <code>send</code> or <code>sendNoRetry</code> method, instead of a single registration ID.</p> @@ -97,7 +97,7 @@ GCM-defined parameters. The endpoint for this HTTP POST message will be </pre> <p>For a more thorough overview of the format of multicast GCM messages, see the <a - href="http://developer.android.com/guide/google/gcm/gcm.html#send-msg">Sending + href="{@docRoot}google/gcm/gcm.html#send-msg">Sending Messages</a> section of the GCM guide.</pre> <h2 id="collapse">Collapse Messages that Can Be Replaced</h2> diff --git a/docs/html/training/efficient-downloads/regular_updates.jd b/docs/html/training/efficient-downloads/regular_updates.jd index 262d676..8e3842a 100644 --- a/docs/html/training/efficient-downloads/regular_updates.jd +++ b/docs/html/training/efficient-downloads/regular_updates.jd @@ -22,7 +22,7 @@ next.link=redundant_redundant.html <h2>You should also read</h2> <ul> <li><a href="{@docRoot}training/monitoring-device-state/index.html">Optimizing Battery Life</a></li> - <li><a href="{@docRoot}guide/google/gcm/index.html">Google Cloud Messaging for Android</a></li> + <li><a href="{@docRoot}google/gcm/index.html">Google Cloud Messaging for Android</a></li> </ul> </div> @@ -38,7 +38,7 @@ next.link=redundant_redundant.html <p>Every time your app polls your server to check if an update is required, you activate the wireless radio, drawing power unnecessarily, for up to 20 seconds on a typical 3G connection.</p> -<p><a href="{@docRoot}guide/google/gcm/index.html">Google Cloud Messaging for Android (GCM)</a> is a lightweight mechanism used to transmit data from a server to a particular app instance. Using GCM, your server can notify your app running on a particular device that there is new data available for it.</p> +<p><a href="{@docRoot}google/gcm/index.html">Google Cloud Messaging for Android (GCM)</a> is a lightweight mechanism used to transmit data from a server to a particular app instance. Using GCM, your server can notify your app running on a particular device that there is new data available for it.</p> <p>Compared to polling, where your app must regularly ping the server to query for new data, this event-driven model allows your app to create a new connection only when it knows there is data to download.</p> diff --git a/docs/html/training/multiple-apks/api.jd b/docs/html/training/multiple-apks/api.jd index 1a2593a..f43dcae 100644 --- a/docs/html/training/multiple-apks/api.jd +++ b/docs/html/training/multiple-apks/api.jd @@ -33,7 +33,7 @@ next.link=screensize.html <!-- other docs (NOT javadocs) --> <h2>You should also read</h2> <ul> - <li><a href="http://developer.android.com/guide/google/play/publishing/multiple-apks.html">Multiple APK + <li><a href="http://developer.android.com/google/play/publishing/multiple-apks.html">Multiple APK Support</a></li> <li><a href="http://android-developers.blogspot.com/2010/07/how-to-have-your-cupcake-and-eat-it-too.html"> @@ -57,7 +57,7 @@ necessary to make maintaining a multiple APK codebase as painless as possible.</ platform, naturally you want your application to take advantage of new features on new devices, without sacrificing backwards compatibility. It may seem at the outset as though multiple APK support is the best solution, but this often isn’t the case. The <a -href="{@docRoot}guide/google/play/publishing/multiple-apks.html#ApiLevelOptions">Using Single APK +href="{@docRoot}google/play/publishing/multiple-apks.html#ApiLevelOptions">Using Single APK Instead</a> section of the multiple APK developer guide includes some useful information on how to accomplish this with a single APK, including use of our support library. You can also learn how to write code that runs only at certain API levels in a single APK, without resorting to @@ -279,7 +279,7 @@ green ≥ blue. Therefore we can effectively collapse the chart to look lik <p> Now, let’s further assume that the Red APK has some requirement on it that the other two don’t. -<a href="{@docRoot}guide/google/play/filters.html">Filters on Google Play</a> page of +<a href="{@docRoot}google/play/filters.html">Filters on Google Play</a> page of the Android Developer guide has a whole list of possible culprits. For the sake of example, let’s assume that red requires a front-facing camera. In fact, the entire point of the red APK is to combine the front-facing camera with sweet new functionality that was added in API @@ -296,7 +296,7 @@ APK that supported that particular API level.</p> <p> In order to keep all your APKs on separate "tracks", it’s important to have a good version code scheme. The recommended one can be found on the <a -href="{@docRoot}guide/google/play/publishing/multiple-apks.html#VersionCodes">Version Codes</a> area of +href="{@docRoot}google/play/publishing/multiple-apks.html#VersionCodes">Version Codes</a> area of our developer guide. Since the example set of APKs is only dealing with one of 3 possible dimensions, it would be sufficient to separate each APK by 1000, set the first couple digits to the minSdkVersion for that particular APK, and increment from there. This might look like:</p> diff --git a/docs/html/training/multiple-apks/index.jd b/docs/html/training/multiple-apks/index.jd index 1f2fee8..37286c3 100644 --- a/docs/html/training/multiple-apks/index.jd +++ b/docs/html/training/multiple-apks/index.jd @@ -23,7 +23,7 @@ account</li> <!-- related docs (NOT javadocs) --> <h2>You should also read</h2> <ul> - <li><a href="http://developer.android.com/guide/google/play/publishing/multiple-apks.html">Multiple APK + <li><a href="http://developer.android.com/google/play/publishing/multiple-apks.html">Multiple APK Support</a></li> </ul> diff --git a/docs/html/training/multiple-apks/multiple.jd b/docs/html/training/multiple-apks/multiple.jd index 25938da..ccee397 100644 --- a/docs/html/training/multiple-apks/multiple.jd +++ b/docs/html/training/multiple-apks/multiple.jd @@ -33,7 +33,7 @@ previous.link=texture.html <!-- other docs (NOT javadocs) --> <h2>You should also read</h2> <ul> - <li><a href="http://developer.android.com/guide/google/play/publishing/multiple-apks.html">Multiple APK + <li><a href="http://developer.android.com/google/play/publishing/multiple-apks.html">Multiple APK Support</a></li> </ul> @@ -54,7 +54,7 @@ devices, naturally you want your application look its best on each individual de take advantage of the space of large screens but still work on small ones, to use new Android API features or visual textures available on cutting edge devices but not abandon older ones. It may seem at the outset as though multiple APK support is the best solution, but this often isn’t the -case. The <a href="{@docRoot}guide/google/play/publishing/multiple-apks.html#ApiLevelOptions">Using +case. The <a href="{@docRoot}google/play/publishing/multiple-apks.html#ApiLevelOptions">Using Single APK Instead</a> section of the multiple APK guide includes some useful information on how to accomplish all of this with a single APK, including use of our <a href="http://android-developers.blogspot.com/2011/03/fragments-for-all.html">support library</a>, @@ -329,7 +329,7 @@ preference as follows:</p> Purple ≥ Red ≥ Green ≥ Blue </p><p> Why allow all the overlap? Let’s pretend that the Purple APK has some requirement on it that the -other two don’t. The <a href="{@docRoot}guide/google/play/filters.html">Filters on Google Play</a> page +other two don’t. The <a href="{@docRoot}google/play/filters.html">Filters on Google Play</a> page of the Android Developer guide has a whole list of possible culprits. For the sake of example, let’s assume that Purple requires a front-facing camera. In fact, the entire point of Purple is to use entertaining things with the front-facing camera! But, it turns out, not all API 11+ devices @@ -345,7 +345,7 @@ API level.</p> <p> In order to keep all your APKs on separate "tracks", it’s important to have a good version code scheme. The recommended one can be found on the <a -href="{@docRoot}guide/google/play/publishing/multiple-apks.html#VersionCodes">Version Codes</a> area of +href="{@docRoot}google/play/publishing/multiple-apks.html#VersionCodes">Version Codes</a> area of our developer guide. It’s worth reading the whole section, but the basic gist is for this set of APKs, we’d use two digits to represent the minSDK, two to represent the min/max screen size, and 3 to represent the build number. That way, when the device upgraded to a new version of Android, diff --git a/docs/html/training/multiple-apks/screensize.jd b/docs/html/training/multiple-apks/screensize.jd index ea793db..c7941c4 100644 --- a/docs/html/training/multiple-apks/screensize.jd +++ b/docs/html/training/multiple-apks/screensize.jd @@ -34,7 +34,7 @@ next.link=texture.html <!-- other docs (NOT javadocs) --> <h2>You should also read</h2> <ul> - <li><a href="http://developer.android.com/guide/google/play/publishing/multiple-apks.html">Multiple APK + <li><a href="http://developer.android.com/google/play/publishing/multiple-apks.html">Multiple APK Support</a></li> <li><a href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple Screens</a></li> </ul> @@ -56,7 +56,7 @@ make maintaining a multiple APK codebase as painless as possible.</p> naturally you want your application to take advantage of all the available space on larger devices, without sacrificing compatibility or usability on the smaller screens. It may seem at the outset as though multiple APK support is the best solution, but this often isn’t the case. The <a -href="{@docRoot}guide/google/play/publishing/multiple-apks.html#ApiLevelOptions">Using Single APK +href="{@docRoot}google/play/publishing/multiple-apks.html#ApiLevelOptions">Using Single APK Instead</a> section of the multiple APK developer guide includes some useful information on how to accomplish this with a single APK, including use of our support library. You should also read the guide to <a href="{@docRoot}guide/practices/screens_support.html">supporting multiple screens</a>, @@ -227,7 +227,7 @@ each APK such that red ≥ green ≥ blue, the chart effectively collaps </table> <p> Now, let’s further assume that the Red APK has some requirement on it that the other two don’t. The -<a href="{@docRoot}guide/google/play/filters.html">Filters on Google Play</a> page of the Android +<a href="{@docRoot}google/play/filters.html">Filters on Google Play</a> page of the Android Developer guide has a whole list of possible culprits. For the sake of example, let’s assume that red requires a front-facing camera. In fact, the entire point of the red APK is to use the extra available screen space to do entertaining things with that front-facing camera. But, it turns out, @@ -243,7 +243,7 @@ size.</p> <p> In order to keep all your APKs on separate "tracks", it’s important to have a good version code scheme. The recommended one can be found on the <a -href="{@docRoot}guide/google/play/publishing/multiple-apks.html#VersionCodes">Version Codes</a> area of +href="{@docRoot}google/play/publishing/multiple-apks.html#VersionCodes">Version Codes</a> area of our developer guide. Since the example set of APKs is only dealing with one of 3 possible dimensions, it would be sufficient to separate each APK by 1000 and increment from there. This might look like:</p> diff --git a/docs/html/training/multiple-apks/texture.jd b/docs/html/training/multiple-apks/texture.jd index 70ad1e0..e4ea72b 100644 --- a/docs/html/training/multiple-apks/texture.jd +++ b/docs/html/training/multiple-apks/texture.jd @@ -33,7 +33,7 @@ next.link=multiple.html <!-- other docs (NOT javadocs) --> <h2>You should also read</h2> <ul> - <li><a href="http://developer.android.com/guide/google/play/publishing/multiple-apks.html">Multiple APK + <li><a href="http://developer.android.com/google/play/publishing/multiple-apks.html">Multiple APK Support</a></li> </ul> @@ -49,10 +49,10 @@ Support</a></li> devices, naturally you want your application look its best on each individual device, regardless of the fact they don’t all support the same set of GL textures. It may seem at the outset as though multiple APK support is the best solution, but this often isn’t the case. The <a -href="{@docRoot}guide/google/play/publishing/multiple-apks.html#ApiLevelOptions">Using Single APK +href="{@docRoot}google/play/publishing/multiple-apks.html#ApiLevelOptions">Using Single APK Instead</a> section of the multiple APK developer guide includes some useful information on how to accomplish this with a single APK, including how to <a -href="{@docRoot}guide/google/play/publishing/multiple-apks.html#TextureOptions">detect supported texture +href="{@docRoot}google/play/publishing/multiple-apks.html#TextureOptions">detect supported texture formats at runtime</a>. Depending on your situation, it might be easier to bundle all formats with your application, and simply pick which one to use at runtime.</p> |