page.title=Core App Quality Guidelines
@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/googleplay/quality/tablet.html">Tablet App Quality Checklist</a></li>
        <li><a href="{@docRoot}distribute/googleplay/strategies/app-quality.html">Improving App Quality</a></li>
  </ol>
  

</div>
</div>

<p>App quality directly influences the long-term success of your app&mdash;in
terms of installs, user rating and reviews, engagement, and user retention.
Android users expect high-quality apps, even more so if they've spent money on
them.</p>

<p>This document helps you assess basic aspects of quality in your app through a
compact set of <em>core app quality criteria</em> and associated tests. All
Android apps should meet these criteria.</p>

<p>Before publishing your app, make sure to test it against these criteria to
ensure that it functions well on many devices, meets Android standards for
navigation and design, and is prepared for promotional opportunities in the
Google Play Store. Your testing will go well beyond what's described here&mdash;the
purpose of this document is to specify the essential characteristics
of basic quality so that you can include them in your test plans.</p>

<p>If your app is targeting tablet devices, make sure that it delivers a rich,
compelling experience to your tablet customers. See the <a
href="{@docRoot}distribute/googleplay/quality/tablet.html">Tablet App Quality
Checklist</a> for recommendations on ways to optimize your app for tablets.</p>


<h2 id="ux">Visual Design and User Interaction</h2>

<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>

<table>
<tr>
<td><p>Related resources:</p>
<ul style="margin-top:-.5em;">
<li><strong><a href="{@docRoot}design/index.html">Android Design</a></strong> &mdash; Overview of design and user experience best practices for Android apps. </li>
<li><strong><a href="{@docRoot}design/patterns/navigation.html">Navigation with Back and Up</a></strong> &mdash; Android Design document describing standard navigation patterns. </li>
<li><strong><a href="{@docRoot}design/patterns/actionbar.html">Action Bar</a></strong> &mdash; Android Design document describing how to use the Action Bar. </li>
<li><strong><a href="{@docRoot}design/style/iconography.html">Iconography</a></strong> &mdash;  Android Design describing how to use various types of icons.</li>
<li><strong><a href="{@docRoot}design/patterns/notifications.html">Notifications</a></strong> &mdash;  Android Design document describing how to design and use notifications. </li>
</ul>
</td>
</tr>
</table>

<h2 id="fn">Functionality</h2>

<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.
		</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).</em></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.</em></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>

<table>
<tr>
<td><p>Related resources:</p>
<ul style="margin-top:-.5em;">
<li><strong><a href="http://android-developers.blogspot.com/2011/11/making-android-games-that-play-nice.html">Making Android Apps that Play Nice</a></strong> &mdash; Developer blog post discussing the audio lifecycle and expected audio behaviors for Android apps. </li>
<li><strong><a href="{@docRoot}guide/components/tasks-and-back-stack.html">Tasks and Back Stack</a></strong> &mdash; Developer guide describing how to implement back-navigation.</li>
<li><strong><a href="{@docRoot}training/basics/activity-lifecycle/recreating.html">Recreating an Activity</a></strong> &mdash; Android Training class the shows how to preserve and restore app state.</li>

</ul>
</td>
</tr>
</table>


<h2 id="ps">Performance and Stability</h2>

<p>To ensure a high user rating, your app needs to perform well and stay
responsive on all of the devices and form factors and screens that it is
targeting. These criteria ensure that the app provides the basic 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/googleplay/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>

<table>
<tr>
<td><p>Related resources:</p>
<ul style="margin-top:-.5em;">
<li><strong><a href="http://android-developers.blogspot.com/2010/12/new-gingerbread-api-strictmode.html">Using StrictMode</a></strong> &mdash; Developer blog post discussing StrictMode and how to use it for performance monitoring in your app. </li>
<li><strong><a href="{@docRoot}guide/practices/responsiveness.html">Designing for Responsiveness</a></strong> &mdash; Developer guide describing best practices for keeping your app responsive.</li>
<li><strong><a href="http://android-developers.blogspot.com/2010/07/multithreading-for-performance.html">Multithreading for Performance</a></strong> &mdash; Developer blog post discussing ways to improve performance through multi-threading.</li>
</ul>
</td>
</tr>
</table>


<h2 id="listing">Google Play</h2>

<p>To launch your app successfully on Google Play, raise its ratings, and make
sure that it is ready for promotional activities in the store, follow the
criteria below.</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>

<table>
<tr>
<td><p>Related resources:</p>
<ul style="margin-top:-.5em;">
<li><strong><a href="https://play.google.com/apps/publish/">Publishing Checklist</a></strong> &mdash; Recommendations on how to prepare your app for publishing, test it, and launch successfully on Google Play.</li>
<li><strong><a href="http://play.google.com/about/developer-content-policy.html">Google Play Developer Program Policies</a></strong> — Guidelines for what is acceptable conent in Google Play. Please read and understand the and understand the policies before publishing.</p>
<li><strong><a href="http://support.google.com/googleplay/android-developer/bin/answer.py?hl=en&amp;answer=188189">Rating your application content for Google Play</a></strong> — Help Center document describing content ratings levels and how to choose the appropriate one for your app.</li>
<li><strong><a href="http://support.google.com/googleplay/android-developer/bin/answer.py?hl=en&amp;answer=1078870">Graphic Assets for your Application
</a></strong> — Details about the graphic assets you need to upload before publishing.</li>
<li><strong><a href="http://android-developers.blogspot.com/2011/10/android-market-featured-image.html">Google Play Featured Image Guidelines
</a></strong> — Blog post discussing how to create an attractive, effective Featured Image for your app.</li>
<li><strong><a href="http://support.google.com/googleplay/android-developer/bin/answer.py?hl=en&amp;answer=113477&amp;topic=2364761&amp;ctx=topic">Supporting your users
</a></strong> — Help Center document describing options for supporting users.</li>
</ul>
</td></tr>
</table>


<h2 id="test-environment">Setting Up a Test Environment</h2>

<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
set up emulated devices (AVDs) 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>


<h2 id="tests">
  Test Procedures
</h2>

<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="core">
			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="tg3">
			<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="tg3">
			<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 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>
