Android devices come in a variety of form-factors. While phones are one of the most common device types, many other form-factors are becoming increasingly common: from tablets and Chromebooks to foldable devices. In addition, there's a great diversity of screen types and app display states.
In order to create a great experience for users no matter the device, you should review and follow the responsive layout design guidelines.
These checklists define minimum quality criteria and associated tests to help you assess the quality of your app. Some of these criteria might be easy to miss, and the tests help you remember to include them in your test plans.
Each test has a unique ID which you might find helpful to use when you communicate with your team.
Your app should fulfill the core app quality requirements. In particular, to support large screen devices, developers should pay special attentions to these three requirements in the core app quality requirements:
|UI and Graphics||VX-U1||The app supports both landscape and portrait orientations (if possible). Orientations expose largely the same features and actions and preserve functional parity. Minor changes in content or views are acceptable.|
|VX-U2||The app uses the whole screen in both orientations and does not letterbox to account for orientation changes. Minor letterboxing to compensate for small variations in screen geometry is acceptable.|
|VX-U3||The app correctly handles rapid transitions between display orientations without rendering problems or losing state.|
When setting up a test environment, we recommend testing using these Android emulators as a minimum for large screen device compatibility:
- Foldable Phone - 7.6” Fold-in with outer display
- Tablet - Pixel C 9.94"
In the worst case, large screen devices will try to run your app in compatibility mode with a system rendered letterbox. Even in this case, you should pay attention to the size of tap targets and be sure that any orientation change in your app still functions as expected.
Better: Full support for all screen types and states
These tests ensure that your app supports all screen types and states, in addition to non-trivial state transitions.
|Multi-Window and Multi-Resume||LS-M1||The app must be available to be used in Multi-Window mode. Learn how.|
|LS-M2||The app must update the UI (continue playing video, update with new messages, update download progress, etc) when it's not the top focused application for the user. This also includes handling the loss of exclusive resources such as camera and microphone in multi-window scenarios.|
|Continuity and Configuration Changes||LS-C1||The app must handle configuration changes and retain or restore state as the device goes through configuration changes such as folding/unfolding, window resizing, or rotation.|
|LS-C2||The app handles combinations and chains of configuration changes, such as window resizing followed by device rotation, or device rotation followed by folding/unfolding.|
|Improved App UX for Tablet, Desktop layouts||LS-U1||The app supports both portrait and landscape orientations|
|LS-U2||The app should have layouts appropriate for the larger screens. Learn how.|
|LS-U3||Modals, options menus, and other secondary elements should be formatted well on all screen types and states|
|Touch target minimum sizes||LS-T1||Touch targets should be at least 48dp. Learn how.|
|Input Support - keyboard, mouse, touch input, trackpad||LS-I1||Main user flows should support keyboard navigation, including arrow keys and tab navigation|
|LS-I2||Support keyboard shortcuts for text selection, cut/copy/paste, and undo/redo. Learn how.|
|LS-I3||The app plays/pauses multimedia playback when the spacebar key is pressed|
|LS-I4||Apps should support basic mouse/trackpad support, including scrolling and right-click handling|
Best: Differentiated experiences
These tests ensure that your app takes advantage of specific screen types or states to provide a differentiated experience.
|Multi-Instance||LS-M3||If the app launches other tasks, it should support multi-instance. Learn how.|
|Foldable posture layouts and interactions||LS-F1||When running on a foldable device, the app is usable while in tent mode and, if applicable, provides a user experience optimized for the device state|
|LS-F2||When running on a foldable device, the app is usable while in tabletop mode and, if applicable, provides a user experience optimized for the device state|
|LS-F3||When running on a foldable device, the app is usable while in book mode and, if applicable, provides a user experience optimized for the device state|
|LS-F4||If the app is a camera app, it supports Dual Display (front and back screen) preview|
|Advanced desktop layouts||LS-U4||The app includes layouts with at least one breakpoint in the 1300-1600dp window width range. Learn how.|
|Drag and drop functionality||LS-D1||Build natural drag and drop for both images and text. Learn how.|
|Stylus support||LS-S1||If the app handles free-form user input, it handles stylus input devices including different tool types and palm rejection. Learn how.|
|LS-S2||If applicable, the app handles advanced stylus input events including pressure sensitivity and tilt detection|
|Enhanced keyboard support||LS-I5||The app supports the use of keyboard modifiers, such as shift + click to select ranges of items|
|LS-I6||The app supports multi-selection with keyboard meta keys (ctrl and shift keys) and tap / trackpad / mouse click for selectable lists of items|
|Enhanced input support- mouse and trackpad||LS-I7||The app displays a scrollbar while the content is being scrolled|
|LS-I8||When the app indicates there's more content in a view than the user can see at once and a mouse or trackpad is available, the user should be able to reveal the additional material by scrolling with the input device rather than forcing a touch screen gesture.|
|LS-I9||The app uses desktop-style menus and contextual menus, when applicable|
|LS-I10||The app uses UI panels that are resizable with mouse, when applicable|
|LS-I11||When some of the content is partially hidden, extra buttons or controls are revealed on mouse hover|
|LS-I12||The app supports triple tapping on a mouse or trackpad|
|Custom cursors for mouse||LS-P1||Apps should customize cursors to show which UI elements are active and how to use them. Learn how.|