diff options
Diffstat (limited to 'docs/html')
28 files changed, 605 insertions, 526 deletions
diff --git a/docs/html/app.yaml b/docs/html/app.yaml index 9ffb775..520ee99 100644 --- a/docs/html/app.yaml +++ b/docs/html/app.yaml @@ -1,38 +1,25 @@ application: androidappdocs-staging version: 1 -runtime: python +runtime: python27 +threadsafe: true api_version: 1 +# compatibility: gae-1.9.4+ -# This file defines two mutually exclusive -# hander blocks: -# - a handler for use on a local dev_appserver -# during development or non-production doc build -# - a handler for use on a production gae -# instance. This handler requires that the -# docs files in the app have been compressed -# with divide_and_compress.py and that main.py -# and gae_shell/ are present. -# -# Only one of the handler blocks should be -# uncommented at any given time. By default, -# the development handler is exposed. +# handler for local staging servers +# WARNING: NOT FOR USE IN PRODUCTION + +# Use this handler definition with +# Google App Engine 1.9.4 or higher. +# NOT compatible with prior GAE versions handlers: # DEVELOPMENT HANDLER -# (this handler block *must* be commented -# out before pushing to a production server) -- url: / - static_dir: / +- url: /(.+) + static_files: \1 + upload: (.+) -# PRODUCTION GAE HANDLER -#- url: /gae_shell/static -# static_dir: gae_shell/static -# expiration: 1d -# -#- url: /gae_shell/.* -# script: /gae_shell/shell.py -# login: admin -# -#- url: .* -# script: main.py +# Direct default, blank requests +- url: / + static_files: index.html + upload: index.html
\ No newline at end of file diff --git a/docs/html/distribute/googleplay/about.jd b/docs/html/distribute/googleplay/about.jd index c7c91ac..c25a9cf 100644 --- a/docs/html/distribute/googleplay/about.jd +++ b/docs/html/distribute/googleplay/about.jd @@ -25,7 +25,7 @@ page.image=/distribute/images/about-play.jpg <p> Google Play is the premier store for distributing Android apps. When you publish on Google Play, you put your apps in front of Android's huge base of - active customers, in more than 130 countries and territories across the + active customers, in more than 190 countries and territories across the world. </p> diff --git a/docs/html/distribute/googleplay/edu/start.jd b/docs/html/distribute/googleplay/edu/start.jd index 067a15f..3c3a175 100644 --- a/docs/html/distribute/googleplay/edu/start.jd +++ b/docs/html/distribute/googleplay/edu/start.jd @@ -9,27 +9,23 @@ page.metaDescription=Join Google Play for Education in just a few simple steps. <div id="qv-wrapper"><div id="qv"> <h2>Steps to Join</h2> <ol> -<li><a href="#register">Register for a Publisher Account</li> +<li><a href="#register">Register for a Publisher Account</a></li> <li><a href="#prepare">Prepare Your Apps</a></li> <li><a href="#publish">Publish Your Apps</a></li> <li><a href="#related-resources">Related Resources</a></li> </ol> </div></div> <p> - If you've got great Android apps for education and want to reach even more teachers + If you've got great Android and Chrome apps for education and want to reach even more teachers and students, you can join the <strong>Google Play for Education</strong> program in a few simple steps. You do everything using the familiar tools and - processes in Google Play. + processes you currently use to manage your Android or Chrome apps. </p> <p> Note that Google Play for Education is currently available to <strong>K-12 schools in the United States</strong> only.</p> -<p>If you have an educational Chrome app instead of an Android app, you can learn more about -Chrome Apps in Google Play for Education at <a href= -"https://developers.google.com/edu">developers.google.com/edu</a>. -</p> <img src="{@docRoot}images/gpfe-start-0.jpg" style= "border:1px solid #ddd;padding:0px" width="760" height="403"> @@ -43,23 +39,20 @@ Chrome Apps in Google Play for Education at <a href= </div> <p> - If you’re new to Google Play, review the information on <a href= + To publish an Android app in Google Play for Education, review the information on <a href= "{@docRoot}distribute/googleplay/start.html">getting started</a> with publishing on Google Play. You’ll gain access to the <a href= "{@docRoot}distribute/googleplay/developer-console.html">Developer Console</a>, where you’ll manage your details, apps, and payments. </p> +<p>To publish a Chrome app in Google Play for Education, you'll need a +<a href="https://developer.chrome.com/webstore/publish">Chrome Web Store account</a>.</p> + <div class="headerLine"> <h2 id="prepare"> Prepare Your Apps </h2> - - -</div> - -<div class="figure-right"> - <img src="{@docRoot}images/gp-edu-process.png"> </div> <p> @@ -77,13 +70,13 @@ Chrome Apps in Google Play for Education at <a href= To prepare for a launch on Google Play for Education, start by reviewing the guidelines for educational apps in Google Play and the policies that apply to your apps. See the <a href= - "{@docRoot}distribute/essentials/gpfe-guidelines.html">Education + "https://developers.google.com/edu/guidelines">Education Guidelines</a> for details. </p> <p> Also, make sure that you're familiar with the policies that your app must - comply with, including <a href= + comply with. For Android, they include <a href= "http://play.google.com/about/developer-content-policy.html">content policies</a>, the <a href= "http://play.google.com/about/developer-distribution-agreement.html">Developer @@ -91,6 +84,14 @@ Chrome Apps in Google Play for Education at <a href= "https://play.google.com/about/developer-distribution-agreement-addendum.html"> Google Play for Education Addendum</a>. </p> +<p>For Chrome, they include <a href= + "https://developer.chrome.com/webstore/program_policies">content + policies</a>, the <a href= + "https://developer.chrome.com/webstore/terms">Developer + Distribution Agreement</a>, and <a href= + "https://developers.google.com/edu/chrome-d-d-a-addendum"> + Google Play for Education Addendum</a>. +</p> <h3> Design and develop a great app for education @@ -105,7 +106,7 @@ Chrome Apps in Google Play for Education at <a href= <p> Assess your app against the criteria listed in the <a href= - "{@docRoot}distribute/essentials/gpfe-guidelines.html">Education + "https://developers.google.com/edu/guidelines">Education Guidelines</a> and plan on supporting them to the greatest extent possible. In some cases you might need to modify the app’s features or UI to support classroom requirements. It's a good idea to identify any changes early in @@ -113,7 +114,7 @@ Chrome Apps in Google Play for Education at <a href= </p> <p> - With Google Play for Education, optimizing your apps for tablets is crucial. + With Google Play for Education, optimizing your Android apps for tablets is crucial. A variety of resources are available to help you understand what you need to do — a good starting point is the <a href= "{@docRoot}distribute/essentials/quality/tablets.html">Tablet App Quality</a> @@ -132,6 +133,11 @@ Chrome Apps in Google Play for Education at <a href= </p> <p> +For Chrome apps, optimizing your apps for mouse, keyboard, and touch is just as important. +Some students will use touch as their primary input method, and some will have Chromebooks +without touch. Make sure your app works for all students. +</p> +<p> Comprehensive testing and quality assurance are key aspects of delivering great apps for teachers and students. Make sure you set up a <a href= "{@docRoot}distribute/essentials/gpfe-guidelines.html#test-environment">proper @@ -160,15 +166,13 @@ Chrome Apps in Google Play for Education at <a href= apps. </li> - <li>Publish your apps in the Developer Console as normal, but opt-in to + <li>Publish your apps in the Developer Console (for Android apps) or the Chrome Web Store + (for Chrome apps) as normal, but opt-in to Google Play for Education. </li> </ul> -<h3 id="opt-in"> - Opt-in to Google Play for Education and publish -</h3> - +<h3>Opt-in to Google Play for Education and publish Android apps</h3> <p> Once you've built your release-ready APK upload it to the Developer Console, create your store listing, and set distribution options. If you aren't @@ -231,7 +235,7 @@ Chrome Apps in Google Play for Education at <a href= will be shown to educators when they are browsing your app. </li> - <li>Click <strong>Save</strong>f to save your Pricing and Distribution + <li>Click <strong>Save</strong> to save your Pricing and Distribution changes. </li> </ol> @@ -247,58 +251,55 @@ Chrome Apps in Google Play for Education at <a href= </div> <p> - Once you save changes and publish your app, the app will be submitted to our - third-party educator network for review and approval. If the app is already - published, it will be submitted for review as soon as you opt-in and save - your changes. + Once you save changes and publish your app, the app will be available on Google Play for + Education. We may submit your app to our + third-party educator network for additional review and to be featured and badged as + Educator-approved. </p> <p class="note"> <strong>Note</strong>: Google Play for Education is part of Google Play. When - you publish an app that's opted-in to Google Play for Education, the app - becomes available to users in Google Play right away. After the app is - <a href="{@docRoot}distribute/essentials/gpfe-guidelines.html#e-value">review - and approval</a>, it then becomes available to educators in Google Play for - Education. + you publish an Android app that's opted-in to Google Play for Education, the app + becomes available to users in Google Play. </p> -<h3> - Track your review and approval -</h3> - +<h3>Opt-in to Google Play for Education and publish Chrome apps</h3> <p> - As soon as you opt-in to Google Play for Education and publish, your apps are - queued for review by our third-party educator network. The review and - approval process can take four weeks or more. You'll receive notification by - email (to your developer account address) when the review is complete, with a - summary of the review results. +Once you've uploaded your app or extension to the Developer Dashboard, create your store listing +and set distribution options. </p> - <p> - At any time, you can check the review and approval status of your app in the - Developer Console, under "Google Play for Education" in the app's Pricing and - Distribution page. There are three approval states: +When your apps are ready to publish, you opt-in to Google Play for Education directly from the +<a href="https://chrome.google.com/webstore/developer/dashboard">Developer Dashboard</a>. +Opt-in means that you want your apps to be made available to educators +through Google Play for Education, including review, classification, and approval by our +third-party educator network. +</p> +<p> +Opt-in also confirms that your app complies with +<a href="https://developer.chrome.com/webstore/program_policies">Chrome Web Store Program Policies</a> +and the <a href="https://developer.chrome.com/webstore/terms">Terms of Service</a>, including a +<a href="https://developers.google.com/edu/chrome-d-d-a-addendum">Google Play for Education Addendum</a>. +If you are not familiar with these +policy documents or the Addendum, make sure to read them before opting-in. </p> -<ul> - <li> - <em>Pending</em> — Your app was sent for review and the review isn't - yet complete. - </li> - - <li> - <em>Approved</em> — Your app was reviewed and approved. The app will - be made available directly to educators through Google Play for Education. - Once your app is approved, you can update it at your convenience without - needing another full review. - </li> +<p>Here's how to opt-in to Google Play for Education for a specific app or extension:</p> +<ol> +<li>In the Developer Dashboard, click <b>Edit</b> on the app you want to opt-in.</li> +<li>Scroll down to <b>Google Play for Education</b> and review the additional +Developer Terms and Conditions.</li> +<li>Select the checkbox to opt-in to include this item in Google Play for Education.</li> +<li>Click <b>Publish Changes</b> to save your changes and submit your application. +Once you save changes and publish your app, the app will be available on Google Play for Education. +We may submit your app to our third-party educator network for additional review, and to be +featured and badged as Educator-approved.</li> +<p class="note"><b>Note:</b> +When you publish an app that's opted-in to Google Play for Education, +the app becomes available to users in the Chrome Web Store. +</p> +</ol> - <li> - <em>Not approved</em> — Your app was reviewed and not approved. Check - the notification email send for information about why the app wasn’t - approved. You can address any issues and opt-in again for another review. - </li> -</ul> <div class="headerLine"> <h2 id="related-resources">Related Resources</h2> </div> diff --git a/docs/html/distribute/monetize/ecommerce.jd b/docs/html/distribute/monetize/ecommerce.jd index 65e2b20..dc56d46 100644 --- a/docs/html/distribute/monetize/ecommerce.jd +++ b/docs/html/distribute/monetize/ecommerce.jd @@ -16,7 +16,7 @@ page.tags="monetizing", "physical goods", "wallet" physical goods and services, such as clothing or movie tickets, through your apps using <a href= "https://developers.google.com/wallet/instant-buy/">Instant Buy for - Android</a> in the US. + Android</a> <strong>(US Only)</strong>. </p> <p> diff --git a/docs/html/distribute/stories/games.jd b/docs/html/distribute/stories/games.jd index 1a482b1..2351eed 100644 --- a/docs/html/distribute/stories/games.jd +++ b/docs/html/distribute/stories/games.jd @@ -1,246 +1,28 @@ page.title=Developer Stories: Google Play Game Services -meta.tags="google play, developer story, games, global" +meta.tags="google play, story, stories, games, global" page.image=/images/distribute/glu-ew-gpgames.jpg -page.metaDescription=How gaming studios are using Google Play game services to deliver new gaming experiences for their users. +page.metaDescription=How game studios are using Google Play game services to deliver new gaming experiences for their users. @jd:body -<p>One of the goals of <a href="https://developers.google.com/games/">Google -Play game services</a> is to allow developers to focus on what they’re good at -as game developers — creating great gaming experiences for their users, by -building on top of what Google is good at: mobile and cloud services. Integral -to that is an easy integration process, one that provides a whole host of -features with little engineering work required.</p> - -<p>The gaming studios below understood the opportunity that Google Play game -services unlocked, and are starting to see real results following their -successful integrations. </p> - -<div style="margin-bottom:2em;"><!-- START STORY --> - -<h3>Concrete Software — Straightforward, easy to implement</h3> - -<img alt="" class="screenshot thumbnail" style="-webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px height:78px; - width: 78px; - float: left; - margin: 12px 20px 9px 20px;" - src="http://lh6.ggpht.com/_UOay5HBxf077suKYzmikU2IbnYOJub3X0inz-LoUsVh4TX758BEyArjoR7owXijkAA=w124"> - -<div style="list-style: none;height:100%; - float: right; - border-top: 1px solid #9C0; - width: 220px; - margin: 4px 20px;padding: .5em;"> - - <h5>About the developer</h5> - <ul> - <li><a href="https://play.google.com/store/apps/developer?id=Concrete%20Software%2C%20Inc.">Concrete Software</a>, - makers of <a href="https://play.google.com/store/apps/details?id=com.concretesoftware.pbachallenge_androidmarket&hl=en">PBA - Bowling Challenge</a></li> - <li>Added support for multiplayer, leaderboards and achievements through Google Play game - services</li> - </ul> - - <h5>Results</h5> - <ul> - <li>Session lengths have increased more than 15%</li> - </ul> - - <div style="padding:.5em 0 0 1em;"> - <a href="https://play.google.com/store/apps/details?id=com.concretesoftware.pbachallenge_androidmarket&hl=en"> - <img alt="Android app on Google Play" src="{@docRoot}images/brand/en_generic_rgb_wo_45.png" /> - </a> - </div> -</div> - -<div style="line-height:1.4em;"> -<p style="margin-top:0;margin-bottom:12px;">Concrete Software added several -features from Google Play game services into one of their top titles, -<a href="https://play.google.com/store/apps/details?id=com.concretesoftware.pbachallenge_androidmarket">PBA -Bowling Challenge</a>, including support for multiplayer, leaderboards, and -achievements.</p> - -<p>So far, their users have loved the new additions: average session length -is up more than 15%. Keith Pichelman, CEO of Concrete Software, explains: </p> - -<p>"The Google Play game services were straightforward and easy to implement. We -had been researching options for multiplayer services, so when Google Play game -services came out, it was an easy decision for us. Not only were they easy to -integrate, but the features have worked flawlessly. </p> - -<p>"PBA Bowling Challenge now has real-time multiplayer which our users instantly -were thrilled with; you can see in the reviews how people immediately raved about -the new game experience. </p> - -<p>"We also included achievements, leaderboards, and most recently cloud -synchronization from the Google Play game services as well. Using the game -services in PBA Bowling Challenge was a huge success, enough so that we are now -going back to our other titles, adding the features to them as well."</p> -</div> - -<div style="clear:both;margin-top:40px;width:auto;"> - - <img src="{@docRoot}images/distribute/concrete-pbc-gpgames.jpg"> - - <div style="width:600px;margin-top:0px;padding:0 90px;"> - <p class="image-caption"><span style="font-weight:500;">Session lengths up:</span> - After adding support for multiplayer with Google Play game services, Concrete - Software saw an increase in session lengths of more than 15% for PBA Bowling - Challenge.</p> - </div> -</div> -</div> <!-- END STORY --> - -<div style="margin:3em auto"><!-- START STORY --> - -<h3>Glu: It’s a must-have for all titles</h3> - -<img alt="" class="screenshot thumbnail" style="-webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px height:78px; - width: 78px; - float: left; - margin: 12px 20px 30px 20px;" - src="http://lh4.ggpht.com/Q7mQJsdhulW4_s039R9aaRhQkGnyzLkhF00j5EnyhHOivijnyi7P7b5A8qG0xk1r-jQ=w124"> - -<div style="list-style: none;height:100%; - float: right; - border-top: 1px solid #9C0; - width: 220px; - margin: 4px 20px;padding: .5em;"> - - <h5>About the developer</h5> - <ul> - <li><a href="https://play.google.com/store/apps/developer?id=Glu+Mobile">Glu - Mobile</a>, creators of <a href="https://play.google.com/store/apps/details?id=com.glu.ewarriors2">Eternity - Warriors 2</a></li> - <li>Has already integrated 5 titles with Google Play game services</li> - </ul> - - <h5>Results</h5> - <ul> - <li>In Eternity Warriors 2, 7-day user retention is up 40%</li> - <li>20% increase in play sessions per day as well</li> - </ul> - - <div style="padding:.5em 0 0 1em;"> - <a href="https://play.google.com/store/apps/details?id=com.glu.ewarriors2"> - <img alt="Android app on Google Play" src="{@docRoot}images/brand/en_generic_rgb_wo_45.png" /> - </a> - </div> -</div> - -<div style="line-height:1.4em;"> -<p style="margin-top:0;margin-bottom:12px;">Glu was one of the first developers -to integrate Google Play game services, with -<a href="https://play.google.com/store/apps/details?id=com.glu.ewarriors2">Eternity -Warriors 2</a>. Based on this first success, Glu has integrated game services -into several more games, including Samurai vs. Zombies 2, Frontline Commando: -D-Day, Contract Killer 2, and Zombies Ate My Friends.</p> - -<p>Already supported in Eternity Warriors 2, they’ve seen a 40% increase in 7-day -user retention and a 20% increase in play sessions per day. Sourabh Ahuja, Glu's -Vice President of Android Development, explains:</p> - -<p>“Multiplayer, leaderboards, achievements — these are all things that we -had to build individually for our titles. The availability of these features in -Google Play game services helps us make our games stickier, and it’s awesome that -it comes directly from Google. </p> - -<p>"It’s flexible enough that we were able to make it interoperable with our -in-house systems. We look forward to utilizing game services extensively across -our portfolio."</p> -</div> - -<div style="clear:both;margin-top:40px;width:auto;"> - - <img src="{@docRoot}images/distribute/glu-ew-gpgames.jpg"></a> - - <div style="width:600px;margin-top:0px;padding:0 90px;"> - <p class="image-caption"><span style="font-weight:500;">User retention up:</span> - Glu saw a 40% increase in 7-day user retention for Eternity Warriors 2 after - integrating with Google Play game services.</p> - </div> -</div> -</div> <!-- END STORY --> - - -<div style="margin-bottom:2em;"><!-- START STORY --> - -<h3>Vector-Unit: An awesome multiplayer experience</h3> - -<img alt="" class="screenshot thumbnail" style="-webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px height:78px; - width: 78px; - float: left; - margin: 12px 20px 9px 20px;" src= - "http://lh3.ggpht.com/dTUrKLffqXHJtPuIlp8fjDhROuzrTcpidbNFprugR65hMrPLX7Omd8SGop0xMXXKzcw=w124"> - -<div style="list-style: none;height:100%; - float: right; - border-top: 1px solid #9C0; - width: 220px; - margin: 4px 20px;padding: .5em;"> - - <h5>About the developer</h5> - <ul> - <li><a href="https://play.google.com/store/apps/developer?id=Vector+Unit">Vector - Unit</a>, creators of <a href="https://play.google.com/store/apps/details?id=com.vectorunit.red">Riptide - GP2</a></li> - <li>Added multiplayer to Riptide GP2 through Google Play game services </li> - </ul> - - <h5>Results</h5> - <ul> - <li>With an easy multiplayer solution, they were able to focus on the - gameplay</li> - <li>Early reviews of Riptide GP2 called multiplayer “one of the sweetest - cherries on top!”</li> - </ul> - - <div style="padding:.5em 0 0 1em;"> - <a href="https://play.google.com/store/apps/details?id=com.vectorunit.red"> - <img alt="Android app on Google Play" src="{@docRoot}images/brand/en_generic_rgb_wo_45.png" /> - </a> - </div> -</div> - -<div style="line-height:1.4em;"> -<p style="margin-top:0;margin-bottom:12px;">Vector Unit just launched their -latest title, <a href="https://play.google.com/store/apps/details?id=com.vectorunit.red">Riptide -GP2</a>, with Google Play game services integration, and it has one of the strongest -integrations of multiplayer yet. Early reviews call multiplayer “one of the sweetest -cherries on top!”.</p> - -<p>Ralf Knoesel, CTO of Vector Unit, tells more about how they've used Google Play game -services:</p> - -<p>“We wanted to provide a really compelling multiplayer experience for our users, and -Google Play game services allowed us to do just that. With multiplayer, you can show off -your skills and your custom-tuned hydro jet in 4-way online battles with friends and -players around the world. </p> - -<p>"By providing an easy way to power this multiplayer experience, we were able to focus -on making the gameplay come alive — like the stunts, which are more daring and -slicker than ever (with more of them to master), or the realistic detail of the water -splashing against the camera lens.”</p> - -</div> - -<div style="clear:both;margin-top:40px;width:auto;"> - - <img src="{@docRoot}images/distribute/vector-unit-rt-gpgames.jpg"></a> - - <div style="width:600px;margin-top:0px;padding:0 90px;"> - <p class="image-caption"><span style="font-weight:500;">Multiplayer and more:</span> - Google Play game services helped Vector Unit pack an awesome multiplayer experience - into Riptide GP 2, so they could focus on building a great gaming experience.</p> - </div> -</div> -</div> <!-- END STORY --> - - - +<p> + <a href="https://developers.google.com/games/">Google Play game services</a> + lets you add great social features to your games quickly, without having to + build them yourself. You can add multiplayer, game invites, quests, and a + variety of other features — all from within your app. Google provides + cross-platform game and player infrastructure for you, as well as insights + and analytics to help you understand the activities of users in your games. +</p> + +<p> + The case study presentations below highlight how top game studios are taking + advantage of Google Play game services — the features they've added and + the results they are seeing. Each deck (PDF) is focused on a single game and + how it uses a specific Google Play gemes feature. +</p> + +<div class="resource-widget resource-flow-layout col-13" + data-query="collection:distribute/stories/games" + data-sortOrder="-timestamp" + data-cardSizes="18x12" + data-maxResults="32"></div>
\ No newline at end of file diff --git a/docs/html/distribute/tools/localization-checklist.jd b/docs/html/distribute/tools/localization-checklist.jd index 08a8143..e640243 100644 --- a/docs/html/distribute/tools/localization-checklist.jd +++ b/docs/html/distribute/tools/localization-checklist.jd @@ -529,21 +529,6 @@ data-sortorder="-timestamp" data-cardsizes="9x3" data-maxresults="6"> <strong>Purchase professional translations through Google Play</strong> </h4> -<div class="sidebox-wrapper"> - <div class="sidebox"> - <h2> - App Translations Service - </h2> - - <p> - To make it easy to export your app's strings and import the finished - translations into your project, try the <a href= - "{@docRoot}sdk/installing/installing-adt.html#tmgr">ADT Translation - Manager Plugin</a>. - </p> - </div> -</div> - <p> Google Play App Translation Service can help you quickly find and purchase translations of your app. In the Developer Console, you can browse a list of diff --git a/docs/html/distribute/users/build-buzz.jd b/docs/html/distribute/users/build-buzz.jd index 412589f..bfdc095 100644 --- a/docs/html/distribute/users/build-buzz.jd +++ b/docs/html/distribute/users/build-buzz.jd @@ -126,7 +126,7 @@ page.tags="users, growth, promotion" also easy to make and available in multiple languages. </p> -<div class="headerLine"> +<div class="headerLine" style="clear:both"> <h2 id="cross-promote-from-your-other-apps"> Cross-Promote from Your Other Apps </h2> @@ -262,7 +262,7 @@ page.tags="users, growth, promotion" Sign up for an AdMob account</a> to get started. </p> -<div class="headerLine"> +<div class="headerLine" style="clear:both"> <h2 id="maximize-your-marketing-spend"> Maximize your Marketing Spend </h2> @@ -285,7 +285,7 @@ page.tags="users, growth, promotion" platforms simultaneously helps you maximize your return on investment. </p> -<div class="headerLine"> +<div class="headerLine" style="clear:both"> <h2 id="related-resources"> Related Resources </h2> diff --git a/docs/html/distribute/users/your-listing.jd b/docs/html/distribute/users/your-listing.jd index f869950..5d2f885 100644 --- a/docs/html/distribute/users/your-listing.jd +++ b/docs/html/distribute/users/your-listing.jd @@ -87,11 +87,10 @@ page.tags="listing, google play, users, growth" <p> Choosing the right featured image is important, it needs to convey as much about the features of your apps and what makes them special as possible, - without being cluttered and confusing. Check out the <a href= - "http://android-developers.blogspot.com/">Android Developers blog</a> post - for more <a href= - "http://android-developers.blogspot.com/2011/10/android-market-featured-image.html"> - Featured-Image Guidelines</a>. + without being cluttered and confusing. To get started with the featured + image specs, read the <a + href="https://support.google.com/googleplay/android-developer/answer/1078870">featured + image guidelines</a> in the Help Center. </p> <div class="headerLine"> diff --git a/docs/html/google/play/billing/billing_overview.jd b/docs/html/google/play/billing/billing_overview.jd index 12f8c9a..1c20d78 100644 --- a/docs/html/google/play/billing/billing_overview.jd +++ b/docs/html/google/play/billing/billing_overview.jd @@ -7,11 +7,11 @@ parent.link=index.html <div id="qv"> <h2>Quickview</h2> <ul> - <li>Use In-app Billing to sell digital goods, including one-time items and + <li>Use In-app Billing to sell digital goods, including one-time items and recurring subscriptions.</li> - <li>Supported for any app published on Google Play. You only need a Google + <li>Supported for any app published on Google Play. You only need a Google Play Developer Console account and a Google Wallet merchant account.</li> - <li>Checkout processing is automatically handled by Google Play, with the + <li>Checkout processing is automatically handled by Google Play, with the same look-and-feel as for app purchases.</li> </ul> <h2>In this document</h2> @@ -24,18 +24,18 @@ same look-and-feel as for app purchases.</li> </li> <li><a href="#console">Google Play Developer Console</a></li> <li><a href="#checkout">Google Play Purchase Flow</a></li> - <li><a href="#samples">Sample App</a></li> + <li><a href="#samples">Sample App</a></li> <li><a href="#migration">Migration Considerations</a></li> </ol> <h2>Related Samples</h2> <ol> <li><a href="{@docRoot}training/in-app-billing/preparing-iab-app.html#GetSample">Sample Application (V3)</a></li> - </ol> + </ol> </div> </div> -<p>This documentation describes the fundamental In-app Billing components and -features that you need to understand in order to add In-app +<p>This documentation describes the fundamental In-app Billing components and +features that you need to understand in order to add In-app Billing features into your application.</p> <p class="note"><b>Note</b>: Ensure that you comply with applicable laws in the countries where you @@ -49,130 +49,132 @@ of the EU consumer protection authorities</a> for more information on this and o </p> <h2 id="api">In-app Billing API</h2> -<p>Your application accesses the In-app Billing service using an API that is -exposed by the Google Play app that is installed on the device. The Google Play -app then conveys billing requests and responses between your -application and the Google Play server. In practice, your application never -directly communicates with the Google Play server. Instead, your application -sends billing requests to the Google Play application over interprocess -communication (IPC) and receives responses from the Google Play app. -Your application does not manage any network connections between itself and +<p>Your application accesses the In-app Billing service using an API that is +exposed by the Google Play app that is installed on the device. The Google Play +app then conveys billing requests and responses between your +application and the Google Play server. In practice, your application never +directly communicates with the Google Play server. Instead, your application +sends billing requests to the Google Play application over interprocess +communication (IPC) and receives responses from the Google Play app. +Your application does not manage any network connections between itself and the Google Play server.</p> -<p>In-app Billing can be implemented only in applications that you publish -through Google Play. To complete in-app purchase requests, the Google Play app +<p>In-app Billing can be implemented only in applications that you publish +through Google Play. To complete in-app purchase requests, the Google Play app must be able to access the Google Play server over the network.</p> -<p>In-app billing Version 3 is the latest version, and maintains very broad -compatibility across the range of Android devices. In-app Billing Version 3 is -supported on devices running Android 2.2 or higher that have the latest version +<p>In-app billing Version 3 is the latest version, and maintains very broad +compatibility across the range of Android devices. In-app Billing Version 3 is +supported on devices running Android 2.2 or higher that have the latest version of the Google Play store installed (<a href="{@docRoot}about/dashboards/index.html">a vast majority</a> of active devices).</p> <h4>Version 3 features</h4> <ul> -<li>Requests are sent through a streamlined API that allows you to easily request -product details from Google Play, order in-app products, and quickly restore +<li>Requests are sent through a streamlined API that allows you to easily request +product details from Google Play, order in-app products, and quickly restore items based on users' product ownership</li> -<li>Order information is synchronously propagated to the device on purchase +<li>Order information is synchronously propagated to the device on purchase completion</li> -<li>All purchases are “managed” (that is, Google Play keeps track of the user's -ownership of in-app products). The user cannot own multiple copies of an in-app +<li>All purchases are “managed” (that is, Google Play keeps track of the user's +ownership of in-app products). The user cannot own multiple copies of an in-app item; only one copy can be owned at any point in time</li> -<li>Purchased items can be consumed. When consumed, the item reverts to the +<li>Purchased items can be consumed. When consumed, the item reverts to the "unowned" state and can be purchased again from Google Play</li> <li>Provides support for <a href="{@docRoot}google/play/billing/billing_subscriptions.html">subscriptions</a></li> </ul> -<p>For details about other versions of In-app Billing, see the +<p>For details about other versions of In-app Billing, see the <a href="{@docRoot}google/play/billing/versions.html">Version Notes</a>.</p> <h2 id="products">In-app Products</h2> -<p>In-app products are the digital goods that you offer for sale from inside your -application to users. Examples of digital goods includes in-game currency, -application feature upgrades that enhance the user experience, and new content +<p>In-app products are the digital goods that you offer for sale from inside your +application to users. Examples of digital goods includes in-game currency, +application feature upgrades that enhance the user experience, and new content for your application.</p> -<p>You can use In-app Billing to sell only digital content. -You cannot use In-app Billing to sell physical goods, personal services, or -anything that requires physical delivery. Unlike with priced applications, once +<p>You can use In-app Billing to sell only digital content. +You cannot use In-app Billing to sell physical goods, personal services, or +anything that requires physical delivery. Unlike with priced applications, once the user has purchased an in-app product there is no refund window.</p> -<p>Google Play does not provide any form of content delivery. You are -responsible for delivering the digital content that you sell in your -applications. In-app products are always explicitly associated with one and -only one app. That is, one application cannot purchase an in-app product +<p>Google Play does not provide any form of content delivery. You are +responsible for delivering the digital content that you sell in your +applications. In-app products are always explicitly associated with one and +only one app. That is, one application cannot purchase an in-app product published for another app, even if they are from the same developer.</p> <h3 id="prodtypes">Product types</h3> -<p>In-app Billing supports different product types to give you flexibility in -how you monetize your application. In all cases, you define your products using +<p>In-app Billing supports different product types to give you flexibility in +how you monetize your application. In all cases, you define your products using the Google Play Developer Console.</p> -<p>You can specify these types of products for your In-app Billing application -— <em>managed in-app products</em> and <em>subscriptions</em>. Google Play -handles and tracks ownership for in-app products and subscriptions on your +<p>You can specify these types of products for your In-app Billing application +— <em>managed in-app products</em> and <em>subscriptions</em>. Google Play +handles and tracks ownership for in-app products and subscriptions on your application on a per user account basis. <a href="{@docRoot}google/play/billing/api.html#producttypes">Learn more about the product types supported by In-app Billing Version 3</a>.</p> <h2 id="console">Google Play Developer Console</h2> -<p>The Developer Console is where you can publish your -In-app Billing application, and manage the various in-app products that are +<p>The Developer Console is where you can publish your +In-app Billing application, and manage the various in-app products that are available for purchase from your application.</p> -<p>You can create a product list of -digital goods that are associated with your application, including items for -one-time purchase and recurring subscriptions. For each item, you can define -information such as the item’s unique product ID (also called its SKU), product -type, pricing, description, and how Google Play should handle and track +<p>You can create a product list of +digital goods that are associated with your application, including items for +one-time purchase and recurring subscriptions. For each item, you can define +information such as the item’s unique product ID (also called its SKU), product +type, pricing, description, and how Google Play should handle and track purchases for that product.</p> -<p>You can also create test accounts to authorize +<p>You can also create test accounts to authorize access for testing applications that are unpublished.</p> -<p>To learn how to use the Developer Console to configure your in-app -products and product list, see -<a href="{@docRoot}google/play/billing/billing_admin.html">Administering +<p>To learn how to use the Developer Console to configure your in-app +products and product list, see +<a href="{@docRoot}google/play/billing/billing_admin.html">Administering In-app Billing</a>.</p> <h2 id="checkout">Google Play Purchase Flow</h2> -<p>Google Play uses the same checkout backend service as is used for application +<p>Google Play uses the same checkout backend service as is used for application purchases, so your users experience a consistent and familiar purchase flow.</p> <p class="note"><strong>Important:</strong> You must have a Google Wallet merchant account to use the In-app Billing service on Google Play.</p> -<p>To initiate a purchase, your application sends a billing request for a -specific in-app product. Google Play then handles all of the checkout details for -the transaction, including requesting and validating the form of payment and -processing the financial transaction.</p> -<p>When the checkout process is complete, -Google Play sends your application the purchase details, such as the order -number, the order date and time, and the price paid. At no point does your -application have to handle any financial transactions; that role is provided by +<p>To initiate a purchase, your application sends a billing request for a +specific in-app product. Google Play then handles all of the checkout details for +the transaction, including requesting and validating the form of payment and +processing the financial transaction.</p> +<p>When the checkout process is complete, +Google Play sends your application the purchase details, such as the order +number, the order date and time, and the price paid. At no point does your +application have to handle any financial transactions; that role is provided by Google Play.</p> <h2 id="samples">Sample Application</h2> -<p>To help you integrate In-app Billing into your application, the Android SDK -provides a sample application that demonstrates how to sell in-app products and subscriptions +<p>To help you integrate In-app Billing into your application, the Android SDK +provides a sample application that demonstrates how to sell in-app products and subscriptions from inside an app.</p> -<p>The <a href="{@docRoot}training/in-app-billing/preparing-iab-app.html#GetSample">TrivialDrive sample for the Version 3 API</a> sample shows how to use the In-app Billing Version 3 API -to implement in-app product and subscription purchases for a driving game. The -application demonstrates how to send In-app Billing requests, and handle -synchronous responses from Google Play. The application also shows how to record -item consumption with the API. The Version 3 sample includes convenience classes -for processing In-app Billing operations as well as perform automatic signature +<p>The <a href="{@docRoot}training/in-app-billing/preparing-iab-app.html#GetSample">TrivialDrive sample for the Version 3 API</a> sample shows how to use the In-app Billing Version 3 API +to implement in-app product and subscription purchases for a driving game. The +application demonstrates how to send In-app Billing requests, and handle +synchronous responses from Google Play. The application also shows how to record +item consumption with the API. The Version 3 sample includes convenience classes +for processing In-app Billing operations as well as perform automatic signature verification.</p> -<p class="caution"><strong>Recommendation</strong>: Make sure to obfuscate the +<p class="caution"><strong>Recommendation</strong>: Make sure to obfuscate the code in your application before you publish it. For more information, see -<a href="{@docRoot}google/play/billing/billing_best_practices.html">Security +<a href="{@docRoot}google/play/billing/billing_best_practices.html">Security and Design</a>.</p> <h2 id="migration">Migration Considerations</h2> -<p>If you have an existing In-app Billing implementation that uses Version 2 or -earlier, it is strongly recommended that you migrate to <a href="{@docRoot}google/play/billing/api.html">In-app Billing Version 3</a> at your earliest convenience.</p> +<p>The In-app Billing Version 2 API is deprecated and will be discontinued in January 2015. +If you have an existing In-app Billing implementation that uses API Version 2 or +earlier, you must migrate to <a href="{@docRoot}google/play/billing/api.html">In-app Billing Version +3</a>.</p> <p>If you have published apps selling in-app products, note that:</p> <ul> -<li>Managed items and subscriptions that you have previously defined in the Developer Console will +<li>Managed items and subscriptions that you have previously defined in the Developer Console will work with Version 3 as before.</li> -<li>Unmanaged items that you have defined for existing applications will be -treated as managed products if you make a purchase request for these items using -the Version 3 API. You do not need to create a new product entry in Developer -Console for these items, and you can use the same product IDs to purchase these -items. They will still continue to be treated as unmanaged items if you make a -purchase request for them using the Version 2 or earlier API. +<li>Unmanaged items that you have defined for existing applications will be +treated as managed products if you make a purchase request for these items using +the Version 3 API. You do not need to create a new product entry in Developer +Console for these items, and you can use the same product IDs to purchase these +items. They will still continue to be treated as unmanaged items if you make a +purchase request for them using the Version 2 or earlier API. </ul> diff --git a/docs/html/google/play/billing/billing_subscriptions.jd b/docs/html/google/play/billing/billing_subscriptions.jd index 2b78ab3..b9b77df 100644 --- a/docs/html/google/play/billing/billing_subscriptions.jd +++ b/docs/html/google/play/billing/billing_subscriptions.jd @@ -11,25 +11,32 @@ meta.tags="monetization, inappbilling, subscriptions" <div id="qv"> <h2>Quickview</h2> <ul> - <li>Users purchase your subscriptions from inside your apps, rather than -directly from Google Play.</li> - <li>Subscriptions let you sell products with automated, recurring billing -(monthly or annual).</li> - <li>You can offer a configurable trial period for any subscription.</li> - + <li>Subscriptions let you sell products with automated, recurring billing + at a variety of intervals.</li> + <li>You can offer a configurable trial period for monthly and + annual subscriptions.</li> + <li>You can manage subscriptions through the Developer Console, or by using + the + <a href="https://developers.google.com/android-publisher/">Google Play + Developer API</a>.</li> + <li>Users purchase your subscriptions from inside your apps, rather than + directly from Google Play.</li> + <li>You can defer billing for a particular user's subscription, to manage + accounts or offer rewards.</li> </ul> <h2>In this document</h2> <ol> - <li><a href="#overview">Overview</a></li> + <li><a href="#overview">Overview of Subscriptions</a></li> <li><a href="#administering">Configuring Subscriptions Items</a></li> - <li><a href="#cancellation">Cancellation</a></li> - <li><a href="#payment">Payment Processing</a></li> + <li><a href="#cancellation">Subscription Cancellation</a></li> + <li><a href="#payment">Payment Processing and Policies</a></li> <li><a href="#strategies">Purchase Verification Strategies</a></li> + <li><a href="#play-dev-api">Google Play Developer API</a></li> </ol> <h2>See also</h2> <ol> <li><a href="{@docRoot}google/play/billing/billing_integrate.html#Subs">Implementing Subscriptions (V3)</a></li> - <li><a href="https://developers.google.com/android-publisher/v1_1/">Google Play Android Developer API</a></li> + <li><a href="https://developers.google.com/android-publisher/">Google Play Developer API</a></li> </ol> </div> </div> @@ -44,14 +51,15 @@ and business models.</p> <h2 id="overview">Overview of Subscriptions</h2> <p>A <em>subscription</em> is a product type offered in In-app Billing that lets you sell content, services, or features to users from inside your app with -recurring monthly or annual billing. You can sell subscriptions to almost any +recurring, automated billing at the interval you specify. You can sell subscriptions to almost +any type of digital content, from any type of app or game.</p> <p>As with other in-app products, you configure and publish subscriptions using the Developer Console and then sell them from inside apps installed on Android devices. In the Developer console, you create subscription products and add them to a product list, then set a price and optional trial -period for each, choose a billing interval (monthly or annual), and then +period for each, choose a billing interval, and then publish. For more information about using the Developer Console, see <a href="#administering">Configuring Subscription Items</a>.</p> @@ -63,17 +71,17 @@ This ensures a consistent and familiar purchase flow for your users.</p> <img src="{@docRoot}images/in-app-billing/v3/billing_subscription_v3.png" style="float:right; border:4px solid ddd;"> -<p>After users have purchase subscriptions, they can view the subscriptions and +<p>After users have purchased subscriptions, they can view the subscriptions and cancel them from the <strong>My Apps</strong> screen in the Play Store app or from the app's product details page in the Play Store app. For more information about handling user cancellations, see <a href="#cancellation">Subscription Cancellation</a>.</p> -<p>In adddition to client-side API calls, you can use the server-side API for +<p>In addition to client-side API calls, you can use the server-side API for In-app Billing to provide subscription purchasers with extended access to content (for example, from your web site or another service). The server-side API lets you validate the status of a subscription when users sign into your other services. For more information about the API, see <a -href="{@docRoot}google/play/billing/gp-purchase-status-api.html">Purchase Status API</a>. </p> +href="{@docRoot}google/play/billing/gp-purchase-status-api.html">Google Play Developer API</a>. </p> <p>You can also build on your existing external subscriber base from inside your Android apps.</p> @@ -102,8 +110,10 @@ href="http://support.google.com/googleplay/android-developer/bin/answer.py?hl=en subscriptions, see the <a href="{@docRoot}google/play/billing/versions.html#Subs">Version Notes</a>.</p> <h2 id="administering">Configuring Subscription Items</h2> -<p>To create and manage subscriptions, use the Developer Console to set up a -product list for the app then configure these attributes for each subscription + +<p>To create and manage subscriptions, you can use the Developer Console to set +up a +product list for the app, then configure these attributes for each subscription product:</p> <ul> @@ -113,8 +123,8 @@ product:</p> <li>Language: The default language for displaying the subscription</li> <li>Title: The title of the subscription product</li> <li>Description: Details that tell the user about the subscription</li> -<li>Price: USD price of subscription per recurrence</li> -<li>Recurrence: monthly or yearly</li> +<li>Price: Default price of subscription per recurrence</li> +<li>Recurrence: Interval of billing recurrence</li> <li>Additional currency pricing (can be auto-filled)</li> </ul> @@ -122,6 +132,10 @@ product:</p> see <a href="{@docRoot}google/play/billing/billing_admin.html">Administering In-app Billing</a>.</p> +<p>You can also create and manage subscriptions using the +<a href="{@docRoot}google/play/billing/gp-purchase-status-api.html"> +Google Play Developer API</a>.</p> + <h3 id="pricing">Subscription pricing</h3> <p>When you create a subscription in the Developer Console, you can set a price @@ -139,20 +153,30 @@ original price, but new users will be charged at the new price.</p> <h3 id="user-billing">User billing</h3> <p>In the Developer Console, you can configure subscription products with -automated recurring billing at either of two intervals:</p> +automated recurring billing at your choice of intervals:</p> <ul> <li>Monthly — Google Play bills the customer’s Google Wallet account at the time of purchase and monthly subsequent to the purchase date (exact billing - intervals can vary slightly over time)</li> + intervals can vary slightly over time).</li> <li>Annually — Google Play bills the customer's Google Wallet account at the time of purchase and again on the same date in subsequent years.</li> + + <li>Seasonal — Google Play bills the customer's Google Wallet account at + the beginning of each "season" (you specify the season beginning and end + dates). This + is intended for annual purchases of seasonal content (such as sports-related + content). The subscription runs through the end of the season, and restarts + the next year at the start of the season.</li> + </ul> <p>Billing continues indefinitely at the interval and price specified for the subscription. At each subscription renewal, Google Play charges the user account -automatically, then notifies the user of the charges afterward by email. Billing -cycles will always match subscription cycles, based on the purchase date.</p> +automatically, then notifies the user of the charges afterward by email. For +monthly and annual subscriptions, billing cycles will always match subscription +cycles, based on the purchase date. (Seasonal subscriptions are charged +annually, on the first day of the season.)</p> <p>Over the life of a subscription, the form of payment billed remains the same — Google Play always bills the same form of payment (such as credit card @@ -164,7 +188,7 @@ provides a purchase token back to the purchasing app through the In-app Billing API. Your apps can store the token locally or pass it to your backend servers, which can then use it to validate or cancel the subscription remotely using the <a -href="{@docRoot}google/play/billing/gp-purchase-status-api.html">Purchase Status API</a>.</p> +href="{@docRoot}google/play/billing/gp-purchase-status-api.html">Google Play Developer API</a>.</p> <p>If a recurring payment fails (for example, because the customer’s credit card has become invalid), the subscription does not renew. How your app is @@ -182,18 +206,57 @@ app to notify your backend servers of subscription purchases, tokens, and any billing errors that may occur. Your backend servers can use the server-side API to query and update your records and follow up with customers directly, if needed.</p> +<h3 id="deferred-billing">Deferred Billing</h3> + +<p>Using the +<a href="{@docRoot}google/play/billing/gp-purchase-status-api.html">Google +Play Developer API</a>, you can defer the next billing date for a +subscriber. The user continues to be subscribed to the content, and has full +access to it, but is not charged during the deferral period. This allows you +to do things like:</p> + +<ul> + <li>Give users free access as part of a bundle or a special offer (for + example, giving free access to web content to users who subscribe to a + print magazine)</li> + <li>Give free access to customers as a goodwill gesture</li> +</ul> + +<p>The longest you can defer billing is for one year per call. Of course, you +can call the API again before the year is up to defer billing further.</p> + +<p>For example, Darcy has a monthly subscription to online content for the +<em>Fishing Gentleman</em> app. He is normally +billed £1.25 on the first of each month. +On March 10, he participates in an online survey for the app publisher. The +publisher rewards him by deferring his next payment until June 1. Darcy is not +charged on April 1 or May 1, but still has access to the content as normal. On +June 1, he is charged his normal £1.25 subscription fee.</p> + +<p class="note"><strong>Note:</strong> The API always defers the billing date +by a whole number of days. If you request a deferral period that includes a +fractional number of days, the API rounds the period up to the next full day. +For example, if a user's subscription is set to renew on 15 June 2015 at +14:00:00 UTC, and you use the API to defer the renewal date to 15 August 2015 at +02:00:00 UTC, the API will round up to the next full day and set the renewal +date to 15 August 2015 14:00:00 UTC.</p> + +<p>You can also offer free trials to new subscribers, as described in +<a href="#trials">Free trials</a>.</p> + <h3 id="trials">Free trials</h3> <p>In the Developer Console, you can set up a free trial period that lets users try your subscription content before buying it. The trial period runs for the period of time that you set and then automatically converts to a full subscription managed according to the subscription's billing interval and -price.</p> +price. Free trials are supported for monthly and annual subscriptions only, and are not supported for seasonal subscriptions.</p> <p>To take advantage of a free trial, a user must "purchase" the full subscription through the standard In-app Billing flow, providing a valid form of payment to use for billing and completing the normal purchase transaction. -However, the user is not charged any money, since the initial period corresponds +However, the user is not charged any money, because the initial period +corresponds to the free trial. Instead, Google Play records a transaction of $0.00 and the subscription is marked as purchased for the duration of the trial period or until cancellation. When the transaction is complete, Google Play notifies users @@ -220,8 +283,10 @@ purchases will use the updated trial period. You can create one free trial period per subscription product.</p> <h3 id="publishing">Subscription publishing</h3> + <p>When you have finished configuring your subscription product details in the -Developer Console, you can publish the subscription in the app product list.</p> +Developer Console or via the API, +you can publish the subscription in the app product list.</p> <p>In the product list, you can add subscriptions, in-app products, or both. You can add multiple subscriptions that give access to different content or @@ -263,10 +328,13 @@ query and directly cancel the user’s subscription from your servers. <p class="caution"><strong>Important:</strong> In all cases, you must continue to offer the content that your subscribers have purchased through their -subscriptions, for as long any users are able to access it. That is, you must -not remove any subscriber’s content while any user still has an active +subscriptions, as long any user is able to access it. That is, you must +not remove any content while any user still has an active subscription to it, even if that subscription will terminate at the end of the -current billing cycle. Removing content that a subscriber is entitled to access +current billing cycle. Alternatively, you can use the <a href="#refunds">refund +and revoke</a> API to revoke each subscriber's subscription (one by one) and +refund their subscription payments. +Removing content that any subscriber is entitled to access will result in penalties. Please see the <a href="http://support.google.com/googleplay/android-developer/bin/answer.py?hl=en&answer=140504">policies document</a> for more information. </p> @@ -280,19 +348,26 @@ to cancel the associated subscriptions at any time in the <strong>My Apps</stron screen of the Play Store app. If the user chooses to cancel the uninstallation, the app and subscriptions remain as they were.</p> -<h3 id="refunds">Refunds</h3> +<h3 id="refunds">Refunding and revoking subscriptions</h3> -<p>With subscriptions, Google Play does not provide a refund window, so users -will need to contact you directly to request a refund. +<p>With subscriptions, Google Play does not provide a refund window, so users +will need to request a refund. They can request a refund from the <strong>My +Orders</strong> page in the Play Store, or by contacting you directly.</p> -<p>If you receive requests for refunds, you can use the server-side API to -cancel the subscription or verify that it is already cancelled. However, keep in -mind that Google Play considers cancelled subscriptions valid until the end of -their current billing cycles, so even if you grant a refund and cancel the -subscription, the user will still have access to the content. +<p>If you receive requests for refunds, you can use the +<a href="{@docRoot}google/play/billing/gp-purchase-status-api.html">Google Play +Developer API</a> or the Merchant Center to cancel the subscription, verify that it +is already cancelled, or refund the user's payment without cancelling it. You +can also use the +<a href="{@docRoot}google/play/billing/gp-purchase-status-api.html">Google +Play Developer API</a> to <em>refund and revoke</em> a +user's subscription. If you refund and revoke a subscription, the user's +subscription is immediately cancelled, and the user's most recent subscription +payment is refunded. (If you want to refund more than the most recent payment, +you can process additional refunds through the Merchant Center.)</p> -<p class="caution"><strong>Important:</strong> Partial refunds for canceled -subscriptions are not available at this time.</p> +<p class="caution"><strong>Important:</strong> Partial refunds are not available +at this time.</p> <h2 id="payment">Payment Processing and Policies</h2> @@ -317,9 +392,9 @@ subscription and denotes each recurring transaction by appending an integer as follows: </p> <p><span style="color:#777"><code style="color:#777">12999556515565155651.5565135565155651</code> (base order number)</span><br /> -<code>12999556515565155651.5565135565155651..0</code> (initial purchase orderID)<br /> -<code>12999556515565155651.5565135565155651..1</code> (first recurrence orderID)<br /> -<code>12999556515565155651.5565135565155651..2</code> (second recurrence orderID)<br /> +<code>12999556515565155651.5565135565155651..0</code> (first recurrence orderID)<br /> +<code>12999556515565155651.5565135565155651..1</code> (second recurrence orderID)<br /> +<code>12999556515565155651.5565135565155651..2</code> (third recurrence orderID)<br /> ...<br /></p> <p>Google Play provides the order number as the value of the @@ -334,19 +409,28 @@ content.</p> <p>To verify a purchase, the app passes the purchase token and other details up to your backend servers, which verifies them directly with Google Play using the -Purchase Status API. If the backend server determines that the purchase is +Google Play Developer API. If the backend server determines that the purchase is valid, it notifies the app and grants access to the content.</p> <p>Keep in mind that users will want the ability to use your app at any time, including when there may be no network connection available. Make sure that your approach to purchase verification accounts for the offline use-case.</p> -<h2 id="play-dev-api">Google Play Android Developer API</h2> +<h2 id="play-dev-api">Google Play Developer API</h2> + +<p>Google Play offers an HTTP-based API that lets you perform such tasks as:</p> + <ul> + <li>Remotely query the validity of a specific subscription at any time</li> + <li>Cancel a subscription</li> + <li>Defer a subscription's next billing date</li> + <li>Refund a subscription payment without cancelling the subscription</li> + <li>Refund and revoke a subscription</li> + </ul> -<p>Google Play offers an HTTP-based API that lets you remotely query the -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 +<p>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.</p> -<p>For complete information, see <a href="{@docRoot}google/play/billing/gp-purchase-status-api.html">Purchase Status API</a>.</p> +<p>For complete information, see +<a href="{@docRoot}google/play/billing/gp-purchase-status-api.html">Google Play +Developer API</a>.</p> diff --git a/docs/html/google/play/billing/index.jd b/docs/html/google/play/billing/index.jd index 875271f..bdbf5c7 100644 --- a/docs/html/google/play/billing/index.jd +++ b/docs/html/google/play/billing/index.jd @@ -14,21 +14,35 @@ and features, and more. You can use In-app Billing to sell products as</p> <div class="sidebox"> <h2><strong>New in In-App Billing</strong></h2> <ul> + <li><strong>IAB v2 shutdown</strong>—In-app Billing v2 API is deprecated and will be shut down in January 2015. If your app is still using In-app Billing v2, please migrate to the v3 API as soon as possible.</li> + <li><strong>Seasonal subscriptions</strong>—You can now set up a + recurring <a href="billing_subscriptions.html#user-billing">seasonal + subscription</a> that starts and ends on the same date each year (for + example, a sports subscription that starts every September 1 and ends every + April 10).</li> + <li><strong>Deferred subscription billing</strong>—You can + <a href="billing_subscriptions.html#deferred-billing">defer</a> a + subscriber's next billing date until the date you choose. The user still has + access to the content but is not charged during the deferral period.</li> <li><strong>Google Play Developer API</strong>—The <a href="{@docRoot}google/play/billing/gp-purchase-status-api.html">Google Play Developer API</a> allows you to perform a number of publishing and app-management tasks. It includes the functionality previously known as the <em>Purchase Status API.</em> </li> + <li><strong>Refund/Revoke subscription</strong>—You can use the + Google Play Developer API to <a href="billing_subscriptions.html#refunds">refund + and revoke</a> a user's subscription. If you do this, the user's + subscription ends + immediately, and his or her most recent subscription payment is + refunded.</li> <li><strong>In-app Billing Version 3</strong>—The <a href="{@docRoot}google/play/billing/api.html">latest version</a> of In-app Billing features a synchronous API that is easier to implement and lets you manage in-app products and subscriptions more effectively.</li> - <li><strong>Subscriptions now supported in Version 3</strong>—You can query and launch purchase flows for subscription items using the V3 API.</li> - <li><strong>Free trials</strong>—You can now offer users a configurable <a href="/google/play/billing/v2/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.</li> </ul> </div> </div> <ul> <li>Standard in-app products (one-time billing), or</li> -<li>Subscriptions, (recurring, automated billing)</li> +<li>Subscriptions (recurring, automated billing)</li> </ul> <p>When you use the in-app billing service to sell an item, diff --git a/docs/html/google/play/billing/v2/api.jd b/docs/html/google/play/billing/v2/api.jd index 9501555..36a9017 100644 --- a/docs/html/google/play/billing/v2/api.jd +++ b/docs/html/google/play/billing/v2/api.jd @@ -2,7 +2,28 @@ page.title=In-app Billing Version 2 excludeFromSuggestions=true @jd:body -<div style="background-color:#fffdeb;width:100%;margin-bottom:1em;padding:.5em;">In-app Billing Version 2 is superseded. Please <a href="{@docRoot}google/play/billing/billing_overview.html#migration">migrate to Version 3</a> at your earliest convenience.</div> +<p class="caution" style= +"background-color:#fffdeb;width:100%;margin-bottom:1em;padding:.5em;"> + The <strong>In-app Billing Version 2 API</strong> has been deprecated in + favor of the Version 3 API. If your app is using In-app Billing, please + <strong>make sure that it is using the Version 3 API</strong>. If your app is + still using the Version 2 API, you must <strong>migrate to the Version 3 API + as soon as possible</strong>.<br> + <br> + We plan to turn off the In-app Billing Version 2 service on <strong>January + 27, 2015</strong>, after which time users will <strong>no longer be able to + purchase in-app items and subscriptions through the Version 2 API</strong>. + We strongly encourage and recommend you migrate your apps to use Version 3 + API by November 2014, to provide ample time for users to update their apps to + the new version.<br> + <br> + For more information, please see the <a href= + "http://support.google.com/googleplay/android-developer/answer/6090268">Help Center + article</a>. For common questions about transitioning your implementation to + In-app Billing Version 3, please see <a href= + "{@docRoot}google/play/billing/billing_overview.html#migration">Migration + Considerations</a>. +</p> <div id="qv-wrapper" style="margin-top:0;"> <div id="qv"> diff --git a/docs/html/google/play/billing/v2/billing_integrate.jd b/docs/html/google/play/billing/v2/billing_integrate.jd index 5eb17d5..c264271 100644 --- a/docs/html/google/play/billing/v2/billing_integrate.jd +++ b/docs/html/google/play/billing/v2/billing_integrate.jd @@ -2,7 +2,28 @@ page.title=Implementing In-app Billing <span style="font-size:16px;">(IAB Versio excludeFromSuggestions=true @jd:body -<div style="background-color:#fffdeb;width:100%;margin-bottom:1em;padding:.5em;">In-app Billing Version 2 is superseded. Please <a href="{@docRoot}google/play/billing/billing_overview.html#migration">migrate to Version 3</a> at your earliest convenience.</div> +<p class="caution" style= +"background-color:#fffdeb;width:100%;margin-bottom:1em;padding:.5em;"> + The <strong>In-app Billing Version 2 API</strong> has been deprecated in + favor of the Version 3 API. If your app is using In-app Billing, please + <strong>make sure that it is using the Version 3 API</strong>. If your app is + still using the Version 2 API, you must <strong>migrate to the Version 3 API + as soon as possible</strong>.<br> + <br> + We plan to turn off the In-app Billing Version 2 service on <strong>January + 27, 2015</strong>, after which time users will <strong>no longer be able to + purchase in-app items and subscriptions through the Version 2 API</strong>. + We strongly encourage and recommend you migrate your apps to use Version 3 + API by November 2014, to provide ample time for users to update their apps to + the new version.<br> + <br> + For more information, please see the <a href= + "http://support.google.com/googleplay/android-developer/answer/6090268">Help Center + article</a>. For common questions about transitioning your implementation to + In-app Billing Version 3, please see <a href= + "{@docRoot}google/play/billing/billing_overview.html#migration">Migration + Considerations</a>. +</p> <div id="qv-wrapper" style="margin-top:0;"> <div id="qv"> <h2>In this document</h2> diff --git a/docs/html/google/play/billing/v2/billing_reference.jd b/docs/html/google/play/billing/v2/billing_reference.jd index 4587dee..32e00cf 100644 --- a/docs/html/google/play/billing/v2/billing_reference.jd +++ b/docs/html/google/play/billing/v2/billing_reference.jd @@ -2,7 +2,28 @@ page.title=In-app Billing Reference <span style="font-size:16px;">(IAB Version 2 excludeFromSuggestions=true @jd:body -<div style="background-color:#fffdeb;width:100%;margin-bottom:1em;padding:.5em;">In-app Billing Version 2 is superseded. Please <a href="{@docRoot}google/play/billing/billing_overview.html#migration">migrate to Version 3</a> at your earliest convenience.</div> +<p class="caution" style= +"background-color:#fffdeb;width:100%;margin-bottom:1em;padding:.5em;"> + The <strong>In-app Billing Version 2 API</strong> has been deprecated in + favor of the Version 3 API. If your app is using In-app Billing, please + <strong>make sure that it is using the Version 3 API</strong>. If your app is + still using the Version 2 API, you must <strong>migrate to the Version 3 API + as soon as possible</strong>.<br> + <br> + We plan to turn off the In-app Billing Version 2 service on <strong>January + 27, 2015</strong>, after which time users will <strong>no longer be able to + purchase in-app items and subscriptions through the Version 2 API</strong>. + We strongly encourage and recommend you migrate your apps to use Version 3 + API by November 2014, to provide ample time for users to update their apps to + the new version.<br> + <br> + For more information, please see the <a href= + "http://support.google.com/googleplay/android-developer/answer/6090268">Help Center + article</a>. For common questions about transitioning your implementation to + In-app Billing Version 3, please see <a href= + "{@docRoot}google/play/billing/billing_overview.html#migration">Migration + Considerations</a>. +</p> <div id="qv-wrapper" style="margin-top:0;"> <div id="qv"> <h2>In this document</h2> diff --git a/docs/html/google/play/billing/v2/billing_subscriptions.jd b/docs/html/google/play/billing/v2/billing_subscriptions.jd index f8051a9..01e39ac 100644 --- a/docs/html/google/play/billing/v2/billing_subscriptions.jd +++ b/docs/html/google/play/billing/v2/billing_subscriptions.jd @@ -2,7 +2,28 @@ page.title=Implementing Subscriptions <span style="font-size:16px;">(IAB Versio excludeFromSuggestions=true @jd:body -<div style="background-color:#fffdeb;width:100%;margin-bottom:1em;padding:.5em;">In-app Billing Version 2 is superseded. Please <a href="{@docRoot}google/play/billing/billing_overview.html#migration">migrate to Version 3</a> at your earliest convenience.</div> +<p class="caution" style= +"background-color:#fffdeb;width:100%;margin-bottom:1em;padding:.5em;"> + The <strong>In-app Billing Version 2 API</strong> has been deprecated in + favor of the Version 3 API. If your app is using In-app Billing, please + <strong>make sure that it is using the Version 3 API</strong>. If your app is + still using the Version 2 API, you must <strong>migrate to the Version 3 API + as soon as possible</strong>.<br> + <br> + We plan to turn off the In-app Billing Version 2 service on <strong>January + 27, 2015</strong>, after which time users will <strong>no longer be able to + purchase in-app items and subscriptions through the Version 2 API</strong>. + We strongly encourage and recommend you migrate your apps to use Version 3 + API by November 2014, to provide ample time for users to update their apps to + the new version.<br> + <br> + For more information, please see the <a href= + "http://support.google.com/googleplay/android-developer/answer/6090268">Help Center + article</a>. For common questions about transitioning your implementation to + In-app Billing Version 3, please see <a href= + "{@docRoot}google/play/billing/billing_overview.html#migration">Migration + Considerations</a>. +</p> <div id="qv-wrapper" style="margin-top:0;"> <div id="qv"> <h2>In this document</h2> diff --git a/docs/html/images/gp-build-buzz-uplift-1.png b/docs/html/images/gp-build-buzz-uplift-1.png Binary files differnew file mode 100644 index 0000000..4319b5b --- /dev/null +++ b/docs/html/images/gp-build-buzz-uplift-1.png diff --git a/docs/html/images/gp-build-buzz-uplift-2.png b/docs/html/images/gp-build-buzz-uplift-2.png Binary files differnew file mode 100644 index 0000000..fd6d1f5 --- /dev/null +++ b/docs/html/images/gp-build-buzz-uplift-2.png diff --git a/docs/html/jd_collections.js b/docs/html/jd_collections.js index 852db1f..15564e0 100644 --- a/docs/html/jd_collections.js +++ b/docs/html/jd_collections.js @@ -743,4 +743,19 @@ var RESOURCE_COLLECTIONS = { "https://support.google.com/googleplay/answer/2651410" ] }, + "distribute/stories/games": { + "title": "", + "resources": [ + "http://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_Deerhunter2014_gpgs.pdf", + "http://storage.googleapis.com/androiddevelopers/shareables/stories/ConcreteSoftware_PBABowling_gpgs.pdf", + "http://storage.googleapis.com/androiddevelopers/shareables/stories/Dragonplay_DragonplaySlots_gpgs.pdf", + "http://storage.googleapis.com/androiddevelopers/shareables/stories/Gameloft_Asphalt8_gpgs.pdf", + "http://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_EternityWarriors3_gpgs.pdf", + "http://storage.googleapis.com/androiddevelopers/shareables/stories/HotheadGames_RivalsatWar_gpgs.pdf", + "http://storage.googleapis.com/androiddevelopers/shareables/stories/TMSOFT_Compulsive_gpgs.pdf", + "http://storage.googleapis.com/androiddevelopers/shareables/stories/Noodlecake_SuperStickmanGolf2_gpgs.pdf", + "http://storage.googleapis.com/androiddevelopers/shareables/stories/TinyRebel_DoctorWhoLegacy_gpgs.pdf", + "http://storage.googleapis.com/androiddevelopers/shareables/stories/Senri_LeosFortune_gpgs.pdf" + ] + } } diff --git a/docs/html/jd_extras.js b/docs/html/jd_extras.js index 62d18d6..89d9761 100644 --- a/docs/html/jd_extras.js +++ b/docs/html/jd_extras.js @@ -1264,5 +1264,135 @@ DISTRIBUTE_RESOURCES = DISTRIBUTE_RESOURCES.concat([ "keywords": [], "type": "", "titleFriendly": "" + }, + { + "lang": "en", + "group": "", + "tags": [], + "url": "http://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_Deerhunter2014_gpgs.pdf", + "timestamp": null, + "image": "http://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_Deerhunter2014_gpgs.png", + "title": "Deer Hunter 2014 by Glu — Sign-in", + "summary": "Glu finds that Google Play Game Services helps improve the user experience which leads to increased player happiness. They also find that Play Games Services signed in users tend to play longer and have a higher lifetime value.", + "keywords": ["stories"], + "type": "Case Study Deck", + "titleFriendly": "" + }, + { + "lang": "en", + "group": "", + "tags": [], + "url": "http://storage.googleapis.com/androiddevelopers/shareables/stories/ConcreteSoftware_PBABowling_gpgs.pdf", + "timestamp": null, + "image": "http://storage.googleapis.com/androiddevelopers/shareables/stories/ConcreteSoftware_PBABowling_gpgs.png", + "title": "PBA® Bowling Challenge by Concrete Software — Quests", + "summary": "Concrete Software finds that Google Play Game Services' quests are a great way to create new content for users that leads to higher engagement.", + "keywords": ["stories"], + "type": "Case Study Deck", + "titleFriendly": "" + }, + { + "lang": "en", + "group": "", + "tags": [], + "url": "http://storage.googleapis.com/androiddevelopers/shareables/stories/Dragonplay_DragonplaySlots_gpgs.pdf", + "timestamp": null, + "image": "http://storage.googleapis.com/androiddevelopers/shareables/stories/Dragonplay_DragonplaySlots_gpgs.png", + "title": "Dragonplay Slots by Dragonplay — Sign-in", + "summary": "Dragonplay finds that players who sign in with Google Play Games services tend to be high quality users who were highly engaged. They also tend to be easier to convert to paying users.", + "keywords": ["stories"], + "type": "Case Study Deck", + "titleFriendly": "" + }, + { + "lang": "en", + "group": "", + "tags": [], + "url": "http://storage.googleapis.com/androiddevelopers/shareables/stories/Gameloft_Asphalt8_gpgs.pdf", + "timestamp": null, + "image": "http://storage.googleapis.com/androiddevelopers/shareables/stories/Gameloft_Asphalt8_gpgs.png", + "title": "Asphalt 8 by Gameloft — Friends invitations", + "summary": "Gameloft finds that Google Play Game Services users are more engaged than the average Android user and more likely to convert to paying players.", + "keywords": ["stories"], + "type": "Case Study Deck", + "titleFriendly": "" + }, + { + "lang": "en", + "group": "", + "tags": [], + "url": "http://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_EternityWarriors3_gpgs.pdf", + "timestamp": null, + "image": "http://storage.googleapis.com/androiddevelopers/shareables/stories/Glu_EternityWarriors3_gpgs.png", + "title": "Eternity Warriors 3 by Glu — Gifting", + "summary": "Glu finds that Google Play Game Services gifting outperforms other implementations (including those with incentives) because of its seamless flow and consistent performance.", + "keywords": ["stories"], + "type": "Case Study Deck", + "titleFriendly": "" + }, + { + "lang": "en", + "group": "", + "tags": [], + "url": "http://storage.googleapis.com/androiddevelopers/shareables/stories/HotheadGames_RivalsatWar_gpgs.pdf", + "timestamp": null, + "image": "http://storage.googleapis.com/androiddevelopers/shareables/stories/HotheadGames_RivalsatWar_gpgs.jpg", + "title": "Rivals at War: Firefight by Hothead Games — Leaderboards", + "summary": "Hothead Games is planning to include Google Play Game Services features in all their games going forwards after seeing that players that signed in with Play Games Services tend to show higher retention and a higher average revenue.", + "keywords": ["stories"], + "type": "Case Study Deck", + "titleFriendly": "" + }, + { + "lang": "en", + "group": "", + "tags": [], + "url": "http://storage.googleapis.com/androiddevelopers/shareables/stories/TMSOFT_Compulsive_gpgs.pdf", + "timestamp": null, + "image": "http://storage.googleapis.com/androiddevelopers/shareables/stories/TMSOFT_Compulsive_gpgs.png", + "title": "Compulsive by TMSOFT — Cross-platform", + "summary": "TMSOFT finds that users who authenticate with Play Games Services on Android and iOS play Compulsive twice as much and purchase in-app products over four times as much.", + "keywords": ["stories"], + "type": "Case Study Deck", + "titleFriendly": "" + }, + { + "lang": "en", + "group": "", + "tags": [], + "url": "http://storage.googleapis.com/androiddevelopers/shareables/stories/Noodlecake_SuperStickmanGolf2_gpgs.pdf", + "timestamp": null, + "image": "http://storage.googleapis.com/androiddevelopers/shareables/stories/Noodlecake_SuperStickmanGolf2_gpgs.png", + "title": "Super Stickman Golf 2 by Noodlecake Studios — Multiplayer", + "summary": "Noodlecake Studios finds that Google Play Game Services’ multiplayer feature helps reduce attrition.", + "keywords": ["stories"], + "type": "Case Study Deck", + "titleFriendly": "" + }, + { + "lang": "en", + "group": "", + "tags": [], + "url": "http://storage.googleapis.com/androiddevelopers/shareables/stories/TinyRebel_DoctorWhoLegacy_gpgs.pdf", + "timestamp": null, + "image": "http://storage.googleapis.com/androiddevelopers/shareables/stories/TinyRebelGames_DrWhoLegacy_pgps.png", + "title": "Dr. Doctor Who: Legacy by Tiny Rebel Games — Achievements", + "summary": "After integrating achievements and cloud services from Google Play Game Services, Tiny Rebel Games saw a dramatic increase in daily revenues as a result of an increase in daily installs and an increase in the average revenue per install.", + "keywords": ["stories"], + "type": "Case Study Deck", + "titleFriendly": "" + }, + { + "lang": "en", + "group": "", + "tags": [], + "url": "http://storage.googleapis.com/androiddevelopers/shareables/stories/Senri_LeosFortune_gpgs.pdf", + "timestamp": null, + "image": "http://storage.googleapis.com/androiddevelopers/shareables/stories/Senri_LeosFortune_gpgs.png", + "title": "Leo’s Fortune by 1337 & Senri — Saved games", + "summary": "1337 + Senri finds that Google Play Game Services is easy to integrate and provides essential game functions like cloud saved games, achievements and leaderboards which have a very large adoption rate amongst players.", + "keywords": ["stories"], + "type": "Case Study Deck", + "titleFriendly": "" } ]); diff --git a/docs/html/preview/api-overview.jd b/docs/html/preview/api-overview.jd index beea0ca..87185b1 100644 --- a/docs/html/preview/api-overview.jd +++ b/docs/html/preview/api-overview.jd @@ -408,7 +408,7 @@ ES 3.1. Key new functionality provided in OpenGL ES 3.1 includes:</p> <p>The Java interface for OpenGL ES 3.1 on Android is provided with {@code GLES31}. When using OpenGL ES 3.1, be sure that you declare it in your manifest file with the <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code <uses-feature>}</a> -tag and the {@code android:glEsVversion} attribute. For example:</p> +tag and the {@code android:glEsVersion} attribute. For example:</p> <pre> <manifest> diff --git a/docs/html/preview/tv/ui/recommendations.jd b/docs/html/preview/tv/ui/recommendations.jd index 2c78064..a2ff55c 100644 --- a/docs/html/preview/tv/ui/recommendations.jd +++ b/docs/html/preview/tv/ui/recommendations.jd @@ -9,7 +9,6 @@ page.title=Making Recommendations <li><a href="#service">Create a Recommendations Service</a></li> <li><a href="#build">Build Recommendations</a></li> <li><a href="#run-service">Run Recommendations Service</a></li> - <li><a href="#DesignLandscapeLayouts">Design Landscape Layouts</a></li> </ol> </div> diff --git a/docs/html/sdk/index.jd b/docs/html/sdk/index.jd index edee360..70410c1 100644 --- a/docs/html/sdk/index.jd +++ b/docs/html/sdk/index.jd @@ -246,11 +246,9 @@ This is the Android Software Development Kit License Agreement <p>The Android SDK provides you the API libraries and developer tools necessary to build, test, and debug apps for Android.</p> -<p>If you're a new Android developer, we recommend you download the ADT Bundle -to quickly start developing apps. It includes the essential -Android SDK components and a version of the Eclipse IDE with built-in -<b>ADT (Android Developer Tools)</b> to -streamline your Android app development.</p> +<p>Download the ADT Bundle to quickly start developing apps. It includes the essential Android +SDK components and a version of the Eclipse IDE with built-in <b>ADT (Android Developer Tools)</b> +to streamline your Android app development.</p> <!-- this appears when viewing the online docs --> diff --git a/docs/html/sdk/installing/studio-build.jd b/docs/html/sdk/installing/studio-build.jd index 29ba12d..bff3bc0 100644 --- a/docs/html/sdk/installing/studio-build.jd +++ b/docs/html/sdk/installing/studio-build.jd @@ -454,8 +454,8 @@ with the default local certificate, so that you can install it on the emulator a for debugging purposes.</p> <p>After you build the project, the output APK for the app module is located in -<code>app/build/apk/</code>, and the output AAR for the lib module is located in -<code>lib/build/libs/</code>.</p> +<code>app/build/outputs/apk/</code>, and the output AAR for the lib module is located in +<code>lib/build/outputs/libs/</code>.</p> <p>To see a list of all available build tasks for your project, type this command:</p> diff --git a/docs/html/sdk/installing/studio.jd b/docs/html/sdk/installing/studio.jd index ee14b19..776e312 100644 --- a/docs/html/sdk/installing/studio.jd +++ b/docs/html/sdk/installing/studio.jd @@ -220,7 +220,7 @@ capabilities you expect from IntelliJ, Android Studio offers:</p> <li>Lint tools to catch performance, usability, version compatibility, and other problems.</li> <li>ProGuard and app-signing capabilities.</li> <li>Built-in support for <a - href="https://developers.google.com/cloud/devtools/android_studio_templates/" + href="https://developers.google.com/cloud/mobile" class="external-link">Google Cloud Platform</a>, making it easy to integrate Google Cloud Messaging and App Engine. </ul> diff --git a/docs/html/tools/index.jd b/docs/html/tools/index.jd index f9d452c..73f8969 100644 --- a/docs/html/tools/index.jd +++ b/docs/html/tools/index.jd @@ -1,16 +1,16 @@ page.title=Developer Tools @jd:body - -<img src="{@docRoot}images/tools-home.png" style="float:right;" height="415" width="763" /> + +<img src="{@docRoot}images/tools-home.png" style="float:right;" height="347" width="400" /> <div style="position:relative;height:0"> -<div style="position:absolute;width:420px"> +<div style="position:absolute;width:420px"> <p>The Android Developer Tools (ADT) plugin for Eclipse provides a professional-grade development environment for building Android apps. It's a full Java IDE with advanced features to help you build, test, debug, and package your Android apps. </p> - <p>Free, open-source, and runs on most major OS platforms.<br>To get started, + <p>Free, open-source, and runs on most major OS platforms.<br>To get started, <a href="{@docRoot}sdk/index.html">download the Android SDK.</a></p> </div> </div> @@ -21,11 +21,11 @@ page.title=Developer Tools <h3>Full Java IDE</h3> <ul> - <li>Android-specific refactoring, quick fixes, integrated navigation between Java and XML resources.</li> - <li>Enhanced XML editors for Android XML resources.</li> - <li>Static analysis tools to catch performance, usability, and correctness problems.</li> - <li>Build support for complex projects, command-line support for CI through Ant. Includes ProGuard and app-signing. </li> - <li>Template-based wizard to create standard Android projects and components.</li> + <li>Android-specific refactoring, quick fixes, integrated navigation between Java and XML resources.</li> + <li>Enhanced XML editors for Android XML resources.</li> + <li>Static analysis tools to catch performance, usability, and correctness problems.</li> + <li>Build support for complex projects, command-line support for CI through Ant. Includes ProGuard and app-signing. </li> + <li>Template-based wizard to create standard Android projects and components.</li> </ul> </div> @@ -34,7 +34,7 @@ page.title=Developer Tools <h3>Graphical UI Builders</h3> <ul> - <li>Build rich Android UI with drag and drop. + <li>Build rich Android UI with drag and drop. <li>Visualize your UI on tablets, phones, and other devices. Switch themes, locales, even platform versions instantly, without building.</li> <li>Visual refactoring lets you extracts layout for inclusion, convert layouts, extract styles.</li> <li>Editor support for working with custom UI components.</li> @@ -71,9 +71,9 @@ screen to find Developer options.</p> <h3>Develop on Hardware Devices</h3> <ul> - <li>Use any commercial Android hardware device or multiple devices.</li> - <li>Deploy your app to connected devices directy from the IDE.</li> - <li>Live, on-device debugging, testing, and profiling.</li> + <li>Use any commercial Android hardware device or multiple devices.</li> + <li>Deploy your app to connected devices directy from the IDE.</li> + <li>Live, on-device debugging, testing, and profiling.</li> </ul> </div> @@ -100,7 +100,7 @@ screen to find Developer options.</p> </ul> <h3>Testing</h3> - + <ul> <li>Fully instrumentated, scriptable test environment.</li> <li>Integrated reports using standard test UI.</li> @@ -108,7 +108,7 @@ screen to find Developer options.</p> </ul> <h3>Native Development</h3> - + <ul> <li>Support for compiling and packaging existing code written in C or C++.</li> <li>Support for packaging multiple architectures in a single binary, for broad compatibility.</li> diff --git a/docs/html/training/graphics/opengl/environment.jd b/docs/html/training/graphics/opengl/environment.jd index 77faabf..6b00c76 100644 --- a/docs/html/training/graphics/opengl/environment.jd +++ b/docs/html/training/graphics/opengl/environment.jd @@ -68,8 +68,7 @@ declaration to your manifest:</p> </pre> <p>If your application uses texture compression, you must also declare which compression formats -you support so that devices that do not support theses formats do not try to run your -application:</p> +your app supports, so that it is only installed on compatible devices.</p> <pre> <supports-gl-texture android:name="GL_OES_compressed_ETC1_RGB8_texture" /> diff --git a/docs/html/training/wearables/data-layer/index.jd b/docs/html/training/wearables/data-layer/index.jd index bac7d3e..39d6561 100644 --- a/docs/html/training/wearables/data-layer/index.jd +++ b/docs/html/training/wearables/data-layer/index.jd @@ -28,7 +28,7 @@ the data layer:</p> <dt><b>Messages</b></dt> <dd>The <a href="{@docRoot}reference/com/google/android/gms/wearable/MessageApi.html"><code>MessageApi</code></a> class - can send messages designed for "fire-and-forget" commands, such as controlling a handheld's + can send messages and is good for remote procedure calls (RPC), such as controlling a handheld's media player from the wearable or starting an intent on the wearable from the handheld. The system always delivers the message when the handheld and wearable are connected and delivers an error when the devices are disconnected. Messages are great for one-way requests or for a diff --git a/docs/html/training/wearables/data-layer/messages.jd b/docs/html/training/wearables/data-layer/messages.jd index 15e552d..71f1bb1 100644 --- a/docs/html/training/wearables/data-layer/messages.jd +++ b/docs/html/training/wearables/data-layer/messages.jd @@ -23,8 +23,8 @@ and attach the following items to the message:</p> </ul> <p> Unlike data items, there is no syncing between the handheld and wearable apps. -Messages are a one-way communication mechanism that's meant for -"fire-and-forget" tasks, such as sending a message to the wearable +Messages are a one-way communication mechanism that's good for remote procedure calls (RPC), +such as sending a message to the wearable to start an activity. You can also use messages in request/response model where one side of the connection sends a message, does some work, sends back a response message.</p> |