Home | History | Annotate | Download | only in quality
      1 page.title=Tablet App Quality Checklist
      2 @jd:body
      3 
      4 <div id="qv-wrapper"><div id="qv">
      5 <h2>Checklist</h2>
      6 <ol>
      7 
      8 <li><a href="#core-app-quality">1. Test for Basic Tablet App Quality</a></li>
      9 <li><a href="#optimize-layouts">2. Optimize your layouts</a></li>
     10 <li><a href="#use-extra-space">3. Use the extra screen area</a></li>
     11 <li><a href="#use-tablet-icons">4. Use assets designed for tablets</a></li>
     12 <li><a href="#adjust-font-sizes">5. Adjust fonts and touch targets</a></li>
     13 <li><a href="#adjust-widgets">6. Adjust homescreen widgets</a></li>
     14 <li><a href="#offer-full-feature-set">7. Offer the app's full feature set</a></li>
     15 <li><a href="#android-versions">8. Target Android versions properly</a></li>
     16 <li><a href="#hardware-requirements">9. Declare dependencies properly</a></li>
     17 <li><a href="#support-screens">10. Declare tablet screens support</a></li>
     18 <li><a href="#google-play">11. Showcase your tablet UI</a></li>
     19 <li><a href="#google-play-best-practices">12. Follow publishing best practices</a></li>
     20 
     21 </ol>
     22 <h2>Testing</h2>
     23 <ol>
     24 <li><a href="#test-environment">Setting Up a Test Environment</a></li>
     25 </ol>
     26 </div></div>
     27 
     28 <p>Before you publish an app on Google Play, it's important to make sure that the app meets the basic expectations of tablet users through compelling features and an intuitive, well-designed UI. </p>
     29 
     30 <p>Tablets are a growing part of the Android installed base that offers new
     31 opportunities for <a
     32 href="{@docRoot}distribute/googleplay/spotlight/tablets.html">user engagement
     33 and monetization</a>. If your app is targeting tablet users, this document helps
     34 you focus on key aspects of quality, feature set, and UI that can have a
     35 significant impact on the app's success. Each focus area is given as checklist
     36 item, with each one comprising several smaller tasks or best practices.</p>
     37 
     38 <p>Although the checklist tasks below are numbered for convenience, 
     39 you can handle them in any order and address them to the extent that you feel
     40 is right for your app. In the interest of delivering the best possible product
     41 to your customers, follow the checklist recommendations
     42 to the greatest extent possible. </p>
     43 
     44 <p>As you move through the checklist, you'll find links to support resources
     45 that can help you address the topics raised in each task.</p>
     46 
     47 
     48 <h2 id="core-app-quality" style="margin-top:1.5em;">1. Test for basic tablet app quality</h2>
     49 
     50 <p>The first step in delivering a great tablet app experience is making sure
     51 that it meets the <em>core app quality criteria</em> for all of the devices
     52 and form factors that the app is targeting. For complete information, see the <a
     53 href="{@docRoot}distribute/googleplay/quality/core.html">Core App Quality Guidelines</a>. 
     54 </p>
     55 
     56 <p>
     57   Before publishing, also ensure that your app passes several basic
     58   technical checks and launch criteria, such as:
     59 </p>
     60 
     61 <ul>
     62   <li><a href="#android-versions">Targets appropriate Android versions</a></li>
     63   <li><a href="#hardware-requirements">Specifies any hardware dependencies properly</a></li>
     64   <li><a href="#support-screens">Declares support for appropriate screens</a></li>
     65   <li><a href="#use-extra-space">Uses all of the available screen space</a></li>
     66   <li><a href="#google-play">Screenshots are uploaded to Google Play</a></li>
     67 </ul>
     68 
     69 <p>If your app is already uploaded to the Google Play Developer Console, you
     70   can see how it is doing against these checks  
     71   by visiting the <a href="#google-play-optimization-tips">Optimization
     72   Tips page</a>.</p>
     73 
     74 
     75 <h2 id="optimize-layouts">2. Optimize your layouts for larger screens</h2>
     76 
     77 <p>Android makes it easy to develop an app that runs well on a wide range of
     78 device screen sizes and form factors. This broad compatibility works in your
     79 favor, since it helps you design a single app that you can distribute widely to
     80 all of your targeted devices. However, to give your users the best possible
     81 experience on each screen configuration &mdash; in particular on tablets
     82 &mdash; you need to optimize your layouts and other UI components for each
     83 targeted screen configuration. On tablets, optimizing your UI lets you take
     84 full advantage of the additional screen available, such as to offer new features,
     85 present new content, or enhance the experience in other ways to deepen user
     86 engagement.</p>
     87 
     88 <p>If you developed your app for handsets and now want to distribute it to
     89 tablets, you can start by making minor adjustments to your layouts, fonts, and
     90 spacing. In some cases &mdash; such as for 7-inch tablets or for a game with
     91 large canvas &mdash; these adjustments may be all
     92 you need to make your app look great. In other cases, such as for larger
     93 tablets, you can redesign parts of your UI to replace "stretched UI" with an
     94 efficient multipane UI, easier navigation, and additional content. </p>
     95 
     96 <p>Here are some suggestions:</p>
     97 
     98 <div style="width:390px;float:right;margin:1.5em;margin-top:0em;">
     99 <img src="{@docRoot}images/training/app-navigation-multiple-sizes-multipane-bad.png"
    100 style="width:390px;padding:4px;margin-bottom:0em;">
    101 <p class="image-caption" style="padding:0em .5em .5em 2em"><span
    102 style="font-weight:500;">Get rid of "stretched" UI</span>: On tablets, single-pane
    103 layouts lead to awkward whitespace and excessive line lengths. Use padding to
    104 reduce the width of UI elements and consider using multi-pane layouts.</p>
    105 </div>
    106 
    107 <ul>
    108 <li>Provide custom layouts as needed for <code>large</code> and
    109 <code>xlarge</code> screens. You can also provide layouts that are loaded based
    110 on the screen's <a href="{@docRoot}guide/practices/screens_support.html#NewQualifiers">shortest
    111 dimension</a> or the <a href="{@docRoot}guide/practices/screens_support.html#NewQualifiers">minimum
    112 available width and height</a>. </li>
    113 <li>At a minimum, customize dimensions such as font sizes, margins, spacing for
    114 larger screens, to improve use of space and content legibility. </li>
    115 <li>Adjust positioning of UI controls so that they are easily accessible to
    116 users when holding a tablet, such as toward the sides when in
    117 landscape orientation.</li>
    118 <li>Padding of UI elements should normally be larger on tablets than on handsets. A
    119 <a href="{@docRoot}design/style/metrics-grids.html#48dp-rhythm">48dp rhythm</a> (and a 16dp
    120 grid) is recommended.</li>
    121 <li>Adequately pad text content so that it is not aligned directly along screen edges.
    122 Use a minimum <code>16dp</code> padding around content near screen edges.</li>
    123 </ul>
    124 
    125 <p>In particular, make sure that your layouts do not appear "stretched"
    126 across the screen:</p>
    127 
    128 <ul>
    129 <li>Lines of text should not be excessively long &mdash; optimize for a maximum
    130 100 characters per line, with best results between 50 and 75.</li>
    131 <li>ListViews and menus should not use the full screen width.</li>
    132 <li>Use padding to manage the widths of onscreen elements or switch to a
    133 multi-pane UI for tablets (see next section).</li>
    134 </ul>
    135 
    136 <div class="rel-resources">
    137   <h3>
    138     Related resources
    139   </h3>
    140 
    141   <ul>
    142     <li>
    143       <a href=
    144       "{@docRoot}design/style/metrics-grids.html">Metrics
    145       and Grids</a>&mdash;Android Design document that explains how to create
    146       layouts based on density-independent grids.
    147     </li>
    148 
    149     <li>
    150       <a href=
    151       "{@docRoot}design/style/devices-displays.html">Devices
    152       and Displays</a>&mdash;Android Design document that explains how to
    153       design a UI that works well on different devices and
    154       screen sizes.
    155     </li>
    156 
    157     <li>
    158       <a href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple
    159       Screens</a>&mdash;Developer documentation that explains the details of
    160       managing UI for best display on multiple screen sizes.
    161     </li>
    162 
    163     <li>
    164       <a href=
    165       "{@docRoot}guide/practices/screens_support.html#ConfigurationExamples">
    166       Configuration examples</a>&mdash;Examples of how to declare layouts and
    167       other resources for specific screen sizes.
    168     </li>
    169   </ul>
    170 </div>
    171 
    172 
    173 <h2 id="use-extra-space">3. Take advantage of extra screen area available on tablets</h2>
    174 
    175 <div style="width:290px;float:right;margin:1.5em;margin-bottom:0;margin-top:0;">
    176 <img src="{@docRoot}images/training/app-navigation-multiple-sizes-multipane-good.png"
    177 style="width:280px;padding:4px;margin-bottom:0em;">
    178 <p class="image-caption" style="padding:0em .5em .5em 1.5em"><span
    179 style="font-weight:500;">Multi-pane layouts</span> result in a better visual
    180 balance on tablet screens, while offering more utility and legibility.</p>
    181 </div>
    182 
    183 <p>Tablet screens provide significantly more screen real estate to your app,
    184 especially when in landscape orientation. In particular, 10-inch tablets offer a
    185 greatly expanded  area, but even 7-inch tablets give you more space for
    186 displaying content and engaging users. </p>
    187 
    188 <p>As you consider the UI of your app when running on tablets, make sure that it
    189 is taking full advantage of extra screen area available on tablets. Here are
    190 some suggestions:</p>
    191 
    192 <ul>
    193 <li>Look for opportunities to include additional content or use an alternative
    194 treatment of existing content.</li>
    195 <li>Use <a href="{@docRoot}design/patterns/multi-pane-layouts.html">multi-pane
    196 layouts</a> on tablet screens to combine single views into a compound view. This
    197 lets you use the additional screen area more efficiently and makes it easier for
    198 users to navigate your app. </li>
    199 <li>Plan how you want the panels of your compound views to reorganize when
    200 screen orientation changes.</li>
    201 
    202 <div style="width:490px;margin:1.5em auto 1.5em 0;">
    203 <div style="">
    204 <img src="{@docRoot}images/ui-ex-single-panes.png"
    205 style="width:490px;padding:4px;margin-bottom:0em;" align="middle">
    206 <img src="{@docRoot}images/ui-ex-multi-pane.png" style="width:490px;padding:4px;margin-bottom:0em;">
    207 <p class="image-caption" style="padding:.5em"><span
    208 style="font-weight:500;">Compound views</span> combine several single views from a
    209 handset UI <em>(above)</em> into a richer, more efficient UI for tablets
    210 <em>(below)</em>. </p>
    211 </div>
    212 </div>
    213 
    214 <li>While a single screen is implemented as an {@link android.app.Activity}
    215 subclass, consider implementing individual content panels as {@link
    216 android.app.Fragment} subclasses. This lets you
    217 maximize code reuse across different form factors and across screens that
    218 share content.</li>
    219 <li>Decide on which screen sizes you'll use a multi-pane UI, then provide the
    220 different layouts in the appropriate screen size buckets (such as
    221 <code>large</code>/<code>xlarge</code>) or minimum screen widths (such as
    222 <code>sw600dp</code>/<code>sw720</code>).</li>
    223 </ul>
    224 
    225 <div class="rel-resources">
    226   <h3>
    227     Related resources
    228   </h3>
    229 
    230   <ul>
    231     <li>
    232       <a href="{@docRoot}design/patterns/multi-pane-layouts.html">Multi-pane
    233       Layouts</a>&mdash;Android Design guide for using multi-pane UI, including
    234       examples of how to flatten navigation and integrate more content into
    235       your tablet UI.
    236     </li>
    237 
    238     <li>
    239       <a href=
    240       "{@docRoot}training/design-navigation/multiple-sizes.html">Planning for Multiple
    241       Touchscreen Sizes</a>&mdash;Android Training class that walks you through
    242       the essentials of planning an intuitive, effective navigation for tablets
    243       and other devices.
    244     </li>
    245 
    246     <li>
    247       <a href="{@docRoot}training/multiscreen/index.html">Designing for
    248       Multiple Screens</a>&mdash;Android Training class that walks you through
    249       the essentials of planning an intuitive, effective navigation for tablets
    250       and other devices.
    251     </li>
    252   </ul>
    253 </div>
    254 
    255 
    256 <h2 id="use-tablet-icons">4. Use Icons and other assets that are designed
    257 for tablet screens</h2>
    258 
    259 <p>To ensure your app looks its best, provide icons and other bitmap
    260 assets for each density in the range commonly supported by tablets. Specifically, you should
    261 design your icons for the action bar, notifications, and launcher according to the
    262 <a href="{@docRoot}design/style/iconography.html">Iconography</a> guidelines and
    263 provide them in multiple densities, so they appear at the appropriate size on all screens
    264 without blurring or other scaling artifacts.</p>
    265 
    266 <p class="table-caption"><strong>Table 1</strong>. Raw asset sizes for icon types.<table>
    267 <tr>
    268 <th>Density</th>
    269 <th>Launcher</th>
    270 <th>Action Bar</th>
    271 <th>Small/Contextual</th>
    272 <th>Notification</th>
    273 </tr>
    274 <tr>
    275 <td><code>mdpi</code></td>
    276 <td>48x48 px</td>
    277 <td>32x32 px</td>
    278 <td>16x16 px</td>
    279 <td>24x24 px</td>
    280 </tr>
    281 <tr>
    282 <td><code>hdpi</code></td>
    283 <td>72x72 px</td>
    284 <td>48x48 px</td>
    285 <td>24x24 px</td>
    286 <td>36x36 px</td>
    287 </tr>
    288 <tr>
    289 <td><code>tvdpi</code></td>
    290 <td><em>(use hdpi)</em></td>
    291 <td><em>(use hdpi)</em></td>
    292 <td><em>(use hdpi)</em></td>
    293 <td><em>(use hdpi)</em></td>
    294 </tr>
    295 <tr>
    296 <td><code>xhdpi</code></td>
    297 <td>96x96 px</td>
    298 <td>64x64 px</td>
    299 <td>32x32 px</td>
    300 <td>48x48 px</td>
    301 </tr>
    302 <tr>
    303 <td><code>xxhdpi</code></td>
    304 <td>144x144 px</td>
    305 <td>96x96 px</td>
    306 <td>48x48 px</td>
    307 <td>72x72 px</td>
    308 </tr>
    309 
    310 </table>
    311 
    312 <p>Your app should supply a version of each icon and bitmap asset that's optimized
    313 for <strong>at least one</strong> the following common tablet screen densities:</p>
    314 
    315 <ul>
    316   <li><code>hdpi</code></li>
    317   <li><code>xhdpi</code></li>
    318   <li><code>xxhdpi</code></li>
    319 </ul>
    320 
    321 <p>Other tips:</p>
    322 
    323 <ul>
    324 <li>When possible, use vector shapes for your icon designs so you can scale them
    325 without loss of detail and edge crispness.</li>
    326 <li>Use density-specific <a
    327 href="{@docRoot}guide/topics/resources/providing-resources.html#AlternativeResources">
    328 resource qualifiers</a> to ensure that the proper icons are loaded for each screen density.</li>
    329 <li>Tablets and other large screen devices often request a launcher icon that is one density
    330 size larger than the device's actual density, so you should provide your launcher
    331 icon at the highest density possible. For example, if a tablet has an {@code xhdpi} screen,
    332 it will request the {@code xxhdpi} version of the launcher icon.</li>
    333 </ul>
    334 
    335 <div class="rel-resources">
    336   <h3>
    337     Related resources
    338   </h3>
    339 
    340   <ul>
    341     <li>
    342       <a href="{@docRoot}design/style/iconography.html">Iconography</a>&mdash;
    343       Design guidelines and tips about how to create various types of icons.
    344     </li>
    345 
    346     <li>
    347       <a href=
    348       "{@docRoot}guide/topics/resources/providing-resources.html">Providing
    349       Resources</a>&mdash;Developer documentation on how to provide
    350       sets of layouts and drawable resources for specific ranges of device
    351       screens.
    352     </li>
    353 
    354     <li>
    355       <a href="{@docRoot}guide/practices/screens_support.html">Supporting
    356       Multiple Screens</a>&mdash;API Guide documentation that
    357       explains the details of managing UI for best display on multiple screen
    358       sizes.
    359     </li>
    360 
    361     <li>
    362       <a href=
    363       "{@docRoot}training/basics/supporting-devices/screens.html">Supporting Different
    364       Screens</a>&mdash;Android Training class that takes you
    365       through the process of optimizing the user experience for different
    366       screen sizes and densities.
    367     </li>
    368   </ul>
    369 </div>
    370 
    371 
    372 <h2 id="adjust-font-sizes">5. Adjust font sizes and touch targets for tablet screens</h2>
    373 
    374 <p>To make sure your app is easy to use on tablets, take some time to adjust the
    375 font sizes and touch targets in your tablet UI, for all of the screen
    376 configurations you are targeting. You can adjust font sizes through <a
    377 href="{@docRoot}guide/topics/ui/themes.html">styleable attributes</a> or <a
    378 href="{@docRoot}guide/topics/resources/more-resources.html#Dimension">dimension
    379 resources</a>, and you can adjust touch targets through layouts and bitmap
    380 drawables, as discussed above. </p>
    381 
    382 <p>Here are some considerations:</p>
    383 <ul>
    384 <li>Text should not be excessively large or small on tablet screen sizes and
    385 densities. Make sure that labels are sized appropriately for the UI elements they
    386 correspond to, and ensure that there are no improper line breaks in labels,
    387 titles, and other elements.</li>
    388 <li>The recommended touch-target size for onscreen elements is 48dp (32dp
    389 minimum) &mdash; some adjustments may be needed in your tablet UI. Read <a
    390 href="{@docRoot}design/style/metrics-grids.html">Metrics and
    391 Grids
    392 </a> to learn about implementation strategies to help most of your users. To
    393 meet the accessibility needs of certain users, it may be appropriate to use
    394 larger touch targets. </li>
    395 <li>When possible, for smaller icons, expand the touchable area to more than
    396 48dp using {@link android.view.TouchDelegate}
    397 or just centering the icon within the transparent button.</li>
    398 </ul>
    399 
    400 <div class="rel-resources">
    401   <h3>
    402     Related resources
    403   </h3>
    404 
    405   <ul>
    406     <li>
    407       <a href=
    408       "{@docRoot}design/style/metrics-grids.html">Metrics
    409       and Grids</a> &mdash;Android Design document that explains how to arrange
    410       and size touch targets and other UI elements on the screen.
    411     </li>
    412 
    413     <li>
    414       <a href="{@docRoot}design/style/typography.html">Typography</a>&mdash;Android
    415       Design document that gives an overview of how to use typography in your
    416       apps.
    417     </li>
    418 
    419     <li>
    420       <a href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple
    421       Screens</a>&mdash;Developer documentation that explains the details of
    422       managing UI for best display on multiple screen sizes.
    423     </li>
    424 
    425     <li>
    426       <a href="{@docRoot}training/multiscreen/screendensities.html">Supporting
    427       Different Densities</a>&mdash;Android Training class that shows you how
    428       to provide sets of layouts and drawable resources for specific ranges of
    429       device screens.
    430     </li>
    431   </ul>
    432 </div>
    433 
    434 
    435 <h2 id="adjust-widgets">6. Adjust sizes of home screen widgets for tablet screens</h2>
    436 
    437 <p>If your app includes a home screen widget, here are a few points to consider
    438 to ensure a great user experience on tablet screens: </p>
    439 
    440 <ul>
    441 <li>Make sure that the widget's default height and width are set appropriately
    442 for tablet screens, as well as the minimum and maximum resize height and width.
    443 </li>
    444 <li>The widget should be resizable to 420dp or more, to span 5 or more home
    445 screen rows (if this is a vertical or square widget) or columns (if this is a
    446 horizontal or square widget). </li>
    447 <li>Make sure that 9-patch images render correctly.</li>
    448 <li>Use default system margins.</li>
    449 <li>Set the app's <code>targetSdkVersion</code> to 14 or higher, if
    450 possible.</li>
    451 </ul>
    452 
    453 <div class="rel-resources">
    454   <h3>
    455     Related resources
    456   </h3>
    457 
    458   <ul>
    459     <li>
    460       <a href="{@docRoot}guide/topics/appwidgets/index.html#MetaData">Adding the
    461       AppWidgetProviderInfo Metadata</a> &mdash;API Guide that explains how to
    462       set the height and width dimensions of a widget.
    463     </li>
    464 
    465     <li>
    466       <a href="{@docRoot}guide/practices/ui_guidelines/widget_design.html">App Widget
    467       Design Guidelines</a>&mdash;API Guide that provides best practices and
    468       techniques for designing and managing the size of widgets.
    469     </li>
    470   </ul>
    471 </div>
    472 
    473 
    474 <h2 id="offer-full-feature-set">7. Offer the app's full feature set to tablet users</h2>
    475 
    476 <p>Let your tablet users experience the best features of your app. Here are
    477 some recommendations:</p>
    478 
    479 <ul>
    480 <li>Design your app to offer at least the same set of features on tablets as it does on
    481 handsets. </li>
    482 <li>In exceptional cases, your app might omit or replace certain features on
    483 tablets if they are not supported by the hardware or use-case of most tablets.
    484 For example:
    485 <ul>
    486 <li>If the handset uses telephony features but telephony is not available on the
    487 current tablet, you can omit or replace the related functionality.</li>
    488 <li>Many tablets have a GPS sensor, but most users would not normally carry
    489 their tablets while running. If your phone app provides functionality to let the
    490 user record a GPS track of their runs while carrying their phones, the app would not need to
    491 provide that functionality on tablets because the use-case is not
    492 compelling.</li>
    493 </ul>
    494 </li>
    495 <li>If you will omit a feature or capability from your tablet UI, make sure
    496 that it is not accessible to users or that it offers graceful degradation
    497 to a replacement feature (also see the section below on hardware features).</li>
    498 </ul>
    499 
    500 <h2 id="android-versions">8. Target Android versions properly</h2>
    501 
    502 <p>To ensure the broadest possible distribution to tablets, make sure that your
    503 app properly targets the Android versions that support tablets. Initial support for
    504 tablets was added in <a href="{@docRoot}about/versions/android-3.0.html">Android 3.0</a>
    505 (API level 11). Unified UI
    506 framework support for tablets, phones, and other devices was introduced in <a
    507 href="{@docRoot}about/versions/android-4.0.html">Android 4.0</a> (API level 14) and is
    508 supported in later versions.
    509 
    510 <p>You can set the app's
    511 range of targeted Android versions in the manifest file, in the
    512 <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>
    513 
    514 <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>
    515   element to make sure that:</p>
    516 
    517       <ol style="list-style-type:lower-alpha;margin-top:0em;">
    518         <li><code>targetSdkVersion</code> is declared with value 11 or higher (14 or higher is recommended), OR</li>
    519         <li><code>minSdkVersion</code> is declared with value 11 or higher.</li>
    520         <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>
    521 </ol>
    522 
    523 <div class="rel-resources">
    524 <h3>
    525   Related resources
    526 </h3>
    527 
    528 <ul>
    529   <li>
    530     <a href=
    531     "{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels">Android API
    532     Levels</a>&mdash;Introduces API levels and how they relate to compatibility.
    533     A reference of available API levels is included.
    534   </li>
    535   <li>
    536     <a href="{@docRoot}training/basics/supporting-devices/platforms.html">Supporting Different Platform Versions</a>&mdash;Training class showing how to declare support for
    537     minimum and target API levels in your app. 
    538   </li>
    539 </ul>
    540 </div>
    541 
    542 <h2 id="hardware-requirements">9. Declare hardware feature dependencies properly</h2>
    543 
    544 <p>
    545   Handsets and tablets typically offer slightly different hardware support for
    546   sensors, camera, telephony, and other features. For example, many tablets are
    547   available in a "Wi-Fi" configuration that does not include telephony support.
    548 </p>
    549 
    550 <p>
    551   So that you can distribute a single APK broadly across your full customer
    552   base of phones and tablets, make sure that your app doesn't declare
    553   requirements for hardware features that aren't commonly available on tablets.
    554   Instead, properly declare the hardware features as <em>not required</em> in the app
    555   manifest, as described below.
    556 </p>
    557 
    558 <ul>
    559 <li>In your app manifest, locate any <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><code>&lt;uses-feature&gt;</code></a>
    560 elements. In particular, look for hardware features that might not be
    561 available on some tablets, such as:
    562 
    563 <ul>
    564 <li><code>android.hardware.telephony</code></li>
    565 <li><code>android.hardware.camera</code> (refers to back camera), or</li>
    566 <li><code>android.hardware.camera.front</code></li>
    567 </ul></li>
    568 
    569 <li>Declare the <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><code>&lt;uses-feature&gt;</code></a>
    570 elements as <em>not required</em> by including the <code>android:required=false</code>
    571 attribute.
    572 
    573 <p>
    574   For example, here's the proper way to declare a dependency on
    575   <code>android.hardware.telephony</code>, such that you can still
    576   distribute the app broadly, even to devices that don't offer telephony:
    577 </p>
    578 
    579 <pre>&lt;uses-feature android:name="android.hardware.telephony" android:required="false" /&gt;</pre></li>
    580 
    581 <li>Similarly, check the manifest for <a href="/guide/topics/manifest/permission-element.html"><code>&lt;permission&gt;</code></a> elements that 
    582 <a href="/guide/topics/manifest/uses-feature-element.html#permissions">imply hardware
    583 feature requirements</a> that not be appropriate for tablets. If you find such
    584 permissions, make sure to explicitly declare a corresponding
    585 <code>&lt;uses-feature&gt;</code> element for the features and includes the
    586 <code>android:required=false</code> attribute.</li>
    587 </ul>
    588 
    589 
    590 <p>
    591   After declaring hardware features as <em>not required</em>, make sure to test
    592   your app on a variety of devices. The app should function normally when the
    593   hardware features it uses are not available, and it should offer "graceful
    594   degradation" and alternative functionality where appropriate.
    595 </p>
    596 
    597 <p>
    598   For example, if an app normally uses GPS to set the location but GPS is not
    599   supported on the device, the app could let the user set the location manually
    600   instead. The app can check for device hardware capabilities at runtime and handle
    601   as needed.
    602 </p>
    603 
    604 <div class="rel-resources">
    605 <h3>
    606   Related resources
    607 </h3>
    608 
    609 <ul>
    610   <li>
    611     <a href=
    612     "{@docRoot}guide/topics/manifest/uses-feature-element.html#permissions">Permissions
    613     that Imply Feature Requirements</a>&mdash;A list of permissions that may
    614     cause unwanted filtering if declared in your app's manifest.
    615   </li>
    616   <li>
    617     <a href=
    618     "{@docRoot}guide/topics/manifest/uses-feature-element.html"><code>&lt;uses-feature&gt;</code></a>&mdash;Description
    619     and reference documentation for the <code>&lt;uses-feature&gt;</code>
    620     manifest element.
    621   </li>
    622 
    623   <li>
    624     <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html#testing">Testing
    625     the features required by your application</a>&mdash;Description of how to
    626     determine the actual set of hardware and software requirements (explicit or
    627     implied) that your app requires.
    628   </li>
    629 </ul>
    630 </div>
    631 
    632 <h2 id="support-screens">10. Declare support for tablet screens</h2>
    633 
    634 <p>To ensure that you can distribute your app to a broad range of tablets, your app should
    635 declare support for tablet screen sizes in its manifest file, as follows:</p>
    636 
    637 <ul>
    638   <li>A
    639   <a href="{@docRoot}guide/topics/manifest/supports-screens-element.html"><code>&lt;supports-screens&gt;</code></a>
    640   element, if declared, must not specify <code>android:largeScreens="false"</code>
    641   or <code>android:xlargeScreens="false"</code>.</li>
    642   <li>For apps targeting <code>minSdkVersion</code> value less than 13, a
    643   <a href="{@docRoot}guide/topics/manifest/supports-screens-element.html"><code>&lt;supports-screens&gt;</code></a>
    644   element must be declared with both <code>android:largeScreens="true"</code> and
    645   <code>android:xlargeScreens="true"</code>.</li>
    646 </ul>
    647 
    648 <p>If the app declares a
    649 <a href="{@docRoot}guide/topics/manifest/compatible-screens-element.html"><code>&lt;compatible-screens&gt;</code></a>
    650 element in the manifest, the element should include attributes that specify
    651 <em>all of the size and density combinations for tablet screens</em> that the
    652 app supports. Note that, if possible, you should avoid using the
    653 <a href="{@docRoot}guide/topics/manifest/compatible-screens-element.html"><code>&lt;compatible-screens&gt;</code></a>
    654 element in your app.</p>
    655 
    656 <div class="rel-resources">
    657   <h3>
    658     Related resources
    659   </h3>
    660 
    661   <ul>
    662     <li>
    663       <a href=
    664       "{@docRoot}guide/practices/screens_support.html#DeclaringScreenSizeSupport">Declaring
    665       Screen Size Support</a>&mdash;Developer documentation that explains the
    666       details of managing UI for best display on multiple screen sizes.
    667     </li>
    668   </ul>
    669 </div>
    670 
    671 
    672 <h2 id="google-play">11. Showcase your tablet UI in Google Play</h2>
    673 
    674 <p>
    675   After you've done the work to create an rich, optimized UI for your tablet
    676   app, make sure that you let your customers know about it! Here are some key
    677   ways to promote your tablet app to users on Google Play.
    678 </p>
    679 
    680 <h4>
    681   Upload screenshots of your tablet UI
    682 </h4>
    683 
    684 <p>
    685   Tablet users want to know what your app is like on a tablet device, not on a
    686   phone. If you developed a tablet app, make sure to upload screenshots
    687   of your tablet UI to the Google Play Developer Console. Here are some guidelines:
    688   </p>
    689 
    690 <ul style="margin-top:0;">
    691   <li>Your screenshots should show the core functionality of your app, not a
    692   startup or sign-in page. Wherever users will spend most of their time, that's
    693   what you should show in your screenshots.
    694   </li>
    695 
    696   <li>Add screenshots taken on both 7-inch and 10-inch tablets.
    697   </li>
    698 
    699   <li>It's recommended that you add screenshots taken in both landscape and
    700   portrait orientations, if possible.
    701   </li>
    702 
    703   <li>Use screen captures if possible. Avoid showing actual device hardware in your
    704   screenshots.</li>
    705 
    706   <li>The recommended resolution of your tablet screenshots is <strong>1280 x 720</strong>
    707   or higher in each orientation.
    708   </li>
    709 
    710   <li>You can upload as many as 8 screenshots of your tablet UI for 7-inch tablets
    711   and an additional 8 for 10-inch tablets.
    712   </li>
    713 </ul>
    714 
    715 <h4>
    716   Update your app description and release notes
    717 </h4>
    718 
    719 <ul>
    720   <li>In your app description, make sure to highlight that your app offers
    721   tablet-optimized UI and great features for tablet users. Consider adding some
    722   detail about how your tablet UI works and why users will like it.
    723   </li>
    724 
    725   <li>Include information about tablet support in the app's release notes and
    726   update information.
    727   </li>
    728 </ul>
    729 
    730 <h4>
    731   Update your promotional video
    732 </h4>
    733 
    734 <p>
    735   Many users view an app's promotional video to get an idea of what the app is
    736   like and whether they'll enjoy it. For tablet users, capitalize on this
    737   interest by highlighting your app's tablet UI in your promotional video. Here
    738   are some tips and guidelines:
    739 </p>
    740 
    741 <ul>
    742   <li>Add one or more shots of your app running on a tablet. To engage with
    743   tablet users most effectively, it's recommended that you promote your tablet
    744   UI in approximately equal proportion to your phone UI.
    745   </li>
    746 
    747   <li>Show your tablet UI as early as possible in the video. Don't assume that
    748   tablet users will wait patiently through a feature walkthrough on a phone UI.
    749   Ideally, you should engage them immediately by showing the tablet UI within
    750   the first 10 seconds, or at the same point that you introduce the phone UI.
    751   </li>
    752 
    753   <li>To make it clear that you are showing a tablet UI, include shots of your
    754   app running on a hand-held tablet device.
    755   </li>
    756 
    757   <li>Highlight your app's tablet UI in the video's narrative or voiceover.
    758   </li>
    759 </ul>
    760 
    761 <h4>
    762   Feature your tablet UI in your promotional campaigns
    763 </h4>
    764 
    765 <p>
    766   Make sure to let tablet users know about your tablet UI in your promotional
    767   campaigns, web site, social posts, advertisements, and elsewhere. Here are
    768   some suggestions:
    769 </p>
    770 
    771 <ul>
    772   <li>Plan a marketing or advertising campaign that highlights the use of your
    773   app on tablets.</li>
    774 
    775   <li>Show your tablet app at its best in your promotional campaigns&mdash;use the <a href=
    776   "{@docRoot}distribute/promote/device-art.html">Device Art Generator</a> to
    777   quickly generate a high-quality promotional image of your app running on a
    778   7-inch or 10-inch tablet, in the orientation of your choice, with or without
    779   drop-shadow and screen glare. It's as simple as capture, drag, and drop.
    780   </li>
    781 
    782   <li>Include a Google Play badge in your online promotions to let users link
    783   directly to your app's store listing. You can generate a badge in a variety
    784   of languages using the <a href=
    785   "{@docRoot}distribute/googleplay/promote/badges.html">Badge Generator</a>.
    786   </li>
    787 </ul>
    788 
    789 <div class="rel-resources">
    790   <h3>
    791     Related resources
    792   </h3>
    793 
    794   <ul>
    795     <li>
    796       <a href="{@docRoot}distribute/googleplay/publish/preparing.html">Publishing
    797       Checklist</a>
    798       &mdash;Recommendations on how to prepare your app for publishing, test
    799       it, and launch successfully on Google Play.
    800     </li>
    801 
    802     <li>
    803       <a href="https://play.google.com/apps/publish/">Google Play
    804       Developer Console</a>&mdash;The tools console for publishing
    805       your app to Android users.
    806     </li>
    807     <li>
    808       <a href=
    809       "{@docRoot}distribute/googleplay/promote/badges.html">Google Play
    810       Badge Generator</a>&mdash;Create "Get it on Google Play" badges for your
    811       app in a variety of languages with a single click. 
    812     </li>
    813     <li>
    814       <a href=
    815       "{@docRoot}distribute/promote/device-art.html">Device Art
    816       Generator</a>&mdash;Drag and drop tool that lets you instantly create production-
    817       ready art showing your app running on a tablet device. 
    818     </li>
    819   </ul>
    820 </div>
    821 
    822 <h2 id="google-play-best-practices">12. Follow best practices for publishing in Google Play</h2>
    823 
    824 <p>Here are some best practices for delivering a successful tablet app on Google Play.</p>
    825 
    826 <h4 id="google-play-optimization-tips">Check out your app's Optimization Tips</h4>
    827 
    828 <p>The Google Play Developer Console now offers an Optimization Tips page that
    829 lets you quickly check how your app is doing against basic guidelines for tablet app
    830 distribution and quality. To visit the page, sign into the Developer Console,
    831 load the app from All Applications, and click Optimization Tips in
    832 the left navigation.</p>
    833 
    834 <div class="sidebox-wrapper">
    835 <div class="sidebox">
    836 <h2 style="line-height:1em;">How to send feedback</h2>
    837 
    838 <p>Please use the link below to send
    839 feedback or request a manual review of your Optimization Tips.</p>
    840 
    841 <p>Make sure to read the relevant sections of the Tablet App Quality
    842 Guidelines prior to sending feedback.</p>
    843 
    844 <p><strong><a href="https://support.google.com/googleplay/android-developer/contact/tabletq"
    845 target="_googleplay" style="white-space:nowrap">Designed for Tablets Contact Form &raquo;</a></strong></p>
    846 </div>
    847 </div>
    848 
    849 <p>The Developer Console creates your app's Optimization Tips page
    850 by running a series of checks to verify basic quality
    851 criteria. If it finds any issues, it alerts you to them as "To Do"
    852 items in the Optimization Tips page.</p>
    853 
    854 <p>If you've developed a tablet experience for your app, make sure
    855 to visit the Optimization Tips page to see how your app is doing
    856 against the basic checks.  If there are any issues listed, we
    857 recommend addressing them in your app and uploading a new binary for
    858 distribution, if needed. </p>
    859 
    860 <p>If the Optimization Tips page lists "To Do" issues that you feel don't
    861 apply to your app or affect its quality on tablets, please notify us
    862 using the <a href="https://support.google.com/googleplay/android-developer/contact/tabletq"
    863 target="_googleplay" style="white-space:nowrap">Designed for Tablets Contact Form &raquo;</a>. We
    864 will review your app and update your Optimization Tips page as
    865 appropriate.</p>
    866 
    867 
    868 <h4>Confirm the app's filtering</h4>
    869 
    870 <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>
    871 
    872 <h4>Distribute as a single APK</h4>
    873 
    874 <p>
    875   It's recommended that you publish your app as a single APK for all screen
    876   sizes (phones and tablets), with a single Google Play listing. This approach
    877   has several important advantages.
    878 </p>
    879 
    880 <ul style="margin-top:.25em;">
    881   <li>Easier for users to find your app from search, browsing, or promotions
    882   </li>
    883 
    884   <li>Easier for users to restore your app automatically if they get a new
    885   device.
    886   </li>
    887 
    888   <li>Your ratings and download stats are consolidated across all devices.
    889   </li>
    890 
    891   <li>Publishing a tablet app in a second listing can dilute ratings for your
    892   brand.
    893   </li>
    894 </ul>
    895 
    896 <p>
    897   If necessary, you can alternatively choose to deliver your app using <a href=
    898   "{@docRoot}google/play/publishing/multiple-apks.html">Multiple APK Support</a>,
    899   although in most cases using a single APK to reach all devices is strongly
    900   recommended.
    901 </p>
    902 
    903 <div class="rel-resources">
    904 <h3>Related resources</h3>
    905 <ul>
    906 <li><a href="{@docRoot}distribute/googleplay/publish/preparing.html">Publishing
    907       Checklist</a>&mdash;
    908   Recommendations on how to prepare your app for publishing, test it, and launch
    909   successfully on Google Play.</li>
    910 <li><a href="https://play.google.com/apps/publish/">Google Play Developer
    911   Console</a>&mdash;The tools console for publishing your app to Android users.</li>
    912 </ul>
    913 </div>
    914 
    915 
    916 <h2 id="test-environment">Setting Up a Test Environment for Tablets</h2>
    917 
    918 <p>To assess the quality of your app on tablets &mdash; both for core app quality
    919 and tablet app quality &mdash; you need to set up a suitable
    920 hardware or emulator environment for testing. </p>
    921 
    922 <p>The ideal test environment would
    923 include a small number of actual hardware devices that represent key form
    924 factors and hardware/software combinations currently available to consumers.
    925 It's not necessary to test on <em>every</em> device that's on the market &mdash;
    926 rather, you should focus on a small number of representative devices, even using
    927 one or two devices per form factor.  The table below provides an overview of
    928 devices you could use for testing.</p>
    929 
    930 <p>If you are not able to obtain actual hardware devices for testing, you should
    931 <a href="{@docRoot}tools/devices/index.html">set up emulated devices (AVDs)</a>
    932 to represent the most common form factors and
    933 hardware/software combinations. See the table below for suggestions on the emulator
    934 configurations to use. </p>
    935 
    936 <p>To go beyond basic testing, you can add more devices, more form factors, or
    937 new hardware/software combinations to your test environment. For example, you
    938 could include mid-size tablets, tablets with more or fewer hardware/software
    939 features, and so on. You can also increase the number or complexity of tests
    940 and quality criteria. </p>
    941 
    942 <p class="table-caption"><strong>Table 1</strong>. A typical tablet test environment might
    943 include one or two devices from each row in the table below, with one of the
    944 listed platform versions, screen configurations, and hardware feature configurations.</p>
    945 
    946 <table>
    947 <tr>
    948 <th>Type</th>
    949 <th>Size</th>
    950 <th>Density</th>
    951 <th>Version</th>
    952 <th>AVD Skin</th>
    953 </tr>
    954 
    955 <tr>
    956 <td>7-inch tablet</td>
    957 <td><span style="white-space:nowrap"><code>large</code> or</span><br /><code>-sw600</code></td>
    958 <td><code>hdpi</code>,<br /><code>tvdpi</code></td>
    959 <td>Android 4.0+ (API level 14 and higher)</td>
    960 <td>WXGA800-7in</td>
    961 </tr>
    962 <tr>
    963 <td><span style="white-space:nowrap">10-inch</span> tablet</td>
    964 <td><span style="white-space:nowrap"><code>xlarge</code> or</span><br /><code>-sw800</code></td>
    965 <td><code>mdpi</code>,<br /><code>hdpi</code>,<br /><code>xhdpi</code></td>
    966 <td>Android 3.2+ (API level 13 and higher)</td>
    967 <td>WXGA800</td>
    968 </tr>
    969 </table>