Google Play Submission
Request only the absolute minimum permissions needed for core functionality
Do not request permissions to access sensitive data or services that cost the users unless related to a core capability of the app.
App functions normally when installed on SD card (if supported by app).
Its recommended that Apps larger than 10 MB should support installation to SD card.
Audio does not play when the screen is off, unless this is a core feature
Audio does not play behind the lock screen, unless this is a core feature
Audio does not play on the home screen or over another app, unless this is a core feature
Audio resumes when the app returns to the foreground, or indicates to the user that playback is in a paused state.
UI and Graphics
App supports both landscape and portrait orientations(if possible).
Orientations expose largely the same features and actions and preserve functional parity.
App uses the whole screen in both orientations and does not letterbox to account for orientation changes.
App correctly handles rapid transitions between display orientations without rendering problems.
App should not leave any services running when the app is in the background, unless related to a core capability of the app.
App correctly preserves and restores user or app state
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.
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.
When the app is relaunched from Home or All Apps, the app restores the app state as closely as possible to the previous state.
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.
Performance and Stability
App should not crash, force close, freeze.
App should not function abnormally on any targeted device.
App must load quickly or provides onscreen feedback to the user (with a spinner) if it takes more than 2 seconds to load.
With StrictMode enabled - no red flashes are visible when exercising the app.
Music and video playback is smooth, without crackle, stutter, or other artifacts, during normal app usage and load
No aliasing at the edges of menus, buttons, and other UI elements is visible.
App provides high-quality graphics for all targeted screen sizes and form factors, including for larger-screen devices such as tablets.
App displays graphics, text, images, and other UI elements without noticeable distortion, blurring, or pixelation
App displays text and text blocks in an acceptable manner.
Composition is acceptable in all supported form factors, including for larger-screen devices such as tablets.
No cut-off letters or words are visible.
No improper word wraps within buttons or icons are visible.
Sufficient spacing between text and surrounding elements.
App strictly adheres to the terms of the Google Play Developer Content Policy and does not offer inappropriate content, does not use intellectual property or brand of others, and so on.
App maturity level is set appropriately, based on the Content Rating Guidelines.
Especially, note that apps that request permission to use the device location cannot be given the maturity level "Everyone".
App Details Page
App feature graphic follows the guidelines
The app listing includes a high-quality feature graphic.
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.
The feature graphic does not resemble an advertisement.
App screenshots and videos do not show or reference non-Android devices.
App screenshots or videos do not represent the content and experience of your app in a misleading way.
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.
Visual design and UI
Follow Android Design guidelines
Use common UI patterns and icons
Do not redefine the expected function of a system icon
Do not replace a system icon with a completely different icon if it triggers the standard UI behavior
The customized version of a standard system should resemble the system icon and trigger the standard system behavior.
Do not redefine or misuse Android UI patterns which may mislead the user
Do not make use of any custom on-screen "Back button"
Clear understanding of Up vs Back button
All dialogs should be dismissable using the Back button
Pressing the Home button must navigates to the Home screen of the device.
Follow Android Design guidelines
Multiple notifications are stacked into a single notification object.
Notifications are persistent only if related to ongoing events (such as music playback or a phone call).
Notifications do not contain ad or unrelated stuff (unless the user has opted in)
Indicate a change in context relating to the user personally (such as an incoming message)
Expose information/controls relating to an ongoing event (such as music playback or a phone call).
Test Procedures(Core suit)
Navigate to all parts of the app — all screens, dialogs, settings, and all user flows.
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.
While using the app, introduce transient changes in network connectivity, battery function, GPS or location availability, system load, and so on.
From each app screen, press the device's Home key, then re-launch the app from the All Apps screen.
From each app screen, switch to another running app and then return to the app under test using the Recents app switcher.
From each app screen (and dialogs), press the Back button
From each app screen, rotate the device between landscape and portrait orientation at least three times.
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.
Press the power button to put the device to sleep, then press the power button again to awaken the screen.
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.
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.
For devices that have an external display port, plug-in the external display.
Trigger and observe in the notications drawer all types of notifications that the app can display. Expand notifications where applicable.
Examine the permissions requested by the app by going to Settings > App Info
More Test procedures
Install on SD
Repeat Core Suite with app installed to device SD card (if supported by app).
Repeat Core Suite with hardware acceleration enabled. ( hardware-accelerated="true" to the <application> in the app manifest and recompile)
Repeat Core Suite with StrictMode profiling enabled
Sign into the Developer Console to review your developer profile, app description, screenshots, feature graphic, maturity settings, and user feedback.
Download your feature graphic and screenshots and scale them down to match the display sizes on the devices and form factors you are targeting.
Review all graphical assets, media, text, code libraries, and other content packaged in the app or expansion file download.
Navigate to all screens of your app and enter all in-app purchase flows.