summaryrefslogtreecommitdiffstats
path: root/docs/html/distribute/essentials
diff options
context:
space:
mode:
authorDirk Dougherty <ddougherty@google.com>2014-05-14 21:21:15 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-05-14 21:21:15 +0000
commit0540bc373c84b4ab590708cc9f79c95eeac5114c (patch)
tree5943abf0f2ef3e6c9b7301ae7ec7d33ed5e4d485 /docs/html/distribute/essentials
parent80816bfcaf487535a45a7e6f271341eaede653b1 (diff)
parenta4e6c7d1d4e6c8ca2b50f91ae8881fb4838d7955 (diff)
downloadframeworks_base-0540bc373c84b4ab590708cc9f79c95eeac5114c.zip
frameworks_base-0540bc373c84b4ab590708cc9f79c95eeac5114c.tar.gz
frameworks_base-0540bc373c84b4ab590708cc9f79c95eeac5114c.tar.bz2
am a4e6c7d1: am 3506ac87: Doc change: Updated content for distribute.
* commit 'a4e6c7d1d4e6c8ca2b50f91ae8881fb4838d7955': Doc change: Updated content for distribute.
Diffstat (limited to 'docs/html/distribute/essentials')
-rw-r--r--docs/html/distribute/essentials/best-practices/apps.jd260
-rw-r--r--docs/html/distribute/essentials/best-practices/games.jd259
-rw-r--r--docs/html/distribute/essentials/essentials_toc.cs44
-rw-r--r--docs/html/distribute/essentials/gpfe-guidelines.jd513
-rw-r--r--docs/html/distribute/essentials/index.jd34
-rw-r--r--docs/html/distribute/essentials/optimizing-your-app.jd517
-rw-r--r--docs/html/distribute/essentials/quality/core.jd1170
-rw-r--r--docs/html/distribute/essentials/quality/tablets.jd867
8 files changed, 3664 insertions, 0 deletions
diff --git a/docs/html/distribute/essentials/best-practices/apps.jd b/docs/html/distribute/essentials/best-practices/apps.jd
new file mode 100644
index 0000000..055a349
--- /dev/null
+++ b/docs/html/distribute/essentials/best-practices/apps.jd
@@ -0,0 +1,260 @@
+page.title=App Developer Best Practices
+page.image=/distribute/images/gp-app-practices.png
+page.metaDescription=Essential tips for launching successful apps in Google Play.
+@jd:body
+
+<div id="qv-wrapper"><div id="qv">
+<h2>Best Practices</h2>
+<ol>
+<li><a href="#essentials">Get the Essentials Right</a></li>
+<li><a href="#users">Get Users</a></li>
+<li><a href="#engage">Engage and Retain</a></li>
+<li><a href="#beyond">Beyond the Basics</a></li>
+<li><a href="#related-resources">Related Resources</a></li>
+</ol>
+</div></div>
+
+<p>The following best practices have enabled developers worldwide to build great, successful apps for Google Play.</p>
+
+<div class="headerLine">
+<h1 id="essentials">Get the Essentials Right</h1><hr>
+</div>
+
+<h3>1. Make it Android</h3>
+
+<ul>
+ <li>
+ <p>
+ Build your apps to make best use of the unique Android features, such as
+ <a href="{@docRoot}distribute/engage/widgets.html">widgets</a>, <a href=
+ "{@docRoot}distribute/engage/notifications.html">rich notifications</a>,
+ <a href=
+ "http://android-developers.blogspot.com/2012/02/share-with-intents.html">sharing
+ through Intents</a>, and more.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Add the power of Google features your users already love, such as
+ <a href="https://developers.google.com/maps/documentation/android/">Google
+ Maps</a>, <a href="https://developers.google.com/drive/">Google
+ Drive</a>, and more, all with <a href=
+ "https://developers.google.com/+/mobile/android/sign-in">single sign
+ on</a>.
+ </p>
+ </li>
+</ul>
+
+<h3>
+ 2. Make it quality
+</h3>
+
+<ul>
+ <li>
+ <p>
+ Make sure your apps follow the <a href=
+ "{@docRoot}distribute/essentials/quality/core.html">Core App Quality</a>
+ guidelines.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Create apps that are available on all form factors and screen sizes, by
+ following the <a href=
+ "{@docRoot}distribute/essentials/quality/tablets.html">Tablet App
+ Quality</a> guidelines.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Test and <a href=
+ "{@docRoot}distribute/essentials/optimizing-your-app.html">optimize your
+ quality</a> at every step and make use of the Google Play <a href=
+ "{@docRoot}distribute/googleplay/developer-console.html#alpha-beta">beta-testing</a>
+ and <a href=
+ "{@docRoot}distribute/googleplay/developer-console.html#staged-rollouts">staged
+ rollouts</a> features to test with users before launch.
+ </p>
+ </li>
+</ul>
+
+<div class="headerLine">
+ <h1 id="users">
+ Get Users
+ </h1>
+
+ <hr>
+</div>
+
+<h3>
+ 1. Build buzz
+</h3>
+
+<ul>
+ <li>
+ <p>
+ Create a great <a href="{@docRoot}distribute/users/your-listing.html">app
+ listing page</a> to showcase your apps and grab users’ attention. Don’t
+ forget to include a <a href=
+ "{@docRoot}distribute/engage/video.html">YouTube video</a>.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ <a href="{@docRoot}distribute/tools/launch-checklist.html">Launch</a> on
+ multiple platforms simultaneously to maximize your reach.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Promote your apps with the official <a href=
+ "{@docRoot}distribute/tools/promote/badges.html">Google Play badge</a>
+ and <a href="{@docRoot}distribute/tools/promote/linking.html">link to
+ your products</a> on Google Play.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Build a community with social media, <a href=
+ "http://groups.google.com/">forums</a>, and <a href=
+ "http://plus.google.com">communities</a> to get and keep users talking.
+ </p>
+ </li>
+</ul>
+
+<h3>
+ 2. Optimize for great ratings
+</h3>
+
+<ul>
+ <li>
+ <p>
+ Get to <a href="{@docRoot}distribute/users/know-your-user.html">know your
+ users</a>, listen to and <a href=
+ "{@docRoot}distribute/engage/app-updates.html">update your apps</a> from
+ their feedback.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Focus on your strength markets first, get these right before expanding.
+ </p>
+ </li>
+</ul>
+
+<div class="headerLine">
+ <h1 id="engage">
+ Engage and Retain
+ </h1>
+
+ <hr>
+</div>
+
+<h3>
+ 1. Keep users coming back
+</h3>
+
+<ul>
+ <li>
+ <p>
+ Use <a href="{@docRoot}google/play/billing/index.html">Google Play In-app
+ Billing</a> to offer subscriptions to extended features.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Hold competitions and offer promotions, then announce them through
+ <a href="{@docRoot}design/patterns/notifications.html">notifications</a>.
+ </p>
+ </li>
+</ul>
+
+<h3>
+ 2. Earn users’ love
+</h3>
+
+<ul>
+ <li>
+ <p>
+ <a href=
+ "http://android-developers.blogspot.com/2013/05/all-google-play-developers-can-now.html">
+ Respond to reviews</a> and get valuable feedback from the community
+ you've built.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ <a href=
+ "http://android-developers.blogspot.com/2013/10/improved-app-insight-by-linking-google.html">
+ Measure</a> your campaigns to see what is driving users to install your
+ apps.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ <a href=
+ "{@docRoot}distribute/essentials/optimizing-your-app.html#measuring-analyzing-responding">
+ Analyze in-app use</a> to steer content updates and prolong the life of
+ your apps.
+ </p>
+ </li>
+</ul>
+
+<div class="headerLine">
+ <h1 id="beyond">
+ Beyond the Basics
+ </h1>
+
+ <hr>
+</div>
+
+<ul>
+ <li>
+ <p>
+ After you’ve launched in your market of strength, <a href=
+ "{@docRoot}distribute/users/expand-to-new-markets.html">expand into other
+ markets</a> strategically and <a href=
+ "{@docRoot}distribute/tools/localization-checklist.html">localize</a>
+ your apps as you go.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Keep users engaged, and stay ahead of the competition, by continually
+ <a href=
+ "{@docRoot}distribute/essentials/optimizing-your-app.html">optimizing
+ your apps</a> to offer new and better features, or retire those that
+ users aren’t using.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Build educational apps: learn <a href=
+ "{@docRoot}distribute/googleplay/edu/start.html">how to make apps for
+ Google Play for Education</a>.
+ </p>
+ </li>
+</ul>
+
+<div class="headerLine">
+<h1 id="related-resources">Related Resources</h1><hr>
+</div>
+
+<div class="resource-widget resource-flow-layout col-13"
+ data-query="collection:distribute/toolsreference/bestpractices/apps"
+ data-sortOrder="-timestamp"
+ data-cardSizes="9x3,9x3"
+ data-maxResults="6"></div>
+
diff --git a/docs/html/distribute/essentials/best-practices/games.jd b/docs/html/distribute/essentials/best-practices/games.jd
new file mode 100644
index 0000000..ac1df44
--- /dev/null
+++ b/docs/html/distribute/essentials/best-practices/games.jd
@@ -0,0 +1,259 @@
+page.title=Game Developer Best Practices
+page.image=/distribute/images/gp-games-practices.png
+page.metaDescription=Essential tips for launching successful games in Google Play.
+
+@jd:body
+
+<div id="qv-wrapper"><div id="qv">
+<h2>Best Practices</h2>
+<ol>
+<li><a href="#users">Get Users</a></li>
+<li><a href="#engage">Engage and Retain</a></li>
+<li><a href="#beyond">Beyond the Basics</a></li>
+<li><a href="#related-resources">Related Resources</a></li>
+</ol>
+</div></div>
+
+<p>
+ The following best practices have enabled developers worldwide to build
+ great, successful games for Google Play.
+</p>
+
+<div class="headerLine">
+ <h1 id="users">
+ Get Users
+ </h1>
+
+ <hr>
+</div>
+
+<h3>
+ 1. Optimize for great ratings
+</h3>
+
+<ul>
+ <li>
+ <p>
+ <a href=
+ "{@docRoot}distribute/googleplay/developer-console.html#alpha-beta">Beta
+ test</a> to ensure your games are ready and poised for great ratings.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Optimize graphics, frame rates, and responsiveness with the <a href=
+ "http://android-developers.blogspot.com/2013/09/using-hardware-scaler-for-performance.html">
+ Hardware Scaler</a> and <a href=
+ "{@docRoot}training/graphics/opengl/index.html">OpenGL ES</a>.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Be sure your APK is small, then provide game content through over-the-air
+ downloads.
+ </p>
+ </li>
+</ul>
+
+<h3>
+ 2. Build buzz
+</h3>
+
+<ul>
+ <li>
+ <p>
+ Build a community with social media, <a href=
+ "{@docRoot}distribute/users/build-community.html">communities</a> to get
+ and keep users talking.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Promote your games with official <a href=
+ "{@docRoot}distribute/tools/promote/badges.html">Google Play badges</a>
+ and <a href="{@docRoot}distribute/tools/promote/linking.html">links to
+ your products</a> on Google Play.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ If you ship on multiple platforms, doing so at the same time can maximize
+ your marketing impact.
+ </p>
+ </li>
+</ul>
+
+<h3>
+ 3. Get Visibility
+</h3>
+
+<ul>
+ <li>
+ <p>
+ First impressions count: <a href=
+ "{@docRoot}distribute/users/your-listing.html">highlight</a> the game's
+ best features in screenshots, videos, and description.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Integrate Google Play Game Services, so your game is displayed in the
+ <a href=
+ "https://play.google.com/store/apps/details?id=com.google.android.play.games">
+ Google Play Games App</a>.
+ </p>
+ </li>
+</ul>
+
+<div class="headerLine">
+ <h1 id="engage">
+ Engage and Retain
+ </h1>
+
+ <hr>
+</div>
+
+<h3>
+ 1. Keep users coming back
+</h3>
+
+<ul>
+ <li>
+ <p>
+ <a href=
+ "https://developers.google.com/games/services/common/concepts/achievements">
+ Achievements</a>, <a href=
+ "https://developers.google.com/games/services/common/concepts/leaderboards">
+ leaderboards</a>, <a href=
+ "https://developers.google.com/games/services/common/concepts/realtimeMultiplayer">
+ multiplayer</a>, and <a href=
+ "https://developers.google.com/games/services/common/concepts/cloudsave">cloud
+ save</a> help engage users and bring them back.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Hold tournaments and offer promotions, then announce them through
+ <a href="{@docRoot}design/patterns/notifications.html">notifications</a>.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Sign in users early, then automatically. Before their first sign-in, save
+ progress locally.
+ </p>
+ </li>
+</ul>
+
+<h3>
+ 2. Give users a reason to invest their money
+</h3>
+
+<ul>
+ <li>
+ <p>
+ A majority of the top grossing games use in-app purchases. Use them to
+ unlock content and allow players to enhance their game play.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ <a href="{@docRoot}google/play/billing/index.html">Google Play In-app
+ Billing</a> makes purchasing easy with several forms of payment.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Provide content updates regularly to give users limited edition items to
+ win or purchase.
+ </p>
+ </li>
+</ul>
+
+<h3>
+ 3. Earn players’ love
+</h3>
+
+<ul>
+ <li>
+ <p>
+ <a href=
+ "http://android-developers.blogspot.com/2013/10/improved-app-insight-by-linking-google.html">
+ Measure</a> your campaigns to see what’s driving quality users to install
+ your games.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ <a href=
+ "{@docRoot}distribute/essentials/optimizing-your-app.html#measuring-analyzing-responding">
+ Analyze in-game use</a> to steer content updates and prolong the life of your
+ games.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ <a href=
+ "http://android-developers.blogspot.com/2013/05/all-google-play-developers-can-now.html">
+ Respond to reviews</a> and get valuable feedback from the community
+ you’ve built.
+ </p>
+ </li>
+</ul>
+
+<div class="headerLine">
+ <h1 id="beyond">
+ Beyond the Basics
+ </h1>
+
+ <hr>
+</div>
+
+<ul>
+ <li>
+ <p>
+ After you've launched in your market of strength, <a href=
+ "{@docRoot}distribute/users/expand-to-new-markets.html">expand into other
+ markets</a> strategically and <a href=
+ "{@docRoot}distribute/tools/localization-checklist.html">localize</a>
+ your apps as you go.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Provide content <a href=
+ "{@docRoot}distribute/engage/app-updates.html">updates on a regular
+ basis</a> to keep users engaged.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Building educational games? See the <a href=
+ "{@docRoot}distribute/essentials/gpfe-guidelines.html">Education
+ Guidelines</a>.
+ </p>
+ </li>
+</ul>
+
+<div class="headerLine">
+<h1 id="related-resources">Related Resources</h1><hr>
+</div>
+
+<div class="resource-widget resource-flow-layout col-13"
+ data-query="collection:distribute/toolsreference/bestpractices/games"
+ data-sortOrder="-timestamp"
+ data-cardSizes="9x3,9x3"
+ data-maxResults="6"></div>
diff --git a/docs/html/distribute/essentials/essentials_toc.cs b/docs/html/distribute/essentials/essentials_toc.cs
new file mode 100644
index 0000000..7084fdd
--- /dev/null
+++ b/docs/html/distribute/essentials/essentials_toc.cs
@@ -0,0 +1,44 @@
+<ul id="nav">
+ <li class="nav-section">
+ <div class="nav-section empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/essentials/quality/core.html">
+ <span class="en">Core App Quality</span></a>
+ </div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/essentials/quality/tablets.html">
+ <span class="en">Tablet App Quality</span>
+ </a>
+ </div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/essentials/gpfe-guidelines.html">
+ <span class="en">Education Guidelines</span>
+ </a>
+ </div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/essentials/optimizing-your-app.html">
+ <span class="en">Optimize Your App</span>
+ </a>
+ </div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/essentials/best-practices/apps.html">
+ <span class="en">App Best Practices</span>
+ </a>
+ </div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/essentials/best-practices/games.html">
+ <span class="en">Game Best Practices</span>
+ </a>
+ </div>
+ </li>
+
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
diff --git a/docs/html/distribute/essentials/gpfe-guidelines.jd b/docs/html/distribute/essentials/gpfe-guidelines.jd
new file mode 100644
index 0000000..8b47671
--- /dev/null
+++ b/docs/html/distribute/essentials/gpfe-guidelines.jd
@@ -0,0 +1,513 @@
+page.title=Education Guidelines
+page.metaDescription=These guidelines and requirements help you develop great apps for students, which offer compelling content and an intuitive user experience on Android tablets.
+page.image=/distribute/images/edu-guidelines.jpg
+Xnonavpage=true
+
+@jd:body
+
+
+<div id="qv-wrapper"><div id="qv">
+<h2>Guidelines</h2>
+<ol>
+<li><a href="#basic-reqts">Basic Requirements</a></li>
+<li><a href="#monetizing-ads">Monetizing and Ads</a></li>
+<li><a href="#e-value">Educational Value</a></li>
+<li><a href="#quality">App Quality</a></li>
+<li><a href="#related-resources">Related Resources</a></li>
+</ol>
+
+<h2>
+ Testing
+</h2>
+
+<ol>
+ <li>
+ <a href="#test-environment">Setting Up a Test Environment</a>
+ </li>
+</ol>
+
+</div></div>
+
+<div style="margin:0 0 1em 0;">
+ <img src="{@docRoot}distribute/images/edu-guidelines.jpg" style=
+ "width:274px;">
+</div>
+
+<p>
+ These guidelines and requirements help you develop great apps for students,
+ which offer compelling content and an intuitive user experience on Android
+ tablets.
+</p>
+
+<p>
+ You’ll also need to ensure that your apps comply with the terms of the
+ <a href=
+ "https://play.google.com/about/developer-distribution-agreement-addendum.html">
+ Google Play for Education Addendum</a>, <a href=
+ "http://play.google.com/about/developer-content-policy.html">Google Play
+ Developer Program Policies</a>, and <a href=
+ "http://play.google.com/about/developer-distribution-agreement.html">Developer
+ Distribution Agreement</a>.
+</p>
+
+<div class="headerLine clearfloat">
+ <h1 id="basic-reqts">
+ Basic Requirements
+ </h1>
+
+ <hr>
+</div>
+
+<p>
+ To participate, your apps must be designed for the K-12 market. The basic
+ requirements that your apps must meet are:
+</p>
+
+<ul>
+ <li>
+ <p>
+ Apps and the ads they contain must not collect personally identifiable
+ information, other than user credentials or data required to operate and
+ improve the app.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Apps must not use student data for purposes unrelated to its educational
+ function.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Apps must have a content rating of "Everyone" or "Low Maturity" (apps
+ with a "Medium Maturity" rating are allowed, if they have that rating
+ solely because they allow communication between students).
+ </p>
+ </li>
+
+ <li>
+ <p>
+ App content, including ads displayed by the app, must be consistent with
+ the app's maturity rating. The app must not display any "offensive"
+ content, as described in the <a href=
+ "http://play.google.com/about/developer-content-policy.html">Google Play
+ Developer Program Policies</a> and <a href=
+ "https://support.google.com/googleplay/android-developer/answer/188189">content-rating
+ guidelines</a>.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Apps must comply with the Children’s Online Privacy Protection Act and
+ all other applicable laws and regulations.
+ </p>
+ </li>
+</ul>
+
+<div class="headerLine">
+ <h1 id="monetizing-ads">
+ Monetizing and Ads
+ </h1>
+
+ <hr>
+</div>
+
+<div class="figure">
+ <img src="{@docRoot}images/gp-edu-monetize.png">
+</div>
+
+<p>
+ In-app purchase is currently not supported with Google Play for Education, so
+ a student device will block any transactions. To avoid confusion, be sure to
+ remove any in-app purchase buttons and related UI elements from your apps.
+ We’re investigating additional purchase mechanisms to enable more flexible
+ pricing models for developers and schools.
+</p>
+
+<p>
+ If your apps are priced In Google Play for Education, you must allow Google
+ Play to offer teachers limited free trials before purchase (you provide this
+ through business terms only, no development work is needed.)
+</p>
+
+<p>
+ You can only choose not to remove in-app purchasing from your apps where all
+ content and services are sold through Google Play for Education using In-app
+ Billing. If you choose not to remove In-app Billing features, ensure that:
+</p>
+
+<ul>
+ <li>
+ <p>
+ Users can access your apps’ core functionality for a classroom setting
+ without an in-app purchase.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ In-app purchases are clearly identifiable in your UI.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ You declare the use of in-app purchases at <a href=
+ "{@docRoot}distribute/googleplay/edu/start.html#publish">opt-in</a>.
+ </p>
+ </li>
+</ul>
+
+<p>
+ For each app that you publish, you can set a single price that applies to
+ both Google Play and Google Play for Education. You can’t set a different
+ price for a given app (based on a single package name) in Google Play for
+ Education.
+</p>
+
+<p>
+ If your apps display ads, you should disable the display of ads if possible,
+ or ensure that:
+</p>
+
+<ul>
+ <li>Ads are not distracting for students or teachers (this includes
+ Flash-based ads, video ads, and ads that flash or move)
+ </li>
+
+ <li>Interstitial ads are not served in the app
+ </li>
+
+ <li>Ad walls do not appear in the app UI
+ </li>
+
+ <li>Ads do not occupy a significant portion of the screen
+ </li>
+
+ <li>Ads content does not exceed the maturity rating of the app.
+ </li>
+
+ <li>
+ <p>
+ You declare the use of ads at <a href=
+ "{@docRoot}distribute/googleplay/edu/start.html#publish">opt-in</a>.
+ </p>
+ </li>
+</ul>
+
+<div class="headerLine">
+ <h1 id="e-value">
+ Educational Value
+ </h1>
+
+ <hr>
+</div>
+
+<div class="figure">
+ <img src="{@docRoot}images/gp-e-value.png" class="border-img">
+</div>
+
+<p>
+ Apps submitted to Google Play for Education will be evaluated by a
+ third-party educator network, which will review them based on alignment with
+ <a href="http://www.corestandards.org/">Common Core Standards</a> and other
+ educational considerations. This will help make your content more
+ discoverable for teachers and administrators as they browse by grade level,
+ subject, core curriculum, and other parameters.
+</p>
+
+<p>
+ Apps with highest educational value will have these characteristics:
+</p>
+
+<ul>
+ <li>
+ <p>
+ Designed for use in K-12 classrooms.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Aligned with a common core standard or support common-core learning.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Simple, easy to use, and intuitive for the grade levels the apps are
+ targeting. Apps are relatively easy to navigate without teacher guidance.
+ Not distracting or overwhelming to students.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Enjoyable and interactive. Apps are engaging to students and lets them
+ control their experience.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Versatile. Apps have features that make them useful for more than one
+ classroom function or lesson throughout the school year.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Supports the "4Cs":
+ </p>
+
+ <ul>
+ <li>
+ <p>
+ <em>Creativity</em> &mdash; Allows students to create in order to
+ express understanding of the learning objectives, and try new
+ approaches, innovation, and invention to get things done.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ <em>Critical thinking</em> &mdash; Allows students to look at
+ problems in a new way, linking learning across subjects and
+ disciplines.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ <em>Collaboration</em> &mdash; Allows students and (if appropriate)
+ educators to work together to reach a goal.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ <em>Communication</em> &mdash; Allows students to comprehend,
+ critique and share thoughts, questions, ideas, and solutions.
+ </p>
+ </li>
+ </ul>
+ </li>
+</ul>
+
+<p>
+ As you design and develop your apps, make sure they offer high educational
+ value by addressing as many of these characteristics as possible.
+</p>
+
+<div class="headerLine">
+ <h1 id="quality">
+ App Quality
+ </h1>
+
+ <hr>
+</div>
+
+<div class="figure">
+ <img src="{@docRoot}images/gp-edu-quality.png">
+</div>
+
+<p>
+ Your apps should be designed to perform well and look great on Android
+ tablets, and they should offer the best user experience possible.
+</p>
+
+<p>
+ High quality apps are engaging, intuitive, and offer compelling content.
+ Google Play for Education will highlight high-quality apps for easy discovery
+ in the store. Here are some recommendations for making your app easy for
+ students and teachers to enjoy:
+</p>
+
+<ul>
+ <li>
+ <p>
+ Meet the Core Quality Guidelines:
+ </p>
+
+ <ul>
+ <li>
+ <p>
+ Follow <a href="{@docRoot}design/index.html">Android Design
+ Guidelines</a>. Pay special attention to the sections on <a href=
+ "{@docRoot}design/patterns/actionbar.html">Action Bar</a>, <a href=
+ "{@docRoot}design/patterns/navigation.html">Navigation</a>, and
+ <a href="{@docRoot}design/patterns/pure-android.html">Pure
+ Android</a>.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Test your apps against the <a href=
+ "{@docRoot}distribute/essentials/quality/core.html">Core Quality
+ Guidelines</a>.
+ </p>
+ </li>
+ </ul>
+ </li>
+
+ <li>
+ <p>
+ Meet the Tablet App Quality guidelines:
+ </p>
+
+ <ul>
+ <li>
+ <p>
+ Follow our best practices for tablet app development.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Review the <a href=
+ "{@docRoot}distribute/essentials/quality/tablets.html">Tablet App
+ Quality</a> guidelines and <a href=
+ "http://android-developers.blogspot.com/2012/11/designing-for-tablets-were-here-to-help.html">
+ blog post on designing for tablets.</a>
+ </p>
+
+ <ul>
+ <li>Check your Optimization Tips in the <a href=
+ "https://play.google.com/apps/publish/">Developer Console</a> (if
+ you've already uploaded your apps.)
+ </li>
+ </ul>
+ </li>
+
+ <li>
+ <p>
+ Strive for simplicity and highest usability for students:
+ </p>
+
+ <ul>
+ <li>
+ <p>
+ Design your app so that teachers and students can use all the
+ capabilities of your app without having to sign-in to multiple
+ accounts and remember multiple passwords.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ Every student or teacher using a Google Play for Education tablet
+ will already be signed in with a Google account on the device.
+ You can take advantage of that to provide a simple, seamless
+ sign-in experience in your app. A recommended approach is to use
+ <a href="{@docRoot}google/play-services/auth.html">Google OAuth 2
+ authorization</a> through Google Play Services.
+ </p>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+</ul>
+
+<div class="headerLine">
+ <h1 id="test-environment">
+ Test Environment
+ </h1>
+
+ <hr>
+</div>
+
+<p>
+ To test your app and assess it against the guidelines in this document, it's
+ recommended that you <a href=
+ "{@docRoot}distribute/essentials/quality/tablets.html#test-environment">set
+ up a test environment</a> that replicates the actual environment in which
+ students and teachers will run your app.
+</p>
+
+<h3>
+ Test conditions
+</h3>
+
+<p>
+ Make sure to test your apps under conditions that simulate those of schools.
+ For example, Google Play for Education lets administrators <a href=
+ "https://support.google.com/a/answer/182442?hl=en">control or disable certain
+ capabilities</a> for students, so it's good to test your app with those
+ capabilities disabled. Below are some conditions to test your apps for, to
+ ensure best results in the Google Play for Education environment:
+</p>
+
+<ul>
+ <li>
+ <p>
+ <em>Android version</em> &mdash; Test the apps on devices running Android
+ 4.2. Google Play for Education devices will be running Android 4.2 or
+ higher (API level 17+).
+ </p>
+ </li>
+
+ <li>
+ <p>
+ <em>Proxy server</em> &mdash; Test the apps in a network environment that
+ uses proxies. Many schools use proxies.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ <em>No location services</em> &mdash; Test the apps to make sure they
+ work properly with location services disabled. Many schools will disable
+ location services for student devices.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ <em>No In-app Billing</em> &mdash; Test the apps to make sure they work
+ properly without access to In-app Billing. In-app purchases are blocked
+ on Google Play for Education devices.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ <em>No Bluetooth</em> &mdash; Test the apps to make sure they work
+ properly when Bluetooth is disabled. Many schools will disable Bluetooth
+ on student devices.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ <em>No access to network</em> &mdash; Test the app to make sure it works
+ properly when the device cannot connect to the internet.
+ </p>
+ </li>
+</ul>
+
+<div class="headerLine">
+<h1>Related Resources</h1><hr>
+</div>
+
+<div class="dynamic-grid">
+<h3>FOR DEVELOPERS</h3>
+
+<div class="resource-widget resource-flow-layout col-13"
+ data-query="collection:distribute/essentials/eduessentials/developers"
+ data-sortOrder="-timestamp"
+ data-cardSizes="6x3,6x3,6x3"
+ data-maxResults="6"></div>
+
+<h3>FOR TEACHERS AND EDUCATORS</h3>
+
+<div class="resource-widget resource-flow-layout col-13"
+ data-query="collection:distribute/essentials/eduessentials/educators"
+ data-sortOrder="-timestamp"
+ data-cardSizes="6x3,6x3,6x3"
+ data-maxResults="3"></div>
+</div> \ No newline at end of file
diff --git a/docs/html/distribute/essentials/index.jd b/docs/html/distribute/essentials/index.jd
new file mode 100644
index 0000000..ca5442a
--- /dev/null
+++ b/docs/html/distribute/essentials/index.jd
@@ -0,0 +1,34 @@
+page.title=Essentials for a Successful App
+meta.tags="landing, quality"
+page.tags="guidelines", "tablet", "quality"
+section.landing=true
+nonavpage=true
+
+@jd:body
+
+<p>
+ A focus on quality should be part of your entire app delivery process: from
+ initial concept through app and UI design, coding and testing and onto a
+ process of monitoring feedback and making improvement after launch.
+</p>
+
+<div class="dynamic-grid">
+<div class="resource-widget resource-flow-layout landing col-16"
+ data-query="collection:distribute/essentials"
+ data-cardSizes="6x6"
+ data-maxResults="6">
+</div>
+
+<h3>Related resources</h3>
+
+<div class="resource-widget resource-flow-layout col-16"
+ data-query="type:blog+tag:quality"
+ data-cardSizes="6x3"
+ data-maxResults="3">
+</div>
+<div class="resource-widget resource-flow-layout col-16"
+ data-query="type:youtube+tag:appquality"
+ data-cardSizes="6x3"
+ data-maxResults="3">
+</div>
+</div> \ No newline at end of file
diff --git a/docs/html/distribute/essentials/optimizing-your-app.jd b/docs/html/distribute/essentials/optimizing-your-app.jd
new file mode 100644
index 0000000..3fe91b28
--- /dev/null
+++ b/docs/html/distribute/essentials/optimizing-your-app.jd
@@ -0,0 +1,517 @@
+page.title=Optimize Your App
+page.metaDescription=A look at how to get the most visibility and the highest ratings possible for your app or game. Optimizing the quality of your apps is a key strategy.
+page.image=/distribute/images/gp-optimize-card.jpg
+
+@jd:body
+
+<div id="qv-wrapper">
+ <div id="qv">
+ <h2>Strategies</h2>
+ <ol>
+ <li><a href="#listen-to-your-users">Listen to Your Users</a></li>
+ <li><a href="#measuring-analyzing-responding">Measuring, Analyzing, and Responding to User Behavior</a></li>
+ <li><a href="#improve-stability">Improve Stability and Eliminate Bugs</a></li>
+ <li><a href="#improve-ui">Improve UI Responsiveness</a></li>
+ <li><a href="#improve-usability">Improve Usability</a></li>
+ <li><a href="#professional-appearance">Professional Appearance and Aesthetics</a></li>
+ <li><a href="#deliver-features">Deliver the Right Set of Features</a></li>
+ <li><a href="#integrate">Integrate with the System and Third-Party Apps</a></li>
+ <li><a href="#related-resources">Related Resources</a></li>
+ </ol>
+ </div>
+</div>
+
+<div class="top-right-float">
+ <img src="{@docRoot}images/gp-optimize.png" class="quality-top-image" style=
+ "width:239px;padding-left:1.5em;">
+</div>
+
+<p>
+ With thousands of new apps being published in Google Play every week, it's
+ important to look for ways to get the most visibility and the highest ratings
+ possible. Optimizing the quality of your apps is a key strategy.
+</p>
+
+<p>
+ A higher quality app can translate to higher user ratings, generally better
+ rankings, more downloads, and higher retention (longer install periods).
+ High-quality apps are much more likely to get positive publicity, such as
+ being featured in Google Play or generating social media buzz.
+</p>
+
+<p>
+ The quality of your apps is something you should consider addressing both
+ before and after launch. Gaining users after the launch of a poor quality app
+ can be hard and recovering costly. On the other hand, maintaining the ranking
+ of high-quality apps is made easier if there are continual improvements, a
+ practice that also fuels the impression-install-ranking cycle.
+</p>
+
+<p>
+ On this page you can find advice on a number of ways in which you can drive
+ improvements to your apps’ quality.
+</p>
+
+<div class="headerLine">
+ <h1 id="listen-to-your-users">
+ Listen to Your Users
+ </h1>
+
+ <hr>
+</div>
+
+<div class="figure">
+ <img src="{@docRoot}images/gp-optimizing-chat-bubbles.png">
+</div>
+
+<p>
+ Listening and hearing your users can be one of your best tools for success.
+ Start listening to your users before launching your apps and continue to
+ listen after launch.
+</p>
+
+<h3>
+ <strong>Listening before you launch</strong>
+</h3>
+
+<p>
+ You can listen to your users during the development of your apps. This
+ process can start with focus groups to review app features, continue into
+ user experience workshops, and onto alpha and beta releases. Listening at
+ these stages has two main benefits: <strong>you’ll build apps with features
+ users want</strong> and <strong>any issues they identify will be cheaper and
+ quicker to fix</strong> than they would be once the app is launched fully.
+</p>
+
+<p>
+ If the practicalities of focus groups and user workshops seem excessive in
+ relation to the development of a particular app, drawing on the feedback of
+ colleagues, friends, and family can be much more useful than getting no
+ feedback at all.
+</p>
+
+<p>
+ It's crucial to conduct user testing before releasing your apps to Google
+ Play. If you can only engage with colleagues, friends, and family you’re
+ already making a good start. For more extensive testing consider a public
+ alpha/beta test or creating your own trusted tester program. You can manage
+ app distribution yourself through email or your own website, or you can use
+ <a href=
+ "{@docRoot}distribute/googleplay/developer-console.html#alpha-beta">beta-testing</a>
+ and <a href=
+ "{@docRoot}distribute/googleplay/developer-console.html#staged-rollouts">staged
+ rollouts</a> in conjunction with <a href=
+ "http://www.google.com/+/business/">Google+</a> or <a href=
+ "https://groups.google.com/forum/#!overview">Google Groups</a> to distribute
+ software and gather feedback to a subset of users. <strong>Users on alpha or
+ beta versions cannot leave reviews or ratings</strong>, so there is
+ <strong>no risk to your rating</strong> on Google Play.
+</p>
+
+<p>
+ Unless you have to, don’t restrict the users you involve in these stages in
+ the information they can share through their social networks and blogs -
+ users engaged in these early stages (and listened too) are likely to be great
+ ambassadors for your apps and will help create great social media buzz.
+</p>
+
+<h3>
+ Listening after launch
+</h3>
+
+<p>
+ Once you have launched, the most obvious way to listen to users is by reading
+ and addressing comments on Google Play. Although the comments aren't always
+ productive or constructive, some will provide valuable insight on aspects of
+ your apps. It's important to remember that users have the opportunity to
+ change their ratings and comments as much as they like.
+</p>
+
+<p>
+ There are more interactive ways you can reach users, help them address their
+ concerns, and gather more detailed feedback: by setting up support and
+ discussion forums. There are some great support tools out there that can put
+ you in touch with your users directly, from forums such as <a href=
+ "http://groups.google.com/">Google Groups</a> to comprehensive customer
+ support products and tools like UserVoice. Once you get set up with such a
+ tool, make sure to fill in the support link in your Google Play product
+ details page — users do click through to these.
+</p>
+
+<p>
+ Also don’t forget to use the <a href=
+ "{@docRoot}distribute/googleplay/developer-console.html#alpha-beta">beta-testing</a>
+ and <a href=
+ "{@docRoot}distribute/googleplay/developer-console.html#staged-rollouts">staged
+ rollout</a> features of Google Play with app updates.
+</p>
+
+<div class="headerLine" id="measuring-analyzing-responding">
+ <h1>
+ Measuring, Analyzing, and Responding to User Behavior
+ </h1>
+
+ <hr>
+</div>
+
+<div class="figure">
+ <img src="{@docRoot}images/gp-optimize-analytics.png">
+</div>
+
+<p>
+ One of the best ways to spot issues to resolve is by measuring user behavior.
+ Optimizing your app becomes much easier when you analyze performance before
+ and after you launch. Drop off points, low ratings, and high percent of
+ uninstalls can be indicative that there’s a problem. Measuring and responding
+ to user-related metrics such as download sources, retention rates, and in-app
+ behavior regularly is critical to keeping and bringing back your hard earned
+ user base.
+</p>
+
+<p>
+ You can get data from tools in Google Play or third-parties to analyze user
+ behavior. You can identify details such as:
+</p>
+
+<ul>
+ <li>
+ <p>
+ Where installs are coming from.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ The types of users you are acquiring.
+ </p>
+ </li>
+
+ <li>
+ <p>
+ What is causing user churn and how to reduce it.
+ </p>
+ </li>
+</ul>
+
+<h3>
+ Statistics for analyzing installs and ratings
+</h3>
+
+<p>
+ Once you’ve published your app, Google Play makes it easy to see how it’s
+ doing. The <a href="https://play.google.com/apps/publish/">Developer
+ Console</a> gives you access to a variety of anonymized statistics and custom
+ charts that show you the app's installation performance and ratings.
+</p>
+
+<p>
+ You can view data and charts for active, daily, and total installs per unique
+ devices or users, as well as upgrades and uninstalls. You can also view the
+ app's daily average user rating and its cumulative user rating. To help you
+ analyze the data, you can view install and ratings statistics across a
+ variety of different dimensions such as Android version, device, country, app
+ version, and carrier.
+</p>
+
+<div>
+ <img class="border-img" src="{@docRoot}images/gp-dc-stats-mini.png">
+</div>
+
+<p>
+ You can see your app statistics on timeline charts, for all metrics and
+ dimensions. At a glance, the charts highlight your app’s installation and
+ ratings peaks and longer-term trends, which you can correlate to promotions,
+ app improvements, or other factors. You can even focus in on data inside a
+ dimension by highlighting specific data points (such as individual platform
+ versions or languages) on the timeline.
+</p>
+
+<p>
+ You can download all of your installation data as a CSV file for viewing in
+ the business program of your choice.
+</p>
+
+<h3>
+ Tracking and analyzing Marketing campaigns
+</h3>
+
+<p>
+ While you should consider monitoring user behavior data as a part of your
+ normal activities, it’s particularly important when you’re running any form
+ of marketing campaign, to make sure you’re getting the right users at the
+ lowest cost possible.
+</p>
+
+<p>
+ One way to track your marketing campaigns is to link <a href=
+ "http://android-developers.blogspot.com/2013/10/improved-app-insight-by-linking-google.html">
+ Google Analytics with your Google Play account</a> to analyze activity from
+ source to install.
+</p>
+
+<div style="margin-top:1em;">
+ <img src="{@docRoot}images/gp-optimizing-image-4.jpg" class="border-img">
+</div>
+
+<p>
+ You can also use any of the variety of tools on the market to help track your
+marketing success and improvement ROI if you wish. There are also third parties
+who can help automate, measure, and optimize your mobile marketing.
+</p>
+
+<div class="headerLine">
+ <h1 id="improve-stability">
+ Improve Stability and Eliminate Bugs
+ </h1>
+
+ <hr>
+</div>
+
+<p>
+ There are many tools and techniques for testing and profiling your app on
+ different devices and user scenarios.
+</p>
+
+<p>
+ One noteworthy and yet relatively underused tool for catching stability
+ issues such as crashes is the <a href=
+ "{@docRoot}tools/help/monkey.html">UI/Application Exerciser Monkey</a>
+ (Monkey). Monkey will send random UI events to your app's activities,
+ allowing you to trigger user flows that can uncover stability problems.
+</p>
+
+<p>
+ Also, with the Google error-reporting features built into most Android
+ devices, users have a way to report application crashes to you. The error
+ reports show up in aggregate in the Google Play Developer Console. Make sure
+ to read these reports often and act on them appropriately.
+</p>
+
+<p>
+ Last, keep an external bug and feature request tracker and let users know how
+ to find it. This will enable them to engage with the app at a closer level,
+ by following features and bugs that affect them. User frustration with app
+ problems can be effectively managed with diligent issue tracking and
+ communication. Several community support tools offer issue tracking features,
+ and if your project is open source, most popular repository hosting sites
+ offer this as well.
+</p>
+
+<div class="headerLine">
+ <h1 id="improve-ui">
+ Improve UI Responsiveness
+ </h1>
+
+ <hr>
+</div>
+
+<div class="figure">
+ <img src="{@docRoot}images/gp-optimize-speed.png">
+</div>
+
+<p>
+ One sure-fire way to lose your users is to give them a slow, unresponsive UI.
+ Research has shown that <a href=
+ "http://googleresearch.blogspot.com/2009/06/speed-matters.html">speed
+ matters</a>, for any interface, on mobile, web, or desktop. In fact, the
+ importance of speed is amplified on mobile devices since users often need
+ their information on the go and in a hurry.
+</p>
+
+<p>
+ You can improve your apps' UI responsiveness by moving long-running
+ operations off the main thread to worker threads. Android offers built-in
+ debugging facilities such as StrictMode for analyzing your app's performance
+ and activities on the main thread. See more recommendations in <a href=
+ "http://www.youtube.com/watch?v=c4znvD-7VDA">Writing Zippy Android Apps</a>,
+ a developer session from Google I/O 2010.
+</p>
+
+<p>
+ A great way to improve UI performance is to minimize the complexity of your
+ layouts. If you open up <a href=
+ "{@docRoot}tools/help/hierarchy-viewer.html">hierarchyviewer</a> and see that
+ your layouts are more than 5 levels deep, it may be time to simplify your
+ layout. Consider refactoring those deeply nested <a href=
+ "{@docRoot}reference/android/widget/LinearLayout.html">LinearLayouts</a> into
+ <a href="{@docRoot}guide/topics/ui/layout/relative.html">RelativeLayout</a>.
+ The impact of View objects is cumulative — each one costs about 1 to 2 KB of
+ memory, so large view hierarchies can be a recipe for disaster, causing
+ frequent VM garbage collection passes which block the main (UI) thread. You
+ can learn more from the Google I/O session <a href=
+ "http://www.youtube.com/watch?v=wDBM6wVEO70">World of ListView</a>.
+</p>
+
+<p>
+ Lastly, as pointed out in the blog post <a href=
+ "http://android-developers.blogspot.com/2010/10/traceview-war-story.html">Traceview
+ War Story</a>, tools like <a href=
+ "{@docRoot}tools/help/traceview.html">traceview and ddms</a> can be your best
+ friends in improving your app by profiling method calls and monitoring VM
+ memory allocations, respectively.
+</p>
+
+<div class="headerLine">
+ <h1 id="improve-usability">
+ Improve Usability
+ </h1>
+
+ <hr>
+</div>
+
+<div class="sidebox-wrapper" style="float:right;">
+ <div class="sidebox">
+ <p>
+ <strong>Tip:</strong> As you’re designing or evaluating your app's UI,
+ make sure to read and become familiar with the <a href=
+ "{@docRoot}design/index.html">Android Design</a> guidelines. Included are
+ many examples of UI patterns, styles, and building blocks, as well as
+ tools for the design process.
+ </p>
+ </div>
+</div>
+
+<p>
+ In usability and in app design too, you should listen carefully to your
+ users. Ask a handful of real Android device users (friends, family, etc.) to
+ try out your app and observe them as they interact with it. Look for cases
+ where they get confused, are unsure of how to proceed, or are surprised by
+ certain behaviors. Minimize these cases by rethinking some of the
+ interactions in your app. See the <a href=
+ "{@docRoot}design/patterns/index.html">Patterns section</a> for tips to
+ improve your design.
+</p>
+
+<p>
+ In the same vein, two problems that can plague some Android user interfaces
+ are small tap targets and excessively small font sizes. These are generally
+ easy to fix and can make a big impact on usability and user satisfaction. As
+ a general rule, optimize for ease of use and legibility, while minimizing, or
+ at least carefully balancing, information density.
+</p>
+
+<p>
+ Another way to incrementally improve usability, based on real-world data, is
+ to implement <a href=
+ "http://code.google.com/mobile/analytics/docs/">Analytics</a> throughout your
+ app to log the use of particular sections. Consider demoting infrequently
+ used sections to the overflow menu in the <a href=
+ "{@docRoot}design/patterns/actionbar.html">Action bar</a>, or removing them
+ altogether. For often-used sections and UI elements, make sure they're
+ immediately obvious and easily accessible in your app's UI so that users can
+ get to them quickly.
+</p>
+
+<div class="headerLine">
+ <h1 id="professional-appearance">
+ Professional Appearance and Aesthetics
+ </h1>
+
+ <hr>
+</div>
+
+<p>
+ There's no substitute for a real user interface designer — ideally one who's
+ well-versed in mobile and Android, and handy with both interaction and visual
+ design. One popular venue to post openings for designers is <a href=
+ "http://jobs.smashingmagazine.com/">jobs.smashingmagazine.com</a>, and
+ leveraging social networks can also surface great talent.
+</p>
+
+<p>
+ If you don't have the luxury of working with a UI designer, there are some
+ ways in which you can improve your app's appearance yourself. You can use
+ Adobe Photoshop, Adobe Fireworks, GIMP, Inkscape or other image editing
+ tools. Mastering the art of the pixel in these apps takes time, but honing
+ this skill can help build polish across your interface designs. Also, master
+ the resources framework by studying the framework UI assets and layouts and
+ reading through the <a href=
+ "{@docRoot}guide/topics/resources/index.html">resources documentation</a>.
+ Techniques such as 9-patches and resource directory qualifiers are somewhat
+ unique to Android, and are crucial in building flexible yet aesthetic UIs.
+</p>
+
+<p>
+ Before you get too far in designing your app and writing the code, make sure
+ to visit the <a href="{@docRoot}design/index.html">Android Design section</a>
+ and learn about the vision, the building blocks, and the tools of designing
+ beautiful and inspiring user interfaces.
+</p>
+
+<div class="headerLine">
+ <h1 id="deliver-features">
+ Deliver the Right Set of Features
+ </h1>
+
+ <hr>
+</div>
+
+<p>
+ Having the <em>right</em> set of features in your app is important. It's
+ often easy to fall into the trap of feature-creep, building as much
+ functionality into your app as possible. Providing instant gratification by
+ immediately showing the most important or relevant information is crucial on
+ mobile devices. Providing too much information can be as frustrating (or even
+ more so) than not providing enough of it.
+</p>
+
+<p>
+ Again, listen to your users by collecting and responding to feature requests.
+ Be careful, though, to take feature requests with a grain of salt. Requests
+ can be very useful in aggregate, to get a sense of what kinds of
+ functionality you should be working on, but not every feature request needs
+ to be implemented.
+</p>
+
+<div class="headerLine">
+ <h1 id="integrate">
+ Integrate with the System and Third-Party apps
+ </h1>
+
+ <hr>
+</div>
+
+<p>
+ A great way to deliver a delightful user experience is to integrate tightly
+ with the operating system. Features like <a href=
+ "{@docRoot}guide/topics/appwidgets/index.html">Home screen widgets</a>,
+ <a href="{@docRoot}design/patterns/notifications.html">rich
+ notifications</a>, <a href="{@docRoot}guide/topics/search/index.html">global
+ search integration</a>, and <a href=
+ "{@docRoot}reference/android/widget/QuickContactBadge.html">Quick
+ Contacts</a> are fairly low-hanging fruit in this regard.
+</p>
+
+<p>
+ For some app categories, basic features like home screen widgets are
+ expected. Not including them is a sure-fire way to tarnish an otherwise
+ positive user experience. Some apps can achieve even tighter OS integration
+ with Android's contacts, accounts, and sync APIs.
+</p>
+
+<p>
+ Third-party integrations can provide even more user delight and give the user
+ a feeling of device cohesiveness. It's also a really nice way of adding
+ functionality to your app without writing any extra code (by leveraging other
+ apps' functionality). For example, if you're creating a camera app, you can
+ allow users to edit their photos in another app before saving them to their
+ collection, if they have that third-party application installed. More
+ information on this subject is available in the Android Training class
+ <a href="{@docRoot}training/basics/intents/index.html">Interacting with Other
+ Apps</a>.
+</p>
+
+<div class="headerLine">
+<h1 id="related-resources">Related Resources</h1><hr>
+</div>
+<div class="resource-widget resource-flow-layout col-13"
+ data-query="collection:distribute/essentials/optimizing, tag:addia"
+ data-sortOrder="-timestamp"
+ data-cardSizes="6x3"
+ data-maxResults="3"></div>
+<div class="resource-widget resource-flow-layout col-13"
+ data-query="tag:adia"
+ data-sortOrder="-timestamp"
+ data-cardSizes="6x3"
+ data-maxResults="3"></div>
+
diff --git a/docs/html/distribute/essentials/quality/core.jd b/docs/html/distribute/essentials/quality/core.jd
new file mode 100644
index 0000000..558b030
--- /dev/null
+++ b/docs/html/distribute/essentials/quality/core.jd
@@ -0,0 +1,1170 @@
+page.title=Core App Quality
+page.metaDescription=App quality directly influences the long-term success of your app—in terms of installs, user rating and reviews, engagement, and user retention.
+page.image=/distribute/images/core-quality-guidelines.jpg
+@jd:body
+
+<div id="qv-wrapper"><div id="qv">
+<h2>Quality Criteria</h2>
+ <ol>
+ <li><a href="#ux">Design and Interaction</a></li>
+ <li><a href="#fn">Functionality</a></li>
+ <li><a href="#ps">Performance and Stability</a></li>
+ <li><a href="#listing">Google Play</a></li>
+
+ </ol>
+
+ <h2>Testing</h2>
+ <ol>
+ <li><a href="#test-environment">Setting Up a Test Environment</a></li>
+ <li><a href="#tests">Test Procedures</a></li>
+ </ol>
+
+ <h2>You Should Also Read</h2>
+ <ol>
+ <li><a href="{@docRoot}distribute/essentials/quality/tablets.html">Tablet App Quality</a></li>
+ <li><a href="{@docRoot}distribute/essentials/optimizing-your-app.html">Optimize Your App</a></li>
+ </ol>
+
+
+</div>
+</div>
+
+<div class="top-right-float">
+ <img src="{@docRoot}images/gp-core-quality.png" style="margin-left: 20px;">
+</div>
+
+<p>
+ Android users expect high-quality apps. App quality directly influences the
+ long-term success of your app—in terms of installs, user rating and reviews,
+ engagement, and user retention.
+</p>
+
+<p>
+ This document helps you assess basic aspects of quality in your app through a
+ compact set of core app quality criteria and associated tests. All Android
+ apps should meet these criteria.
+</p>
+
+<p>
+ Before publishing your apps, test them against these criteria to ensure that
+ they function well on many devices, meets Android standards for navigation
+ and design, and are prepared for promotional opportunities in the Google Play
+ store. Your testing will go well beyond what's described here—the purpose of
+ this document is to specify the essential quality characteristics all apps
+ should display, so that you can cover them in your test plans.
+</p>
+
+<p>
+ If you're creating apps for tablets and or Google Play for Education there
+ are additional quality criteria you should consider, which are defined in the
+ <a href="{@docRoot}distribute/essentials/quality/tablets.html">Tablet App
+ Quality</a> guidelines and <a href=
+ "{@docRoot}distribute/essentials/gpfe-guidelines.html">Education
+ Guidelines</a>.
+</p>
+
+<div class="headerLine clearfloat">
+ <h1 id="ux">
+ Visual Design and User Interaction
+ </h1>
+
+ <hr>
+</div>
+
+<p>
+ These criteria ensure that your app provides standard Android visual design
+ and interaction patterns where appropriate, for a consistent and intuitive
+ user experience.
+</p>
+
+<table>
+ <tr>
+ <th style="width:2px;">
+ Area
+ </th>
+ <th style="width:54px;">
+ ID
+ </th>
+
+
+ <th>
+ Description
+ </th>
+ <th style="width:54px;">
+ Tests
+ </th>
+ </tr>
+ <tr id="UX-B1">
+ <td>Standard design</td>
+ <td>
+ UX-B1
+ </td>
+ <td>
+ <p style="margin-bottom:.5em;">
+ App follows <a href="{@docRoot}design/index.html">Android Design</a>
+ guidelines and uses common <a href=
+ "{@docRoot}design/patterns/index.html">UI patterns and icons</a>:
+ </p>
+
+ <ol style="margin-bottom:.5em;list-style-type:lower-alpha">
+ <li>App does not redefine the expected function of a system icon (such
+ as the Back button).
+ </li>
+
+ <li>App does not replace a system icon with a completely different icon
+ if it triggers the standard UI behavior.
+ </li>
+
+ <li>If the app provides a customized version of a standard system icon,
+ the icon strongly resembles the system icon and triggers the standard
+ system behavior.
+ </li>
+
+ <li>App does not redefine or misuse Android UI patterns, such that
+ icons or behaviors could be misleading or confusing to users.
+ </li>
+ </ol>
+ </td>
+ <td>
+ <a href="#core">CR-all</a>
+ </td>
+ </tr>
+
+ <tr>
+ <td rowspan="3">
+ Navigation
+ </td>
+ <td id="UX-N1">
+ UX-N1
+ </td>
+ <td>
+ <p>
+ App supports standard system <a href=
+ "{@docRoot}design/patterns/navigation.html">Back button navigation</a>
+ and does not make use of any custom, on-screen "Back button" prompts.
+ </p>
+ </td>
+ <td>
+ <a href="#core">CR-3</a>
+ </td>
+ </tr>
+
+ <tr>
+ <td id="UX-N2">
+ UX-N2
+ </td>
+ <td>
+ <p>
+ All dialogs are dismissable using the Back button.
+ </p>
+ </td>
+ <td>
+ <a href="#core">CR-3</a>
+ </td>
+ </tr>
+
+ <tr id="UX-N3">
+ <td>
+ UX-N3
+ </td>
+ <td>
+ Pressing the Home button at any point navigates to the Home screen of the
+ device.
+ </td>
+ <td>
+ <a href="#core">CR-1</a>
+ </td>
+ </tr>
+
+ <tr id="UX-S1">
+ <td rowspan="2">
+ Notifications
+ </td>
+ <td>
+ UX-S1
+ </td>
+ <td>
+ <p style="margin-bottom:.5em;">
+ Notifications follow Android Design <a href=
+ "{@docRoot}design/patterns/notifications.html">guidelines</a>. In
+ particular:
+ </p>
+
+ <ol style="margin-bottom:.5em;list-style-type:lower-alpha">
+ <li>Multiple notifications are stacked into a single notification
+ object, where possible.
+ </li>
+
+ <li>Notifications are persistent only if related to ongoing events
+ (such as music playback or a phone call).
+ </li>
+
+ <li>Notifications do not contain advertising or content unrelated to
+ the core function of the app, unless the user has opted in.
+ </li>
+ </ol>
+ </td>
+ <td>
+ <a href="#core">CR-11</a>
+ </td>
+ </tr>
+
+ <tr id="UX-S2">
+ <td>
+ UX-S2
+ </td>
+ <td>
+ <p style="margin-bottom:.5em;">
+ App uses notifications only to:
+ </p>
+
+ <ol style="margin-bottom:.5em;list-style-type:lower-alpha">
+ <li>Indicate a change in context relating to the user personally (such
+ as an incoming message), or
+ </li>
+
+ <li>Expose information/controls relating to an ongoing event (such as
+ music playback or a phone call).
+ </li>
+ </ol>
+ </td>
+ <td>
+ <a href="#core">CR-11</a>
+ </td>
+ </tr>
+</table>
+
+<h3>
+ Related Resources
+</h3>
+
+<div class="resource-widget resource-flow-layout col-13" data-query=
+"collection:distribute/essentials/corequalityguidelines/visualdesign"
+data-sortorder="-timestamp" data-cardsizes="9x3,9x3,6x3,6x3,6x3"
+data-maxresults="6">
+</div>
+
+<div class="headerLine clearfloat">
+ <h1 id="fn">
+ Functionality
+ </h1>
+
+ <hr>
+</div>
+
+<p>
+ These criteria ensure that your app provides expected functional behavior,
+ with the appropriate level of permissions.
+</p>
+
+<table>
+ <tr>
+ <th style="width:2px;">
+ Area
+ </th>
+ <th style="width:54px;">
+ ID
+ </th>
+ <th>
+ Description
+ </th>
+ <th style="width:54px;">
+ Tests
+ </th>
+ </tr>
+
+ <tr id="FN-P1">
+ <td rowspan="2">
+ Permissions
+ </td>
+ <td>
+ FN-P1
+ </td>
+ <td>
+ App requests only the <em>absolute minimum</em> permissions that it needs
+ to support core functionality.
+ </td>
+ <td rowspan="2">
+ <a href="#core">CR-11</a>
+ </td>
+ </tr>
+
+ <tr id="FN-P2">
+ <td>
+ FN-P2
+ </td>
+ <td>
+ <p style="margin-bottom:.5em;">
+ App does not request permissions to access sensitive data (such as
+ Contacts or the System Log) or services that can cost the user money
+ (such as the Dialer or SMS), unless related to a core capability of the
+ app.
+ </p>
+ </td>
+ </tr>
+
+ <tr id="FN-L1">
+ <td>
+ Install location
+ </td>
+ <td>
+ FN-L1
+ </td>
+ <td>
+ <p style="margin-bottom:.5em;">
+ App functions normally when installed on SD card (if supported by app).
+ </p>
+
+ <p style="margin-bottom:.25em;">
+ Supporting installation to SD card is recommended for most large apps
+ (10MB+). See the <a href=
+ "{@docRoot}guide/topics/data/install-location.html">App Install
+ Location</a> developer guide for information about which types of apps
+ should support installation to SD card.
+ </p>
+ </td>
+ <td>
+ <a href="#SD-1">SD-1</a>
+ </td>
+ </tr>
+
+ <tr id="FN-A1">
+ <td rowspan="4">
+ Audio
+ </td>
+ <td>
+ FN-A1
+ </td>
+ <td>
+ Audio does not play when the screen is off, unless this is a core feature
+ (for example, the app is a music player).
+ </td>
+ <td>
+ <a href="#core">CR-7</a>
+ </td>
+ </tr>
+
+ <tr id="FN-A2">
+ <td>
+ FN-A2
+ </td>
+ <td>
+ Audio does not <a href=
+ "http://android-developers.blogspot.com/2011/11/making-android-games-that-play-nice.html">
+ play behind the lock screen</a>, unless this is a core feature.
+ </td>
+ <td>
+ <a href="#core">CR-8</a>
+ </td>
+ </tr>
+
+ <tr id="FN-A3">
+ <td>
+ FN-A3
+ </td>
+ <td>
+ Audio does not play on the home screen or over another app, unless this
+ is a core feature.
+ </td>
+ <td>
+ <a href="#core">CR-1,<br>
+ CR-2</a>
+ </td>
+ </tr>
+
+ <tr id="FN-A4">
+ <td>
+ FN-A4
+ </td>
+ <td>
+ Audio resumes when the app returns to the foreground, or indicates to the
+ user that playback is in a paused state.
+ </td>
+ <td>
+ <a href="#core">CR-1, CR-8</a>
+ </td>
+ </tr>
+
+ <tr id="FN-U1">
+ <td rowspan="3">
+ UI and Graphics
+ </td>
+ <td>
+ FN-U1
+ </td>
+ <td>
+ <p style="margin-bottom:.5em;">
+ App supports both landscape and portrait orientations (if possible).
+ </p>
+
+ <p style="margin-bottom:.25em;">
+ Orientations expose largely the same features and actions and preserve
+ functional parity. Minor changes in content or views are acceptable.
+ </p>
+ </td>
+ <td>
+ <a href="#core">CR-5</a>
+ </td>
+ </tr>
+
+ <tr id="FN-U2">
+ <td>
+ FN-U2
+ </td>
+ <td>
+ <p style="margin-bottom:.5em;">
+ App uses the whole screen in both orientations and does not letterbox
+ to account for orientation changes.
+ </p>
+
+ <p style="margin-bottom:.25em;">
+ Minor letterboxing to compensate for small variations in screen
+ geometry is acceptable.
+ </p>
+ </td>
+ <td>
+ <a href="#core">CR-5</a>
+ </td>
+ </tr>
+
+ <tr id="FN-U3">
+ <td>
+ FN-U3
+ </td>
+ <td>
+ <p style="margin-bottom:.5em;">
+ App correctly handles rapid transitions between display orientations
+ without rendering problems.
+ </p>
+ </td>
+ <td>
+ <a href="#core">CR-5</a>
+ </td>
+ </tr>
+
+ <tr id="FN-S1">
+ <td rowspan="2">
+ User/app state
+ </td>
+ <td>
+ FN-S1
+ </td>
+ <td>
+ <p style="margin-bottom:.5em;">
+ App should not leave any services running when the app is in the
+ background, unless related to a core capability of the app.
+ </p>
+
+ <p style="margin-bottom:.25em;">
+ For example, the app should not leave services running to maintain a
+ network connection for notifications, to maintain a Bluetooth
+ connection, or to keep the GPS powered-on.
+ </p>
+ </td>
+ <td>
+ <a href="#core">CR-6</a>
+ </td>
+ </tr>
+
+ <tr id="FN-S2">
+ <td>
+ FN-S2
+ </td>
+ <td>
+ <p style="margin-bottom:.5em;">
+ App correctly preserves and restores user or app state.
+ </p>
+
+ <p style="margin-bottom:.25em;">
+ App preserves user or app state when leaving the foreground and
+ prevents accidental data loss due to back-navigation and other state
+ changes. When returning to the foreground, the app must restore the
+ preserved state and any significant stateful transaction that was
+ pending, such as changes to editable fields, game progress, menus,
+ videos, and other sections of the app or game.
+ </p>
+
+ <ol style="margin-bottom:.25em;list-style-type:lower-alpha">
+ <li>When the app is resumed from the Recents app switcher, the app
+ returns the user to the exact state in which it was last used.
+ </li>
+
+ <li>When the app is resumed after the device wakes from sleep (locked)
+ state, the app returns the user to the exact state in which it was last
+ used.
+ </li>
+
+ <li>When the app is relaunched from Home or All Apps, the app restores
+ the app state as closely as possible to the previous state.
+ </li>
+
+ <li>On Back keypresses, the app gives the user the option of saving any
+ app or user state that would otherwise be lost on back-navigation.
+ </li>
+ </ol>
+ </td>
+ <td>
+ <a href="#core">CR-1, CR-3, CR-5</a>
+ </td>
+ </tr>
+</table>
+
+<h3>
+ Related Resources
+</h3>
+
+<div class="resource-widget resource-flow-layout col-13" data-query=
+"collection:distribute/essentials/corequalityguidelines/functionality"
+data-sortorder="-timestamp" data-cardsizes="6x3" data-maxresults="6">
+</div>
+
+<div class="headerLine clearfloat">
+ <h1 id="ps">
+ Performance and Stability
+ </h1>
+
+ <hr>
+</div>
+
+<p>
+ These criteria ensure that apps provide the performance, stability, and
+ responsiveness expected by users.
+</p>
+
+<table>
+ <tr>
+ <th style="width:2px;">
+ Area
+ </th>
+ <th style="width:54px;">
+ ID
+ </th>
+ <th>
+ Description
+ </th>
+ <th style="width:54px;">
+ Tests
+ </th>
+ </tr>
+
+ <tr id="PS-S1">
+ <td>
+ Stability
+ </td>
+ <td>
+ PS-S1
+ </td>
+ <td>
+ App does not crash, force close, freeze, or otherwise function abnormally
+ on any targeted device.
+ </td>
+ <td>
+ <a href="#core">CR-all</a>, <a href="#SD-1">SD-1</a>, <a href=
+ "#HA-1">HA-1</a>
+ </td>
+ </tr>
+
+ <tr id="PS-P1">
+ <td rowspan="2">
+ Performance
+ </td>
+ <td>
+ PS-P1
+ </td>
+ <td>
+ App loads quickly or provides onscreen feedback to the user (a progress
+ indicator or similar cue) if the app takes longer than two seconds to
+ load.
+ </td>
+ <td>
+ <a href="#core">CR-all</a>, <a href="#SD-1">SD-1</a>
+ </td>
+ </tr>
+
+ <tr id="PS-P2">
+ <td>
+ PS-P2
+ </td>
+ <td>
+ With StrictMode enabled (see <a href="#strictmode">StrictMode
+ Testing</a>, below), no red flashes (performance warnings from
+ StrictMode) are visible when exercising the app, including during game
+ play, animations and UI transitions, and any other part of the app.
+ </td>
+ <td>
+ <a href="#PM-1">PM-1</a>
+ </td>
+ </tr>
+
+ <tr id="PS-M1">
+ <td>
+ Media
+ </td>
+ <td>
+ PS-M1
+ </td>
+ <td>
+ Music and video playback is smooth, without crackle, stutter, or other
+ artifacts, during normal app usage and load.
+ </td>
+ <td>
+ <a href="#core">CR-all</a>, <a href="#SD-1">SD-1</a>, <a href=
+ "#HA-1">HA-1</a>
+ </td>
+ </tr>
+
+ <tr id="PS-V1">
+ <td rowspan="2">
+ Visual quality
+ </td>
+ <td>
+ PS-V1
+ </td>
+ <td>
+ <p style="margin-bottom:.5em;">
+ App displays graphics, text, images, and other UI elements without
+ noticeable distortion, blurring, or pixelation.
+ </p>
+
+ <ol style="margin-bottom:.5em;list-style-type:lower-alpha">
+ <li>App provides high-quality graphics for all targeted screen sizes
+ and form factors, including for <a href=
+ "{@docRoot}distribute/essentials/quality/tablet.html">larger-screen
+ devices such as tablets</a>.
+ </li>
+
+ <li>No aliasing at the edges of menus, buttons, and other UI elements
+ is visible.
+ </li>
+ </ol>
+ </td>
+ <td rowspan="2">
+ <a href="#core">CR-all</a>
+ </td>
+ </tr>
+
+ <tr id="PS-V2">
+ <td>
+ PS-V2
+ </td>
+ <td>
+ <p style="margin-bottom:.5em;">
+ App displays text and text blocks in an acceptable manner.
+ </p>
+
+ <ol style="margin-bottom:.5em;list-style-type:lower-alpha">
+ <li>Composition is acceptable in all supported form factors, including
+ for larger-screen devices such as tablets.
+ </li>
+
+ <li>No cut-off letters or words are visible.
+ </li>
+
+ <li>No improper word wraps within buttons or icons are visible.
+ </li>
+
+ <li>Sufficient spacing between text and surrounding elements.
+ </li>
+ </ol>
+ </td>
+ </tr>
+</table>
+
+<h3>
+ Related Resources
+</h3>
+
+<div class="resource-widget resource-flow-layout col-13" data-query=
+"collection:distribute/essentials/core/performance" data-sortorder="-timestamp"
+data-cardsizes="6x3" data-maxresults="6">
+</div>
+
+<div class="headerLine clearfloat">
+ <h1 id="listing">
+ Google Play
+ </h1>
+
+ <hr>
+</div>
+
+<p>
+ These criteria ensure that your apps are ready to publish on Google Play.
+</p>
+
+<table>
+ <tr>
+ <th style="width:2px;">
+ Area
+ </th>
+ <th style="width:54px;">
+ ID
+ </th>
+ <th>
+ Description
+ </th>
+ <th style="width:54px;">
+ Tests
+ </th>
+ </tr>
+
+ <tr id="GP-P1">
+ <td rowspan="2">
+ Policies
+ </td>
+ <td>
+ GP-P1
+ </td>
+ <td>
+ App strictly adheres to the terms of the <a href=
+ "http://play.google.com/about/developer-content-policy.html">Google Play
+ Developer Content Policy</a> and does not offer inappropriate content,
+ does not use intellectual property or brand of others, and so on.
+ </td>
+ <td>
+ <a href="#gp">GP-all</a>
+ </td>
+ </tr>
+
+ <tr id="GP-P2">
+ <td>
+ GP-P2
+ </td>
+ <td>
+ <p style="margin-bottom:.5em;">
+ App maturity level is set appropriately, based on the <a href=
+ "http://support.google.com/googleplay/android-developer/bin/answer.py?hl=en&answer=188189">
+ Content Rating Guidelines</a>.
+ </p>
+
+ <p style="margin-bottom:.25em;">
+ Especially, note that apps that request permission to use the device
+ location cannot be given the maturity level "Everyone".
+ </p>
+ </td>
+ <td>
+ <a href="#gp">GP-1</a>
+ </td>
+ </tr>
+
+ <tr id="GP-D1">
+ <td rowspan="3">
+ App&nbsp;Details Page
+ </td>
+ <td>
+ GP-D1
+ </td>
+ <td>
+ <p style="margin-bottom:.5em;">
+ App feature graphic follows the guidelines outlined in this <a href=
+ "http://android-developers.blogspot.com/2011/10/android-market-featured-image.html">
+ blog post</a>. Make sure that:
+ </p>
+
+ <ol style="margin-bottom:.5em;list-style-type:lower-alpha">
+ <li>The app listing includes a high-quality feature graphic.
+ </li>
+
+ <li>The feature graphic does not contain device images, screenshots, or
+ small text that will be illegible when scaled down and displayed on the
+ smallest screen size that your app is targeting.
+ </li>
+
+ <li>The feature graphic does not resemble an advertisement.
+ </li>
+ </ol>
+ </td>
+ <td>
+ <a href="#gp">GP-1, GP-2</a>
+ </td>
+ </tr>
+
+ <tr id="GP-D2">
+ <td>
+ GP-D2
+ </td>
+ <td>
+ App screenshots and videos do not show or reference non-Android devices.
+ </td>
+ <td rowspan="2">
+ <a href="#gp">GP-1</a>
+ </td>
+ </tr>
+
+ <tr id="GP-D3">
+ <td>
+ GP-D3
+ </td>
+ <td>
+ App screenshots or videos do not represent the content and experience of
+ your app in a misleading way.
+ </td>
+ </tr>
+
+ <tr id="GP-X1">
+ <td>
+ User Support
+ </td>
+ <td>
+ GP-X1
+ </td>
+ <td>
+ Common user-reported bugs in the Reviews tab of the Google Play page are
+ addressed if they are reproducible and occur on many different devices.
+ If a bug occurs on only a few devices, you should still address it if
+ those devices are particularly popular or new.
+ </td>
+ <td>
+ <a href="#gp">GP-1</a>
+ </td>
+ </tr>
+</table>
+
+<h3>
+ Related Resources
+</h3>
+
+<div class="resource-widget resource-flow-layout col-13" data-query=
+"collection:distribute/essentials/core/play" data-sortorder="-timestamp"
+data-cardsizes="6x3,6x3,6x3,6x3,6x3,6x3" data-maxresults="6">
+</div>
+
+<div class="headerLine clearfloat">
+ <h1 id="test-environment">
+ Setting Up a Test Environment
+ </h1>
+
+ <hr>
+</div>
+
+<p>
+ To assess the quality of your app, you need to set up a suitable hardware or
+ emulator environment for testing.
+</p>
+
+<p>
+ The ideal test environment would include a small number of actual hardware
+ devices that represent key form factors and hardware/software combinations
+ currently available to consumers. It's not necessary to test on
+ <em>every</em> device that's on the market &mdash; rather, you should focus
+ on a small number of representative devices, even using one or two devices
+ per form factor.
+</p>
+
+<p>
+ If you are not able to obtain actual hardware devices for testing, you should
+ <a href="{@docRoot}tools/devices/index.html">set up emulated devices
+ (AVDs)</a> to represent the most common form factors and hardware/software
+ combinations.
+</p>
+
+<p>
+ To go beyond basic testing, you can add more devices, more form factors, or
+ new hardware/software combinations to your test environment. You can also
+ increase the number or complexity of tests and quality criteria.
+</p>
+
+<div class="headerLine clearfloat">
+ <h1 id="tests">
+ Test Procedures
+ </h1>
+
+ <hr>
+</div>
+
+<p>
+ These test procedures help you discover various types of quality issues in
+ your app. You can combine the tests or integrate groups of tests together in
+ your own test plans. See the sections above for references that associate
+ specific criteria with specific tests.
+</p>
+
+<table>
+ <tr>
+ <th style="width:2px;">
+ Type
+ </th>
+ <th style="width:54px;">
+ Test
+ </th>
+ <th>
+ Description
+ </th>
+ </tr>
+
+ <tr>
+ <td rowspan="12" id="core">
+ Core Suite
+ </td>
+ <td>
+ CR-0
+ </td>
+ <td>
+ <p style="margin-bottom:.5em;">
+ Navigate to all parts of the app &mdash; all screens, dialogs,
+ settings, and all user flows.
+ </p>
+
+ <ol style="margin-bottom:.5em;list-style-type:lower-alpha">
+ <li>If the application allows for editing or content creation, game
+ play, or media playback, make sure to enter those flows to create or
+ modify content.
+ </li>
+
+ <li>While exercising the app, introduce transient changes in network
+ connectivity, battery function, GPS or location availability, system
+ load, and so on.
+ </li>
+ </ol>
+ </td>
+ </tr>
+
+ <tr id="tg2">
+ <td id="core2">
+ CR-1
+ </td>
+ <td>
+ From each app screen, press the device's Home key, then re-launch the app
+ from the All Apps screen.
+ </td>
+ </tr>
+
+ <tr id="CR-2">
+ <td>
+ CR-2
+ </td>
+ <td>
+ From each app screen, switch to another running app and then return to
+ the app under test using the Recents app switcher.
+ </td>
+ </tr>
+
+ <tr id="CR-3">
+ <td>
+ CR-3
+ </td>
+ <td>
+ From each app screen (and dialogs), press the Back button.
+ </td>
+ </tr>
+
+ <tr id="CR-5">
+ <td>
+ CR-5
+ </td>
+ <td>
+ From each app screen, rotate the device between landscape and portrait
+ orientation at least three times.
+ </td>
+ </tr>
+
+ <tr id="CR-6">
+ <td>
+ CR-6
+ </td>
+ <td>
+ Switch to another app to send the test app into the background. Go to
+ Settings and check whether the test app has any services running while in
+ the background. In Android 4.0 and higher, go to the Apps screen and find
+ the app in the "Running" tab. In earlier versions, use "Manage
+ Applications" to check for running services.
+ </td>
+ </tr>
+
+ <tr id="CR-7">
+ <td>
+ CR-7
+ </td>
+ <td>
+ Press the power button to put the device to sleep, then press the power
+ button again to awaken the screen.
+ </td>
+ </tr>
+
+ <tr id="CR-8">
+ <td>
+ CR-8
+ </td>
+ <td>
+ Set the device to lock when the power button is pressed. Press the power
+ button to put the device to sleep, then press the power button again to
+ awaken the screen, then unlock the device.
+ </td>
+ </tr>
+
+ <tr id="CR-9">
+ <!-- Hardware features -->
+
+ <td>
+ CR-9
+ </td>
+ <td>
+ For devices that have slide-out keyboards, slide the keyboard in and out
+ at least once. For devices that have keyboard docks, attach the device to
+ the keyboard dock.
+ </td>
+ </tr>
+
+ <tr id="CR-10">
+ <td>
+ CR-10
+ </td>
+ <td>
+ For devices that have an external display port, plug-in the external
+ display.
+ </td>
+ </tr>
+
+ <tr id="CR-11">
+ <td>
+ CR-11
+ </td>
+ <td>
+ Trigger and observe in the notications drawer all types of notifications
+ that the app can display. Expand notifications where applicable (Android
+ 4.1 and higher), and tap all actions offered.
+ </td>
+ </tr>
+
+ <tr id="CR-12">
+ <td>
+ CR-12
+ </td>
+ <td>
+ Examine the permissions requested by the app by going to Settings &gt;
+ App Info.
+ </td>
+ </tr>
+
+ <tr id="tg3">
+ <td>
+ Install on SD Card
+ </td>
+ <td>
+ SD-1
+ </td>
+ <td>
+ <p style="margin-bottom:.5em;">
+ Repeat <em>Core Suite</em> with app installed to <a href=
+ "{@docRoot}guide/topics/data/install-location.html">device SD card</a>
+ (if supported by app).
+ </p>
+
+ <p style="margin-bottom:.25em;">
+ To move the app to SD card, you can use Settings &gt; App Info &gt;
+ Move to SD Card.
+ </p>
+ </td>
+ </tr>
+
+ <tr id="tg32">
+ <td>
+ Hardware acceleration
+ </td>
+ <td>
+ HA-1
+ </td>
+ <td>
+ <p style="margin-bottom:.5em;">
+ Repeat <em>Core Suite</em> with hardware acceleration enabled.
+ </p>
+
+ <p style="margin-bottom:.25em;">
+ To force-enable hardware acceleration (where supported by device), add
+ <code>hardware-accelerated="true"</code> to the
+ <code>&lt;application&gt;</code> in the app manifest and recompile.
+ </p>
+ </td>
+ </tr>
+
+ <tr id="tg33">
+ <td>
+ Performance Monitoring
+ </td>
+ <td>
+ PM-1
+ </td>
+ <td>
+ <p style="margin-bottom:.5em;">
+ Repeat <em>Core Suite</em> with StrictMode profiling enabled <a href=
+ "#strictmode">as described below</a>.
+ </p>
+
+ <p style="margin-bottom:.25em;">
+ Pay close attention to garbage collection and its impact on the user
+ experience.
+ </p>
+ </td>
+ </tr>
+
+ <tr id="gp">
+ <td rowspan="3">
+ Google Play
+ </td>
+ <td>
+ GP-1
+ </td>
+ <td>
+ Sign into the <a href="https://play.google.com/apps/publish/">Developer
+ Console</a> to review your developer profile, app description,
+ screenshots, feature graphic, maturity settings, and user feedback.
+ </td>
+ </tr>
+
+ <tr id="GP-2">
+ <td>
+ GP-2
+ </td>
+ <td>
+ Download your feature graphic and screenshots and scale them down to
+ match the display sizes on the devices and form factors you are
+ targeting.
+ </td>
+ </tr>
+
+ <tr id="GP-3">
+ <td>
+ GP-3
+ </td>
+ <td>
+ Review all graphical assets, media, text, code libraries, and other
+ content packaged in the app or expansion file download.
+ </td>
+ </tr>
+
+ <tr id="GP-4">
+ <td>
+ Payments
+ </td>
+ <td>
+ GP-4
+ </td>
+ <td>
+ Navigate to all screens of your app and enter all in-app purchase flows.
+ </td>
+ </tr>
+</table>
+
+<h3 id="strictmode">
+ Testing with StrictMode
+</h3>
+
+<p>
+ For performance testing, we recommend enabling {@link android.os.StrictMode}
+ in your app and using it to catch operations on the main thread and other
+ threads that could affect performance, network accesses, file reads/writes,
+ and so on.
+</p>
+
+<p>
+ You can set up a monitoring policy per thread using {@link
+ android.os.StrictMode.ThreadPolicy.Builder} and enable all supported
+ monitoring in the <code>ThreadPolicy</code> using {@link
+ android.os.StrictMode.ThreadPolicy.Builder#detectAll()}.
+</p>
+
+<p>
+ Make sure to enable <strong>visual notification</strong> of policy violations
+ for the <code>ThreadPolicy</code> using {@link
+ android.os.StrictMode.ThreadPolicy.Builder#penaltyFlashScreen()
+ penaltyFlashScreen()}.
+</p>
diff --git a/docs/html/distribute/essentials/quality/tablets.jd b/docs/html/distribute/essentials/quality/tablets.jd
new file mode 100644
index 0000000..7dfab48
--- /dev/null
+++ b/docs/html/distribute/essentials/quality/tablets.jd
@@ -0,0 +1,867 @@
+page.title=Tablet App Quality
+page.metaDescription=Tablets are a fast-growing part of the Android installed base that offers new opportunities for your apps.
+page.image=/distribute/images/tablet-guidelines-color.jpg
+Xnonavpage=true
+
+@jd:body
+<div id="qv-wrapper"><div id="qv">
+<h2>Checklist</h2>
+<ol>
+<li><a href="#core-app-quality">1. Test for Basic Tablet App Quality</a></li>
+<li><a href="#optimize-layouts">2. Optimize Layouts</a></li>
+<li><a href="#use-extra-space">3. Use Extra Screen Area</a></li>
+<li><a href="#use-tablet-icons">4. Use Assets Designed for Tablets</a></li>
+<li><a href="#adjust-font-sizes">5. Adjust Fonts and Touch Targets</a></li>
+<li><a href="#adjust-widgets">6. Adjust Homescreen Widgets</a></li>
+<li><a href="#offer-full-feature-set">7. Offer Full Feature Set</a></li>
+<li><a href="#android-versions">8. Target Android Versions Properly</a></li>
+<li><a href="#hardware-requirements">9. Declare Dependencies Properly</a></li>
+<li><a href="#support-screens">10. Declare Support for Tablet Screens</a></li>
+<li><a href="#google-play">11. Showcase Your Tablet UI</a></li>
+<li><a href="#google-play-best-practices">12. Follow Best Practices for Publishing in Google Play</a></li>
+
+</ol>
+<h2>Testing</h2>
+<ol>
+<li><a href="#test-environment">Setting Up a Test Environment</a></li>
+</ol>
+</div></div>
+
+<div class="todp-right-float" style="padding-right:0;margin-bottom:1em;">
+ <img src="{@docRoot}distribute/images/tablet-guidelines-color.jpg" style="width:480px;">
+</div>
+
+<p>
+ Tablets are a growing part of the Android installed base and offer new
+ opportunities for <a href="{@docRoot}distribute/stories/tablets.html">user
+ engagement and monetization</a>. The guidelines in this document will help
+ you meet the expectations of tablet users through compelling features and an
+ intuitive, well-designed UI.
+</p>
+
+<p>
+ Although the guidelines are numbered, you can approach them in any order. You
+ should address each guideline’s recommendations to the extent that they’re
+ appropriate for your app, but &mdash; in the interest of delivering the best
+ product to your customers &mdash; follow them to the greatest extent
+ possible.
+</p>
+
+<p>
+ Through the document you'll find links to resources that can
+ help you address each recommendation included.
+</p>
+
+<div class="headerLine"><h1 id="core-app-quality">1. Test for Basic Tablet App Quality</h1><hr></div>
+
+<p>The first step in delivering a great tablet app experience is making sure
+that it meets the <em>core app quality criteria</em> for all of the devices
+and form factors that the app is targeting. For complete information, see the <a
+href="{@docRoot}distribute/essentials/quality/core.html">Core App Quality Guidelines</a>.
+</p>
+
+<p>
+Before publishing, also ensure that your app passes the basic technical checks and launch criteria, such as:
+</p>
+
+<ul>
+ <li><a href="#android-versions">Targets appropriate Android versions</a></li>
+ <li><a href="#hardware-requirements">Specifies any hardware dependencies properly</a></li>
+ <li><a href="#support-screens">Declares support for appropriate screens</a></li>
+ <li><a href="#use-extra-space">Uses all of the available screen space</a></li>
+ <li><a href="#google-play">Screenshots are uploaded to Google Play</a></li>
+</ul>
+
+<p>If your app is already uploaded to the Google Play Developer Console, you
+ can see how it is doing against these checks
+ by visiting the <a href="#google-play-optimization-tips">Optimization
+ Tips page</a>.</p>
+
+
+<div class="headerLine clearfloat">
+<h1 id="optimize-layouts">2. Optimize Layouts for Larger Screens</h1><hr></div>
+
+<p>
+ Android makes it easy to develop an app that runs well on a wide range of
+ device screen sizes and form factors. This broad compatibility works in your
+ favor, since it helps you design a single app that you can distribute widely
+ to all of your targeted devices. However, to give your users the best
+ possible experience on each screen configuration &mdash; in particular on
+ tablets &mdash; you need to optimize your layouts and other UI components for
+ each targeted screen configuration. On tablets, optimizing your UI lets you
+ take full advantage of the additional screen available, such as to offer new
+ features, present new content, or enhance the experience in other ways to
+ deepen user engagement.
+</p>
+
+<p>
+ If you developed your app for handsets and now want to distribute it to
+ tablets, you can start by making minor adjustments to your layouts, fonts,
+ and spacing. In some cases &mdash; such as for 7-inch tablets or for a game
+ with large canvas &mdash; these adjustments may be all you need to make your
+ app look great. In other cases, such as for larger tablets, you can redesign
+ parts of your UI to replace "stretched UI" with an efficient multipane UI,
+ easier navigation, and additional content.
+</p>
+
+
+<div style="width:500px;margin:1.5em;margin-top:-16px;">
+<img src="{@docRoot}images/training/app-navigation-multiple-sizes-multipane-bad.png"
+style="padding:4px;margin-bottom:0em;">
+<p class="img-caption"><span
+style="font-weight:500;">Get rid of "stretched" UI</span>: On tablets, single-pane
+layouts lead to awkward whitespace and excessive line lengths. Use padding to
+reduce the width of UI elements and consider using multi-pane layouts.</p>
+</div>
+
+<p>Here are some suggestions:</p>
+
+
+<ul>
+ <li>Provide custom layouts as needed for <code>large</code> and
+ <code>xlarge</code> screens. You can also provide layouts that are loaded
+ based on the screen's <a href=
+ "{@docRoot}guide/practices/screens_support.html#NewQualifiers">shortest
+ dimension</a> or the <a href=
+ "{@docRoot}guide/practices/screens_support.html#NewQualifiers">minimum
+ available width and height</a>.
+ </li>
+
+ <li>At a minimum, customize dimensions such as font sizes, margins, spacing
+ for larger screens, to improve use of space and content legibility.
+ </li>
+
+ <li>Adjust positioning of UI controls so that they are easily accessible to
+ users when holding a tablet, such as toward the sides when in landscape
+ orientation.
+ </li>
+
+ <li>Padding of UI elements should normally be larger on tablets than on
+ handsets. A <a href="{@docRoot}design/style/metrics-grids.html#48dp-rhythm">
+ 48dp rhythm</a> (and a 16dp grid) is recommended.
+ </li>
+
+ <li>Adequately pad text content so that it is not aligned directly along
+ screen edges. Use a minimum <code>16dp</code> padding around content near
+ screen edges.
+ </li>
+</ul>
+
+<p>In particular, make sure that your layouts do not appear "stretched"
+across the screen:</p>
+
+<ul>
+<li>Lines of text should not be excessively long &mdash; optimize for a maximum
+100 characters per line, with best results between 50 and 75.</li>
+<li>ListViews and menus should not use the full screen width.</li>
+<li>Use padding to manage the widths of onscreen elements or switch to a
+multi-pane UI for tablets (see next section).</li>
+</ul>
+
+<h3>Related resources</h3>
+
+<div class="resource-widget resource-flow-layout col-13"
+ data-query="collection:distribute/essentials/tabletguidelines/optimize"
+ data-sortOrder="-timestamp"
+ data-cardSizes="6x3"
+ data-maxResults="6"></div>
+
+
+<div class="headerLine clearfloat"><h1 id="use-extra-space">3. Take Advantage of Extra Screen Area</h1><hr></div>
+
+<div style="width:340px;float:right;margin:1.5em;margin-bottom:0;margin-top:0;">
+<img src="{@docRoot}images/training/app-navigation-multiple-sizes-multipane-good.png"
+style="padding:4px;margin-bottom:0em;">
+<p class="img-caption"><span
+style="font-weight:500;">Multi-pane layouts</span> result in a better visual
+balance on tablet screens, while offering more utility and legibility.</p>
+</div>
+
+<p>Tablet screens provide significantly more screen real estate to your app,
+especially when in landscape orientation. In particular, 10-inch tablets offer a
+greatly expanded area, but even 7-inch tablets give you more space for
+displaying content and engaging users. </p>
+
+<p>As you consider the UI of your app when running on tablets, make sure that it
+is taking full advantage of extra screen area available on tablets. Here are
+some suggestions:</p>
+
+<ul>
+<li>Look for opportunities to include additional content or use an alternative
+treatment of existing content.</li>
+<li>Use <a href="{@docRoot}design/patterns/multi-pane-layouts.html">multi-pane
+layouts</a> on tablet screens to combine single views into a compound view. This
+lets you use the additional screen area more efficiently and makes it easier for
+users to navigate your app. </li>
+<li>Plan how you want the panels of your compound views to reorganize when
+screen orientation changes.</li>
+
+<div style="width:490px;margin:1.5em auto 1.5em 0;">
+<div style="">
+<img src="{@docRoot}images/ui-ex-single-panes.png"
+style="width:490px;padding:4px;margin-bottom:0em;" align="middle">
+<img src="{@docRoot}images/ui-ex-multi-pane.png" style="width:490px;padding:4px;margin-bottom:0em;">
+<p class="image-caption" style="padding:.5em"><span
+style="font-weight:500;">Compound views</span> combine several single views from a
+handset UI <em>(above)</em> into a richer, more efficient UI for tablets
+<em>(below)</em>. </p>
+</div>
+</div>
+
+<li>While a single screen is implemented as an {@link android.app.Activity}
+subclass, consider implementing individual content panels as {@link
+android.app.Fragment} subclasses. This lets you
+maximize code reuse across different form factors and across screens that
+share content.</li>
+<li>Decide on which screen sizes you'll use a multi-pane UI, then provide the
+different layouts in the appropriate screen size buckets (such as
+<code>large</code>/<code>xlarge</code>) or minimum screen widths (such as
+<code>sw600dp</code>/<code>sw720</code>).</li>
+</ul>
+
+<h3>Related resources</h3>
+
+<div class="resource-widget resource-flow-layout col-13"
+ data-query="collection:distribute/essentials/tabletguidelines/extrascreen"
+ data-sortOrder="-timestamp"
+ data-cardSizes="6x3,6x3,6x3"
+ data-maxResults="6"></div>
+
+<div class="headerLine clearfloat"><h1 id="use-tablet-icons">4. Use Assets Designed for Tablet Screens</h1><hr></div>
+
+<div><img src="{@docRoot}design/media/devices_displays_density@2x.png"></div>
+
+<p>To ensure your app looks its best, provide icons and other bitmap
+assets for each density in the range commonly supported by tablets. Specifically, you should
+design your icons for the action bar, notifications, and launcher according to the
+<a href="{@docRoot}design/style/iconography.html">Iconography</a> guidelines and
+provide them in multiple densities, so they appear at the appropriate size on all screens
+without blurring or other scaling artifacts.</p>
+
+<p class="table-caption"><strong>Table 1</strong>. Raw asset sizes for icon types.<table>
+<tr>
+<th>Density</th>
+<th>Launcher</th>
+<th>Action Bar</th>
+<th>Small/Contextual</th>
+<th>Notification</th>
+</tr>
+<tr>
+<td><code>mdpi</code></td>
+<td>48x48 px</td>
+<td>32x32 px</td>
+<td>16x16 px</td>
+<td>24x24 px</td>
+</tr>
+<tr>
+<td><code>hdpi</code></td>
+<td>72x72 px</td>
+<td>48x48 px</td>
+<td>24x24 px</td>
+<td>36x36 px</td>
+</tr>
+<tr>
+<td><code>tvdpi</code></td>
+<td><em>(use hdpi)</em></td>
+<td><em>(use hdpi)</em></td>
+<td><em>(use hdpi)</em></td>
+<td><em>(use hdpi)</em></td>
+</tr>
+<tr>
+<td><code>xhdpi</code></td>
+<td>96x96 px</td>
+<td>64x64 px</td>
+<td>32x32 px</td>
+<td>48x48 px</td>
+</tr>
+<tr>
+<td><code>xxhdpi</code></td>
+<td>144x144 px</td>
+<td>96x96 px</td>
+<td>48x48 px</td>
+<td>72x72 px</td>
+</tr>
+
+</table>
+
+<p>
+ As a minimum, supply a version of each icon and bitmap asset that's optimized
+ for <strong>at least one</strong> the following common tablet screen
+ densities:
+</p>
+<ul>
+ <li><code>hdpi</code></li>
+ <li><code>xhdpi</code></li>
+ <li><code>xxhdpi</code></li>
+</ul>
+
+<p>Other tips:</p>
+
+<ul>
+<li>Use vector shapes when designing icons, so they scale without loss of either detail or edge crispness.</li>
+<li>Use density-specific <a
+href="{@docRoot}guide/topics/resources/providing-resources.html#AlternativeResources">
+resource qualifiers</a> to ensure that the proper icons are loaded for each screen density.</li>
+<li>Tablets and other large screen devices often request a launcher icon that is one density
+size larger than the device's actual density, so you should provide your launcher
+icon at the highest density possible. For example, if a tablet has an {@code xhdpi} screen,
+it will request the {@code xxhdpi} version of the launcher icon.</li>
+</ul>
+
+<h3>Related resources</h3>
+
+<div class="resource-widget resource-flow-layout col-13"
+ data-query="collection:distribute/essentials/tabletguidelines/assets"
+ data-sortOrder="-timestamp"
+ data-cardSizes="9x3"
+ data-maxResults="6"></div>
+
+<div class="headerLine clearfloat"><h1 id="adjust-font-sizes">5.
+Adjust Font Sizes and Touch Targets</h1><hr></div>
+
+<p>To make sure your app is easy to use on tablets, take some time to adjust the
+font sizes and touch targets in your tablet UI, for all of the screen
+configurations you are targeting. You can adjust font sizes through <a
+href="{@docRoot}guide/topics/ui/themes.html">styleable attributes</a> or <a
+href="{@docRoot}guide/topics/resources/more-resources.html#Dimension">dimension
+resources</a>, and you can adjust touch targets through layouts and bitmap
+drawables, as discussed above. </p>
+
+<p>Here are some considerations:</p>
+<ul>
+<li>Text should not be excessively large or small on tablet screen sizes and
+densities. Make sure that labels are sized appropriately for the UI elements they
+correspond to, and ensure that there are no improper line breaks in labels,
+titles, and other elements.</li>
+<li>The recommended touch-target size for onscreen elements is 48dp (32dp
+minimum) &mdash; some adjustments may be needed in your tablet UI. Read <a
+href="{@docRoot}design/style/metrics-grids.html">Metrics and
+Grids
+</a> to learn about implementation strategies to help most of your users. To
+meet the accessibility needs of certain users, it may be appropriate to use
+larger touch targets. </li>
+<li>When possible, for smaller icons, expand the touchable area to more than
+48dp using {@link android.view.TouchDelegate}
+or just centering the icon within the transparent button.</li>
+</ul>
+
+<h3>Related resources</h3>
+
+<div class="resource-widget resource-flow-layout col-13"
+ data-query="collection:distribute/essentials/tabletguidelines/fonts"
+ data-sortOrder="-timestamp"
+ data-cardSizes="9x3,9x3,6x3,6x3,6x3"
+ data-maxResults="6"></div>
+
+<div class="headerLine clearfloat"><h1 id="adjust-widgets">6. Adjust Sizes of Home Screen Widgets</h1><hr></div>
+
+<p>If your app includes a home screen widget, here are a few points to consider
+to ensure a great user experience on tablet screens: </p>
+
+<ul>
+<li>Set the widget's default height and width appropriately
+for tablet screens, as well as the minimum and maximum resize height and width.
+</li>
+<li>The widget should be resizable to 420dp or more, to span 5 or more home
+screen rows (if this is a vertical or square widget) or columns (if this is a
+horizontal or square widget). </li>
+<li>Make sure that 9-patch images render correctly.</li>
+<li>Use default system margins.</li>
+<li>Set the app's <code>targetSdkVersion</code> to 14 or higher, if
+possible.</li>
+</ul>
+
+<h3>Related resources</h3>
+
+<div class="resource-widget resource-flow-layout col-13"
+ data-query="collection:distribute/essentials/tabletguidelines/widgets"
+ data-sortOrder="-timestamp"
+ data-cardSizes="6x3"
+ data-maxResults="6"></div>
+
+
+<div class="headerLine clearfloat"><h1 id="offer-full-feature-set">7. Full Feature Set for Tablet Users</h1><hr></div>
+
+<div class="centered-full-image" style="width:600px;margin:1.5em"><img src="{@docRoot}images/gp-tablets-full-feature-set.png" alt="Tablet feature sets"></div>
+
+<p>Let your tablet users experience the best features of your app. Here are
+some recommendations:</p>
+
+<ul>
+ <li>Design your app to offer at least the same set of features on tablets as
+ it does on phones.
+ </li>
+
+ <li>In exceptional cases, your app might omit or replace certain features on
+ tablets if they are not supported by the hardware or use-case of most
+ tablets. For example:
+ <ul>
+ <li>If the handset uses telephony features but telephony is not available
+ on the current tablet, you can omit or replace the related functionality.
+ </li>
+
+ <li>Many tablets have a GPS sensor, but most users would not normally
+ carry their tablets while running. If your phone app provides
+ functionality to let the user record a GPS track of their runs while
+ carrying their phones, the app would not need to provide that
+ functionality on tablets because the use-case is not compelling.
+ </li>
+ </ul>
+ </li>
+
+ <li>If you will omit a feature or capability from your tablet UI, make sure
+ that it is not accessible to users or that it offers “graceful degradation”
+ to a replacement feature (also see the section below on hardware features).
+ </li>
+</ul>
+
+<div class="headerLine clearfloat"><h1 id="android-versions">8. Target Android Versions Properly</h1><hr></div>
+
+<p>
+ To ensure the broadest possible distribution to tablets, make sure that your
+ app properly targets the Android versions that support tablets. Initial
+ support for tablets was added in <a href=
+ "{@docRoot}about/versions/android-3.0.html">Android 3.0</a> (API level 11).
+ Unified UI framework support for tablets, phones, and other devices was
+ introduced in <a href="{@docRoot}about/versions/android-4.0.html">Android
+ 4.0</a>
+</p>
+
+<p>
+ You can set the app's range of targeted Android versions in the manifest
+ file, in the <a href=
+ "{@docRoot}guide/topics/manifest/uses-sdk-element.html"><code>&lt;uses-sdk&gt;</code></a>
+ element. In most cases, you can target Android versions properly by setting
+ the element's <code>targetSdkVersion</code> attribute to the highest API
+ level available.
+</p>
+
+<p style="margin-bottom:.5em;">
+ At a minimum, check the <a href=
+ "{@docRoot}guide/topics/manifest/uses-sdk-element.html"><code>&lt;uses-sdk&gt;</code></a>
+ element to make sure that:
+</p>
+
+<ol style="list-style-type:lower-alpha;margin-top:0em;">
+ <li>
+ <code>targetSdkVersion</code> is declared with value 11 or higher (14 or
+ higher is recommended), OR
+ </li>
+
+ <li>
+ <code>minSdkVersion</code> is declared with value 11 or higher.
+ </li>
+
+ <li>If a <code>maxSdkVersion</code> attribute is declared, it must have a
+ value of 11 or higher. Note that, in general, the use of
+ <code>maxSdkVersion</code> is <em>not recommended</em>.
+ </li>
+</ol>
+
+<h3>Related resources</h3>
+
+<div class="resource-widget resource-flow-layout col-13"
+ data-query="collection:distribute/essentials/tabletguidelines/versions"
+ data-sortOrder="-timestamp"
+ data-cardSizes="6x3"
+ data-maxResults="6"></div>
+
+<div class="headerLine clearfloat"><h1 id="hardware-requirements">9. Declare Hardware Feature Dependencies Properly</h1><hr></div>
+
+<p>
+ Handsets and tablets typically offer slightly different hardware support for
+ sensors, camera, telephony, and other features. For example, many tablets are
+ available in a "Wi-Fi" configuration that does not include telephony support.
+</p>
+
+<p>
+ So that you can distribute a single APK broadly across your full customer
+ base of phones and tablets, make sure that your app doesn't declare
+ requirements for hardware features that aren't commonly available on tablets.
+ Instead, properly declare the hardware features as <em>not required</em> in the app
+ manifest, as described below.
+</p>
+
+<ul>
+<li>In your app manifest, locate any <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><code>&lt;uses-feature&gt;</code></a>
+elements. In particular, look for hardware features that might not be
+available on some tablets, such as:
+
+<ul>
+<li><code>android.hardware.telephony</code></li>
+<li><code>android.hardware.camera</code> (refers to back camera), or</li>
+<li><code>android.hardware.camera.front</code></li>
+</ul></li>
+
+<li>Declare the <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><code>&lt;uses-feature&gt;</code></a>
+elements as <em>not required</em> by including the <code>android:required=”false”</code>
+attribute.
+
+<p>
+ For example, here's the proper way to declare a dependency on
+ <code>android.hardware.telephony</code>, such that you can still
+ distribute the app broadly, even to devices that don't offer telephony:
+</p>
+
+<pre>&lt;uses-feature android:name="android.hardware.telephony" android:required="false" /&gt;</pre></li>
+
+<li>Similarly, check the manifest for <a href="{@docRoot}guide/topics/manifest/permission-element.html"><code>&lt;permission&gt;</code></a> elements that
+<a href="{@docRoot}guide/topics/manifest/uses-feature-element.html#permissions">imply hardware
+feature requirements</a> that not be appropriate for tablets. If you find such
+permissions, make sure to explicitly declare a corresponding
+<code>&lt;uses-feature&gt;</code> element for the features and includes the
+<code>android:required=”false”</code> attribute.</li>
+</ul>
+
+
+<p>
+ After declaring hardware features as <em>not required</em>, make sure to test
+ your app on a variety of devices. The app should function normally when the
+ hardware features it uses are not available, and it should offer "graceful
+ degradation" and alternative functionality where appropriate.
+</p>
+
+<p>
+ For example, if an app normally uses GPS to set the location but GPS is not
+ supported on the device, the app could let the user set the location manually
+ instead. The app can check for device hardware capabilities at runtime and handle
+ as needed.
+</p>
+
+<h3>Related resources</h3>
+
+<div class="resource-widget resource-flow-layout col-13"
+ data-query="collection:distribute/essentials/tabletguidelines/hardware"
+ data-sortOrder="-timestamp"
+ data-cardSizes="9x3"
+ data-maxResults="6"></div>
+
+<div class="headerLine clearfloat"><h1 id="support-screens">10. Declare Support for Tablet Screens</h1><hr></div>
+
+<p>To ensure that you can distribute your app to a broad range of tablets, your app should
+declare support for tablet screen sizes in its manifest file, as follows:</p>
+
+<ul>
+ <li>A
+ <a href="{@docRoot}guide/topics/manifest/supports-screens-element.html"><code>&lt;supports-screens&gt;</code></a>
+ element, if declared, must not specify <code>android:largeScreens="false"</code>
+ or <code>android:xlargeScreens="false"</code>.</li>
+ <li>For apps targeting <code>minSdkVersion</code> value less than 13, a
+ <a href="{@docRoot}guide/topics/manifest/supports-screens-element.html"><code>&lt;supports-screens&gt;</code></a>
+ element must be declared with both <code>android:largeScreens="true"</code> and
+ <code>android:xlargeScreens="true"</code>.</li>
+</ul>
+
+<p>If the app declares a
+<a href="{@docRoot}guide/topics/manifest/compatible-screens-element.html"><code>&lt;compatible-screens&gt;</code></a>
+element in the manifest, the element should include attributes that specify
+<em>all of the size and density combinations for tablet screens</em> that the
+app supports. Note that, if possible, you should avoid using the
+<a href="{@docRoot}guide/topics/manifest/compatible-screens-element.html"><code>&lt;compatible-screens&gt;</code></a>
+element in your app.</p>
+
+<h3>Related resources</h3>
+
+<div class="resource-widget resource-flow-layout col-13"
+ data-query="collection:distribute/essentials/tabletguidelines/tabletscreens"
+ data-sortOrder="-timestamp"
+ data-cardSizes="9x3,6x3,6x3"
+ data-maxResults="6"></div>
+
+
+<div class="headerLine clearfloat"><h1 id="google-play">11. Showcase Your Tablet UI in Google Play</h1><hr></div>
+
+<p>
+ After you've done the work to create an rich, optimized UI for your tablet
+ app, make sure that you let your customers know about it! Here are some key
+ ways to promote your tablet app to users on Google Play.
+</p>
+
+<div><img class="border-img" src="{@docRoot}images/gp-tablet-quality-4.jpg"></div>
+
+
+<h4>
+ Upload screenshots of your tablet UI
+</h4>
+
+<p>
+ Tablet users want to know what your app is like on a tablet device, not on a
+ phone. If you developed a tablet app, make sure to upload screenshots
+ of your tablet UI to the Google Play Developer Console. Here are some guidelines:
+ </p>
+
+<ul style="margin-top:0;">
+ <li>Show the core functionality of your app, not a
+ startup or sign-in page. Wherever users will spend most of their time, that's
+ what you should show in your screenshots.
+ </li>
+
+ <li>Add screenshots taken on both 7-inch and 10-inch tablets.
+ </li>
+
+ <li>Add screenshots taken in both landscape and
+ portrait orientations, if possible.
+ </li>
+
+ <li>Use screen captures if possible. Avoid showing actual device hardware in your
+ screenshots.</li>
+
+ <li>The recommended resolution of your tablet screenshots is <strong>1280 x 720</strong>
+ or higher in each orientation.
+ </li>
+
+ <li>Upload as many as 8 screenshots of your tablet UI for 7-inch tablets
+ and an additional 8 for 10-inch tablets.
+ </li>
+</ul>
+
+<h4>
+ Update your app description and release notes
+</h4>
+
+<ul>
+ <li>In your app description, make sure to highlight that your app offers
+ tablet-optimized UI and great features for tablet users. Add some
+ detail about how your tablet UI works and why users will like it.
+ </li>
+
+ <li>Include information about tablet support in the app's release notes and
+ update information.
+ </li>
+</ul>
+
+<h4>
+ Update your promotional video
+</h4>
+
+<p>
+ Many users view an app's promotional video to get an idea of what the app is
+ like and whether they'll enjoy it. For tablet users, capitalize on this
+ interest by highlighting your app's tablet UI in your promotional video. Here
+ are some tips and guidelines:
+</p>
+
+<ul>
+ <li>Add one or more shots of your app running on a tablet. To engage with
+ tablet users most effectively, it's recommended that you promote your tablet
+ UI in approximately equal proportion to your phone UI.
+ </li>
+
+ <li>Show your tablet UI as early as possible in the video. Don't assume that
+ tablet users will wait patiently through a feature walkthrough on a phone UI.
+ Ideally, you should engage them immediately by showing the tablet UI within
+ the first 10 seconds, or at the same point that you introduce the phone UI.
+ </li>
+
+ <li>To make it clear that you are showing a tablet UI, include shots of your
+ app running on a hand-held tablet device.
+ </li>
+
+ <li>Highlight your app's tablet UI in the video's narrative or voiceover.
+ </li>
+</ul>
+
+<h4>
+ Feature your tablet UI in your promotional campaigns
+</h4>
+
+<p>
+ Make sure to let tablet users know about your tablet UI in your promotional
+ campaigns, web site, social posts, advertisements, and elsewhere. Here are
+ some suggestions:
+</p>
+
+<ul>
+ <li>Plan a marketing or advertising campaign that highlights the use of your
+ app on tablets.</li>
+
+ <li>Show your tablet app at its best in your promotional campaigns&mdash;use the <a href=
+ "{@docRoot}distribute/tools/promote/device-art.html">Device Art Generator</a> to
+ quickly generate a high-quality promotional image of your app running on a
+ 7-inch or 10-inch tablet, in the orientation of your choice, with or without
+ drop-shadow and screen glare. It's as simple as capture, drag, and drop.
+ </li>
+
+ <li>Include a Google Play badge in your online promotions to let users link
+ directly to your app's store listing. You can generate a badge in a variety
+ of languages using the <a href=
+ "{@docRoot}distribute/tools/promote/badges.html">Badge Generator</a>.
+ </li>
+</ul>
+
+<h3>Related resources</h3>
+
+<div class="resource-widget resource-flow-layout col-13"
+ data-query="collection:distribute/essentials/tabletguidelines/showcase"
+ data-sortOrder="-timestamp"
+ data-cardSizes="9x3,9x3,9x3,9x3"
+ data-maxResults="6"></div>
+
+<div class="headerLine clearfloat">
+ <h1 id="google-play-best-practices">
+ 12. Follow Best Practices for Publishing in Google Play
+ </h1>
+
+ <hr>
+</div>
+
+<p>
+ Here are some best practices for delivering a successful tablet app on Google
+ Play.
+</p>
+
+<div>
+ <img class="border-img" src="{@docRoot}images/gp-tablet-quality-5.jpg" style=
+ "1px solid #ddd">
+</div>
+
+<h4 id="google-play-optimization-tips">
+ Check out your app's Optimization Tips
+</h4>
+
+<p>The Google Play Developer Console now offers an Optimization Tips page that
+lets you quickly check how your app is doing against basic guidelines for tablet app
+distribution and quality. To visit the page, sign into the Developer Console,
+load the app from All Applications, and click Optimization Tips in
+the left navigation.</p>
+
+<div class="sidebox-wrapper">
+<div class="sidebox">
+<h2>How to send feedback</h2>
+
+<p>Please use the link below to send
+feedback or request a manual review of your Optimization Tips.</p>
+
+<p>Make sure to read the relevant sections of the Tablet App Quality
+Guidelines prior to sending feedback.</p>
+
+<p><strong><a href="https://support.google.com/googleplay/android-developer/contact/tabletq"
+target="_googleplay" style="white-space:nowrap">Designed for Tablets Contact Form &raquo;</a></strong></p>
+</div>
+</div>
+
+<p>The Developer Console creates your app's Optimization Tips page
+by running a series of checks to verify basic quality
+criteria. If it finds any issues, it alerts you to them as "To Do"
+items in the Optimization Tips page.</p>
+
+<p>If you've developed a tablet experience for your app, make sure
+to visit the Optimization Tips page to see how your app is doing
+against the basic checks. If there are any issues listed, we
+recommend addressing them in your app and uploading a new binary for
+distribution, if needed. </p>
+
+<p>If the Optimization Tips page lists "To Do" issues that you feel don't
+apply to your app or affect its quality on tablets, please notify us
+using the <a href="https://support.google.com/googleplay/android-developer/contact/tabletq"
+target="_googleplay" style="white-space:nowrap">Designed for Tablets Contact Form &raquo;</a>. We
+will review your app and update your Optimization Tips page as
+appropriate.</p>
+
+
+<h4>Confirm the app's filtering</h4>
+
+<p>
+ After you've uploaded the app to the <a href=
+ "https://play.google.com/apps/publish/">Developer Console</a>, check the
+ APK's Supported Devices list to make sure that the app is not filtered from
+ tablet devices that you want to target.
+</p>
+
+<h4>Distribute as a single APK</h4>
+
+<p>
+ It's recommended that you publish your app as a single APK for all screen
+ sizes (phones and tablets), with a single Google Play listing. This approach
+ has several important advantages.
+</p>
+
+<ul style="margin-top:.25em;">
+ <li>Easier for users to find your app from search, browsing, or promotions
+ </li>
+
+ <li>Easier for users to restore your app automatically if they get a new
+ device.
+ </li>
+
+ <li>Your ratings and download stats are consolidated across all devices.
+ </li>
+
+ <li>Publishing a tablet app in a second listing can dilute ratings for your
+ brand.
+ </li>
+</ul>
+
+<p>
+ If necessary, you can alternatively choose to deliver your app using <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.
+</p>
+
+<h3 class="clearfloat">Related resources</h3>
+<div class="resource-widget resource-flow-layout col-13"
+ data-query="collection:distribute/essentials/tabletguidelines/googleplay"
+ data-sortOrder="-timestamp"
+ data-cardSizes="9x3"
+ data-maxResults="6"></div>
+
+
+<div class="headerLine clearfloat">
+ <h1 id="test-environment">
+ Setting Up a Test Environment for Tablets
+ </h1>
+
+ <hr>
+</div>
+
+<p>
+ Assess the quality of your app on tablets — both for core app quality and
+ tablet app quality &mdash; with a suitable hardware or emulator environment
+ for testing.
+</p>
+
+<p>
+ Compared to the <a href=
+ "{@docRoot}distribute/essentials/quality/core.html#test-environment">recommended
+ test environment</a> for testing against the core app quality criteria,
+ include mid-size tablets and tablets with more or fewer hardware/software
+ features.
+</p>
+
+<p class="table-caption"><strong>Table 1</strong>. A typical tablet test environment might
+include one or two devices from each row in the table below, with one of the
+listed platform versions, screen configurations, and hardware feature configurations.</p>
+
+<table>
+<tr>
+<th>Type</th>
+<th>Size</th>
+<th>Density</th>
+<th>Version</th>
+<th>AVD Skin</th>
+</tr>
+
+<tr>
+<td>7-inch tablet</td>
+<td><span style="white-space:nowrap"><code>large</code> or</span><br /><code>-sw600</code></td>
+<td><code>hdpi</code>,<br /><code>tvdpi</code></td>
+<td>Android 4.0+ (API level 14 and higher)</td>
+<td>WXGA800-7in</td>
+</tr>
+<tr>
+<td><span style="white-space:nowrap">10-inch</span> tablet</td>
+<td><span style="white-space:nowrap"><code>xlarge</code> or</span><br /><code>-sw800</code></td>
+<td><code>mdpi</code>,<br /><code>hdpi</code>,<br /><code>xhdpi</code></td>
+<td>Android 3.2+ (API level 13 and higher)</td>
+<td>WXGA800</td>
+</tr>
+</table>
+
+<div class="headerLine clearfloat"><h1 id="related-resources">Related Resources</h1><hr></div>
+
+<div class="resource-widget resource-flow-layout col-13"
+ data-query="collection:distribute/essentials/tabletguidelines"
+ data-sortOrder="-timestamp"
+ data-cardSizes="9x3"
+ data-maxResults="6"></div> \ No newline at end of file