Основные руководящие принципы качества приложения

Чтобы заложить прочную основу для качественного приложения, следуйте основным рекомендациям по обеспечению качества приложений.

В рекомендациях определены минимальные требования к качеству, которым должны соответствовать все приложения.

Адаптивное качество приложения

Приложения для Android работают на самых разных устройствах — от компактных телефонов до планшетов, складных устройств, настольных компьютеров, подключенных дисплеев, автомобильных информационно-развлекательных систем, телевизоров и устройств XR. Режимы работы с окнами, такие как разделенный экран и оконный режим рабочего стола, позволяют приложениям работать в масштабируемых областях экрана.

Следуйте рекомендациям по адаптивному обеспечению качества приложений — совместно с основными рекомендациями по обеспечению качества приложений — чтобы:

  • Создавайте приложения, оптимизированные для всех форм-факторов и размеров экрана.
  • Повысьте рейтинг своих приложений в результатах поиска Google Play и Google Search.
  • Привлекайте больше пользователей и повышайте уровень их удержания.

Руководящие принципы

Следующие основные рекомендации помогут вам создать базовое, но высококачественное приложение.

пользовательский опыт

Стандартный визуальный дизайн и шаблоны взаимодействия Android обеспечивают единообразный и интуитивно понятный пользовательский опыт.

По возможности используйте компоненты Material Design для создания пользовательского интерфейса вашего приложения вместо компонентов платформы Android. Material Design обеспечивает современный внешний вид и удобство использования, а также единообразие пользовательского интерфейса во всех версиях Android.

Удобство использования

ИДЕНТИФИКАТОР Тесты Описание
Последовательный_UX T-Consistent_UX ,
T-SD_Card
Приложение обеспечивает единообразный пользовательский опыт для всех сценариев использования на всех форм-факторах.
App_Switcher T-App_Switcher ,
T-SD_Card
Приложение переходит в фоновый режим при переключении на другое приложение. Приложение возвращается на передний план при повторной активации через переключатель последних приложений.
Sleep_Resume T-Sleep_Resume ,
T-SD_Card
Когда приложение находится на переднем плане, оно приостанавливается при переходе устройства в спящий режим и возобновляет работу при выходе устройства из спящего режима.
Lock_Resume T-Lock_Resume ,
T-SD_Card
Когда приложение находится на переднем плане, оно приостанавливается при блокировке устройства и возобновляет работу при разблокировке.

Пользовательский интерфейс

ИДЕНТИФИКАТОР Тесты Описание
Display_State_Parity T-Orientation_Transitions

Ориентация экрана и состояние сворачивания отображают, по сути, одни и те же функции и действия, сохраняя при этом функциональную идентичность.

Полноэкранный режим T-Orientation_Transitions

Приложение заполняет всё окно приложения в обоих положениях и не имеет чёрных полос сверху и снизу из-за изменений в конфигурации, включая складывание и раскладывание устройства.

Незначительные черные полосы по краям изображения, компенсирующие небольшие изменения геометрии экрана, допустимы.

Ориентационные_переходы T-Orientation_Transitions Приложение обеспечивает быстрые переходы между ориентациями экрана, а также сворачивание и разворачивание устройства без проблем с отображением и без потери состояния.

Визуальное качество

ИДЕНТИФИКАТОР Тесты Описание
Графическое качество T-Graphic_Quality

Приложение отображает графику, текст, изображения и другие элементы пользовательского интерфейса без заметных искажений, размытия или пикселизации.

  • В приложении по возможности используются векторные изображения.
  • Приложение использует высококачественную графику для всех целевых размеров экрана и форм-факторов.
  • Отсутствие сглаживания по краям меню, кнопок и других элементов пользовательского интерфейса.
Длина строки Длина Т-линии Приложение обеспечивает удобочитаемость текста и текстовых блоков, ограничивая длину строки 45-75 символами (включая пробелы) для каждого из поддерживаемых приложением языков.
Theme_Support T-Theme_Support Содержимое приложения, а также весь веб-контент, к которому осуществляется доступ через приложение, поддерживают как светлую, так и темную темы оформления .
ИДЕНТИФИКАТОР Тесты Описание
Назад_Кнопка_Навигация T-Back_Nav Приложение поддерживает стандартную навигацию с помощью кнопки «Назад» и не использует никаких пользовательских подсказок на экране.
Назад_Навигация_Жестом T-Back_Nav Приложение поддерживает навигацию жестами для возврата назад и на главный экран.
Сохранение государства Сохранение T-состояния ,
T-Back_Nav

Приложение сохраняет состояние пользователя или приложения при выходе из активного режима и предотвращает случайную потерю данных из-за возврата назад и других изменений состояния.

При возвращении в активный режим приложение восстанавливает сохраненное состояние и все незавершенные транзакции, сохраняющие состояние. Примеры таких транзакций включают изменения в редактируемых полях, прогрессе игры, меню, видео и других разделах приложения.

  • При возобновлении работы приложения из меню «Недавние приложения» приложение возвращает пользователя в то же состояние, в котором оно использовалось в последний раз.
  • При возобновлении работы приложения после выхода устройства из спящего режима (блокировки) приложение возвращает пользователя в то же состояние, в котором оно использовалось в последний раз.
  • При повторном запуске приложения с главного экрана или из списка всех приложений должно произойти одно из следующих действий, в зависимости от того, сколько времени прошло с момента последнего использования приложения:
    • Если приложение использовалось в последний раз совсем недавно (несколько минут назад), восстановите его состояние максимально приближенным к предыдущему.
    • Если с момента последнего использования приложения прошло много времени, попробуйте восстановить его до состояния, максимально приближенного к предыдущему, или запустите приложение с главного экрана или из другого состояния по умолчанию.

Уведомления

ИДЕНТИФИКАТОР Тесты Описание
Качество_уведомлений T-Уведомление_Качество

Уведомления предоставляют актуальную информацию, относящуюся к вашему приложению.

  • Не используйте уведомления для перекрестной рекламы или продвижения других продуктов, так как это строго запрещено Play Store.
  • Каналы уведомлений определяются в соответствии с передовыми методами, а не предполагают рассылку всех уведомлений из одного канала.
  • Выберите правильный приоритет уведомления .
  • По возможности объединяйте несколько уведомлений в одну группу .
  • При необходимости установите тайм-ауты для уведомлений.
  • Уведомления сохраняются только в том случае, если они связаны с текущими событиями, такими как воспроизведение музыки или телефонный звонок. Для получения дополнительной информации см. раздел «Функциональность» .
Качество разговора T-Уведомление_Качество

Для мессенджеров, социальных сетей и переписки:

Доступность

ИДЕНТИФИКАТОР Тесты Описание
Размер_цели_касания T-Touch_Target_Size Минимальное расстояние между точками касания — 48 символов. См. рекомендации по макету и типографике Material Design.
Визуальный_контраст T-Визуальный_Контраст

Текст приложения и контент переднего плана сохраняют следующие коэффициенты контрастности с фоном приложения:

  • Соотношение сторон 3:1 для крупного текста и графики.
  • Соотношение 4,5:1 для мелкого текста (менее 18 пунктов или менее 14 пунктов, если текст выделен жирным шрифтом).

Узнайте больше о цвете и контрасте .

Content_Description T-Content_Description Опишите каждый элемент пользовательского интерфейса , за исключением TextView , используя contentDescription .

Функциональность

Ваше приложение должно реализовывать следующее функциональное поведение.

Аудио

ИДЕНТИФИКАТОР Тесты Описание
Начало воспроизведения аудио T-Audio_Playback_Start

Когда пользователь запускает воспроизведение аудио, приложение должно выполнить одно из следующих действий в течение одной секунды:

  • Начать воспроизведение аудио
  • Предоставьте визуальный индикатор того, что аудиоданные находятся в процессе подготовки.
Запрос на аудиофокусировку T-Audio_Focus_Request Приложение должно запрашивать фокус на аудиопотоке , когда начинается воспроизведение, и оставлять его, когда воспроизведение останавливается.
Изменение_фокуса_аудио T-Audio_Focus_Change Приложение должно обрабатывать запросы других приложений на получение аудиофокуса . Например, одно приложение может уменьшить громкость воспроизведения, когда другое приложение воспроизводит речь.
Фоновое воспроизведение аудио Фоновое воспроизведение аудиофайлов (T-Audio_Playback_Background)

Приложение должно поддерживать фоновое воспроизведение .

Приложение должно использовать службу переднего плана, чтобы предотвратить завершение процесса приложения системой после того, как оно перестанет быть видимым. Приложение также должно отображать постоянное, неотключаемое уведомление в строке состояния или на экране блокировки, чтобы сообщить пользователю о том, что приложение запущено.

Пользователи должны иметь возможность управлять воспроизведением с помощью элементов управления на экране уведомлений или блокировки, либо с помощью элементов управления на подключенном устройстве.

Стиль_уведомления_аудио T-Audio_Notification_Style Когда приложение воспроизводит аудио в фоновом режиме, оно должно создать уведомление, оформленное с помощью MediaStyle .
Возобновление воспроизведения аудио T-Audio_Playback_Resume Если приложение находится в фоновом режиме и воспроизведение звука приостановлено, воспроизведение возобновится, когда приложение вернется на передний план, или приложение должно сообщить пользователю о том, что воспроизведение приостановлено.

Видео

ИДЕНТИФИКАТОР Тесты Описание
Видео_Картинка_ T-Video_PiP Если приложение воспроизводит видео, оно должно поддерживать режим «картинка в картинке» .
Видеокодирование T-Video_Encoding Если приложение кодирует видео, оно должно использовать стандарт сжатия видео HEVC .
Фоновое изображение воспроизведения видео Фоновое изображение воспроизведения T-Video

Приложение поддерживает фоновое воспроизведение видео, когда оно не является самым верхним окном приложения, в том числе, когда окно приложения находится в следующем состоянии:

  • Минимизированный
  • За другими окнами или системным интерфейсом (например, панелью уведомлений или главным/экраном блокировки).
  • Вне видимого экрана рабочего стола

Совместное использование

ИДЕНТИФИКАТОР Тесты Описание
System_Sharesheet T-System_Sharesheet Приложение должно использовать функцию «Поделиться» в Android при обмене контентом. Приложение может предлагать целевые объекты, недоступные для пользовательских решений.

Фоновые службы

ИДЕНТИФИКАТОР Тесты Описание
Оптимизация фоновых служб T-Background_Service_Optimization

Приложение избегает запуска излишне длительных фоновых служб, обеспечивая бесперебойную работу устройства пользователя.

Примечание: Система применяет различные ограничения к фоновым службам .

Ниже приведены примеры неэффективного использования фоновых служб:

  • Поддержание сетевого соединения для уведомлений
  • Поддержание соединения Bluetooth
  • Не выключайте GPS.

Для получения более подробной информации см. Обзор фоновых задач .

Производительность и стабильность

Ваше приложение должно обеспечивать оптимальную производительность, стабильность, совместимость и быстродействие.

Производительность

ИДЕНТИФИКАТОР Тесты Описание
Время запуска приложения T-App_Startup_Time Приложение загружается быстро или отображает пользователю обратную связь на экране (индикатор прогресса или аналогичный сигнал), если загрузка приложения занимает более двух секунд.
Производительность рендеринга T-Rendering_Performance Приложение отрисовывает кадры каждые 16 (или меньше) миллисекунд, чтобы отображать не менее 60 кадров в секунду. Для получения помощи по проблемам с отрисовкой см. раздел «Медленная отрисовка» .
StrictMode_Compliance T-StrictMode_Compliance При включенном StrictMode (см. раздел тестирования в режиме StrictMode ) при тестировании приложения не отображаются красные вспышки (предупреждения о производительности, связанные с StrictMode ).

Стабильность

ИДЕНТИФИКАТОР Тесты Описание
Стабильность_ANR T-Stability_ANR Приложение не вылетает и не блокирует поток пользовательского интерфейса, вызывая ошибки ANR (Android не отвечает) . Используйте отчет Google Play перед запуском , чтобы выявить потенциальные проблемы со стабильностью. После развертывания отслеживайте страницу Android Vitals в консоли Google Play.

SDK

ИДЕНТИФИКАТОР Тесты Описание
Совместимость с платформой Android Совместимость с платформой Android (T-Android) Приложение работает на последней общедоступной версии платформы Android без сбоев и существенного влияния на основные функции.
Target_SDK_Version T-Target_SDK_Version Приложение использует последнюю версию Android SDK , необходимую для соответствия требованиям Google Play, путем установки значения targetSdk в файле build.gradle модуля приложения.
Compile_SDK_Version T-Target_SDK_Version Приложение создано с использованием последней версии Android SDK путем установки значения compileSdk в файле build.gradle модуля приложения.
SDK_Обслуживание T-SDK_Maintenance ,
T-Non_SDK_Interfaces

Все используемые SDK от Google или сторонних разработчиков должны быть актуальными. Любые улучшения этих SDK, касающиеся стабильности, совместимости или безопасности, должны быть своевременно доступны пользователям.

Для SDK от Google используйте SDK, работающие на базе сервисов Google Play, если они доступны. Эти SDK обратно совместимы, получают автоматические обновления, уменьшают размер пакета приложения и эффективно используют ресурсы устройства.

Интерфейсы, не относящиеся к SDK T-Non_SDK_Interfaces Приложение не использует интерфейсы, отличные от SDK .
Production_Build_Quality T-Production_Build_Quality В рабочую версию приложения не включены отладочные библиотеки. Включение отладочных библиотек в приложение может привести к проблемам с производительностью и безопасностью.

Батарея

ИДЕНТИФИКАТОР Тесты Описание
Управление питанием T-Power_Management

Приложение корректно поддерживает функции управления питанием Doze и App Standby .

Приложения могут запросить исключение из режима энергосбережения. См. раздел «Поддержка» для других вариантов использования в разделе «Оптимизация для Doze и режима ожидания приложений» .

Конфиденциальность и безопасность

Приложение безопасно обрабатывает пользовательские данные и личную информацию, предоставляя соответствующие уровни доступа.

Приложения, опубликованные в Google Play Store, также должны соответствовать политике Google Play в отношении пользовательских данных для защиты конфиденциальности пользователей.

Разрешения

ИДЕНТИФИКАТОР Тесты Описание
Свести_разрешения T-Minimize_Permissions Приложение запрашивает только самый минимум разрешений, необходимых для поддержки текущего сценария использования. Для некоторых разрешений, таких как местоположение, приложение, по возможности, использует приблизительное указание вместо подробного . См. раздел «Минимизируйте запросы на предоставление разрешений» .
Конфиденциальные_разрешения T-Sensitive_Permissions

Приложение запрашивает разрешение на доступ к конфиденциальным данным (например, к группам разрешений для SMS или журнала звонков , или к местоположению ) или платным услугам (например, к номеронабирателю или SMS) только в том случае, если это напрямую связано с основными сценариями использования приложения. Последствия, связанные с этими разрешениями, должны быть четко доведены до сведения пользователя.

В зависимости от того, как ваше приложение использует разрешения, может существовать альтернативный способ реализации его функциональности без необходимости доступа к конфиденциальной информации. Например, вместо запроса разрешений, связанных с контактами пользователя, используйте неявное намерение для запроса доступа.

Runtime_Permissions T-Runtime_Permissions Приложение запрашивает разрешения во время выполнения, когда запрашивается необходимая функциональность, а не во время запуска приложения.
Обоснование разрешения T-Обоснование_Разрешения В приложении чётко объясняется , почему необходимы разрешения .
Грациозная_деградация T-Graceful_Degradation Приложение корректно реагирует на отказ или отзыв разрешения со стороны пользователей. Приложение не должно полностью блокировать доступ пользователей.

Данные и файлы

ИДЕНТИФИКАТОР Тесты Описание
Хранение конфиденциальных данных T-Sensitive_Data_Storage ,
Обработка чувствительных к T данных
Все конфиденциальные данные хранятся во внутренней памяти приложения .
Ведение журнала конфиденциальных данных T-Sensitive_Data_Logging В системный журнал или журнал отдельного приложения не записываются никакие личные или конфиденциальные данные пользователей .
Идентификаторы оборудования T-Hardware_IDs Приложение не использует для идентификации никакие не сбрасываемые идентификаторы оборудования , такие как IMEI.

Личность

ИДЕНТИФИКАТОР Тесты Описание
Подсказки автозаполнения T-Autofill_Hints Приложение предоставляет подсказки для автоматического заполнения учетных данных и другой конфиденциальной информации, такой как данные кредитной карты, физический адрес и номер телефона.
Credential_Manager T-Credential_Manager Приложение интегрирует Credential Manager для Android , обеспечивая удобный процесс входа в систему и объединяя поддержку паролей, федеративной идентификации и паролей.
Биометрическая аутентификация T-Биометрическая_аутентификация Приложение поддерживает биометрическую аутентификацию для защиты финансовых транзакций или конфиденциальной информации, такой как важные документы пользователя.

Компоненты приложения

ИДЕНТИФИКАТОР Тесты Описание
Component_Export T-Component_Export

Приложение явно устанавливает атрибут android:exported для всех активностей , служб , широковещательных приемников и особенно для поставщиков контента .

Экспортируются только те компоненты приложения, которые обмениваются данными с другими приложениями , или компоненты, которые должны вызываться другими приложениями .

Component_Permissions T-Component_Permissions

Все намерения и трансляции соответствуют передовым практикам:

Component_Protection Защита Т-компонента

All components that share content between apps use android:protectionLevel="signature" for custom permissions . This includes activities , services , broadcast receivers , and especially content providers .

Приложениям не следует полагаться на доступ к списку установленных пакетов.

Сетевые технологии

ИДЕНТИФИКАТОР Тесты Описание
Сетевой_безопасный_трафик T-Network_Security_Traffic Весь сетевой трафик передается по протоколу SSL .
Конфигурация сетевой безопасности T-Network_Security_Configuration Приложение объявляет конфигурацию сетевой безопасности .
Инициализация поставщика безопасности T-Security_Provider_Initialization Если приложение использует сервисы Google Play, поставщик безопасности инициализируется при запуске приложения .

WebViews

ИДЕНТИФИКАТОР Тесты Описание
WebView_Asset_Loader T-WebView_Asset_Loader ,
T-WebView_Navigation
Не используйте setAllowUniversalAccessFromFileURLs() для доступа к локальному содержимому. Вместо этого используйте WebViewAssetLoader .
WebView_JavaScript T-WebView_JavaScript ,
T-WebView_Navigation

В веб-представлениях addJavaScriptInterface() не используется с ненадежным содержимым.

В Android 6.0 (уровень API 23 и выше) используйте вместо этого каналы сообщений HTML .

Исполнение

ИДЕНТИФИКАТОР Тесты Описание
App_Bundles T-App_Bundles

Приложение не загружает динамически код извне APK-файла. Используйте пакеты приложений Android , которые включают Play Feature Delivery и Play Asset Delivery .

Начиная с августа 2021 года, использование пакетов приложений Android App Bundles является обязательным для всех новых приложений в магазине Google Play.

Криптография

ИДЕНТИФИКАТОР Тесты Описание
Криптографические алгоритмы T-криптографические_алгоритмы Приложение использует надежные криптографические алгоритмы, предоставляемые платформой, и генератор случайных чисел . Кроме того, приложение не использует собственные алгоритмы.

Google Play

Включите публикацию вашего приложения в Google Play.

Политики

ИДЕНТИФИКАТОР Тесты Описание
Play_Content_Policies Политика T-Play в отношении контента Приложение строго соответствует условиям Политики разработчиков Google Play в отношении контента , не содержит неприемлемого контента и не использует интеллектуальную собственность или бренды других лиц.
Рейтинг_игрового_контента Политика T-Play в отношении контента Уровень зрелости приложения устанавливается в соответствии с рекомендациями по рейтингу контента .

Страница с подробной информацией о приложении

ИДЕНТИФИКАТОР Тесты Описание
Play_Feature_Graphic T-Play_Feature_Graphic ,
Графические ресурсы T-Play

Графическое представление функций приложения соответствует рекомендациям, изложенным в данной статье поддержки . Убедитесь, что:

  • В описании приложения представлен высококачественный графический материал, демонстрирующий его функциональность.
  • Графическое изображение не содержит изображений устройств, скриншотов или мелкого текста, который становится нечитаемым при уменьшении масштаба и отображении на самом маленьком экране, на который ориентировано ваше приложение.
  • Представленная иллюстрация не похожа на рекламу.
Play_Device_References Графические ресурсы T-Play На скриншотах и ​​видеороликах приложения не показаны и не упоминаются устройства, отличные от Android.
Play_Misleading_Content Графические ресурсы T-Play Скриншоты или видеоролики приложения не должны вводить в заблуждение относительно содержимого и функциональности вашего приложения.

Поддержка пользователей

ИДЕНТИФИКАТОР Тесты Описание
Отзывы пользователей Play Политика T-Play в отношении контента Ошибки, о которых сообщают пользователи во вкладке «Отзывы» на странице Google Play, устраняются, если они воспроизводимы и встречаются на многих разных устройствах. Если ошибка возникает только на нескольких устройствах, её всё равно следует устранить, особенно если эти устройства особенно популярны или являются новыми.

Тестовая среда

Настройте тестовую среду следующим образом:

  • Тестирование на эмуляторах: Эмулятор Android — отличный способ протестировать ваше приложение на разных версиях Android и разрешениях экрана. Настройте эмулируемые устройства (AVD), чтобы представить наиболее распространенные форм-факторы и комбинации аппаратного и программного обеспечения для вашей целевой аудитории. Протестируйте различные форм-факторы, используя как минимум следующие эмуляторы:

    • Складные телефоны: 7,6-дюймовый складной телефон с внешним дисплеем (этот тип телефона указан в разделе «Телефоны» в AVD Manager).
    • Планшет: Pixel C 9,94" (2560 x 1800 пикселей)
    • Тестирование уведомлений мобильного приложения: Сопряжение мобильного устройства/эмулятора с эмулятором Wear OS: Wear OS Round 1.84"
  • Аппаратные устройства: Ваша тестовая среда должна включать небольшое количество реальных аппаратных устройств, представляющих основные форм-факторы и комбинации аппаратного и программного обеспечения, доступные потребителям. Вам не нужно тестировать каждое устройство, представленное на рынке. Сосредоточьтесь на небольшом количестве репрезентативных устройств, используя даже одно или два устройства для каждого форм-фактора.

  • Тестовые лаборатории для устройств: ; Вы также можете использовать сторонние сервисы, такие как Firebase Test Lab , для тестирования вашего приложения на самых разных устройствах.

  • Тестирование на последней версии Android: Помимо тестирования репрезентативных версий Android для вашей целевой аудитории, всегда следует тестировать приложение на последней версии Android, чтобы убедиться, что последние изменения в поведении не окажут негативного влияния на пользовательский опыт.

Дополнительные рекомендации по тестированию, включая модульное тестирование, интеграционное тестирование и тестирование пользовательского интерфейса, см. в разделе «Основы тестирования приложений Android» .

Строгий режим

Для тестирования производительности включите StrictMode в вашем приложении. Используйте StrictMode для выявления операций, которые могут повлиять на производительность, доступ к сети, а также чтение и запись файлов. Ищите потенциально проблемные операции как в основном потоке, так и в других потоках.

Настройте политику мониторинга для каждого потока, используя StrictMode.ThreadPolicy.Builder , и включите весь поддерживаемый мониторинг в ThreadPolicy с помощью detectAll() .

Включите визуальное уведомление о нарушениях политики для ThreadPolicy с помощью penaltyFlashScreen() .

Тесты

Основные тесты качества приложения помогают оценить фундаментальное качество вашего приложения. Вы можете комбинировать тесты или объединять группы тестов в свой план тестирования.

пользовательский опыт

Проведите тестирование для обеспечения единообразного и интуитивно понятного пользовательского интерфейса.

Удобство использования

ИДЕНТИФИКАТОР Особенность Описание
T-Consistent_UX Последовательный_UX

Перейдите ко всем разделам приложения — всем экранам, диалогам, настройкам и всем сценариям взаимодействия с пользователем.

Выполните следующие действия:
  • Если приложение позволяет редактировать или создавать контент, играть в игры или воспроизводить медиафайлы, обязательно протестируйте эти сценарии.
  • В процессе тестирования приложения вносите прерывания от других приложений, например, при получении уведомления или телефонного звонка; и применяйте временные изменения к атрибутам устройства, таким как сетевое соединение, работа батареи, наличие GPS и системная нагрузка.
  • Проверьте и протестируйте все способы совершения покупок внутри приложения.
T-App_Switcher App_Switcher С экрана каждого приложения переключитесь на другое запущенное приложение, а затем вернитесь к тестируемому приложению, используя переключатель последних приложений.
T-Sleep_Resume Sleep_Resume Нажмите кнопку питания, чтобы перевести устройство в спящий режим, затем нажмите кнопку питания еще раз, чтобы включить экран.
T-Lock_Resume Lock_Resume Установите блокировку экрана на устройстве. Нажмите кнопку питания, чтобы перевести устройство в спящий режим (что приведет к его блокировке). Затем нажмите кнопку питания еще раз, чтобы вывести экран из спящего режима и разблокировать устройство.

SD-карта

ИДЕНТИФИКАТОР Особенность Описание
T-SD_Card Последовательный_UX

Проведите тестирование основных функций приложения, установленного на SD-карте устройства (если приложение поддерживает этот способ установки).

Чтобы переместить приложение на SD-карту, перейдите в настройки приложения.

Пользовательский интерфейс

ИДЕНТИФИКАТОР Особенность Описание
T-Orientation_Transitions Display_State_Parity ,
Fullscreen_Display ,
Ориентационные_переходы

На каждом экране приложения поворачивайте устройство не менее трех раз между альбомной и портретной ориентацией, а также в сложенном и разложенном состояниях.

Убедитесь, что приложение выполняет следующие действия:
  • Обеспечивает функциональность одинаковой во всех ориентациях экрана и состояниях сворачивания.
  • Заполняет окно приложения во всех ориентациях экрана и состояниях сворачивания, не имеет черных полос по краям.
  • Сохраняет состояние и не имеет проблем с отображением при быстрых переходах между ориентациями, а также при складывании и разворачивании устройства.

Визуальное качество

ИДЕНТИФИКАТОР Особенность Описание
T-Graphic_Quality Графическое качество Используйте все функции вашего приложения. Убедитесь, что все визуальные элементы, включая графику, текст, изображения и другие элементы пользовательского интерфейса, не искажены, не размыты и не пикселированы.
Длина Т-линии Длина строки

Проверьте все текстовые блоки в приложении. Убедитесь, что длина строки текста и текстового блока ограничена 45-75 символами (включая пробелы) для обеспечения читаемости.

Проверьте следующее:
  • Допустимый состав материала поддерживается во всех форм-факторах.
  • Буквы и слова не обрезаны.
  • Внутри кнопок и значков не допускается некорректный перенос слов.
  • Достаточное расстояние между текстом и окружающими элементами.
T-Theme_Support Theme_Support Убедитесь, что весь текст читаем в светлой и темной темах. Убедитесь, что все визуальные элементы четко различимы и эстетичны в светлой и темной темах.
ИДЕНТИФИКАТОР Особенность Описание
T-Back_Nav Назад_Кнопка_Навигация ,
Назад_Навигация_Жестом

Перейдите ко всем разделам приложения — всем экранам, диалогам, настройкам и всем сценариям взаимодействия с пользователем.

На каждом экране приложения нажмите кнопку «Назад» или используйте жест смахивания назад. Приложение должно перевести вас на предыдущий или главный экран.

T-State_Preservation Сохранение государства На экране каждого приложения нажмите кнопку «Домой» на устройстве или проведите пальцем вверх в режиме навигации жестами, затем перезапустите приложение с экрана «Все приложения» .

Уведомления

ИДЕНТИФИКАТОР Особенность Описание
T-Уведомление_Качество Качество уведомлений ,
Качество разговора
В панели уведомлений отслеживайте все типы уведомлений, которые может отображать приложение. Разверните раздел уведомлений (Android 4.1 и выше) и выберите все доступные действия.

Доступность

ИДЕНТИФИКАТОР Особенность Описание
T-Touch_Target_Size Размер_цели_касания Убедитесь, что сенсорные элементы сохраняют одинаковый, доступный размер и положение для всех размеров и конфигураций дисплеев. Для получения информации о доступности см. Сканер доступности .
T-Визуальный_Контраст Визуальный_контраст Проверьте контрастность всех визуальных элементов.
T-Content_Description Content_Description Убедитесь, что все элементы пользовательского интерфейса, кроме TextView имеют описания содержимого.

Функциональность

Убедитесь, что ваше приложение реализует следующее функциональное поведение.

Аудио

ИДЕНТИФИКАТОР Особенность Описание
T-Audio_Playback_Start Начало воспроизведения аудио Начните воспроизведение аудио. Убедитесь, что в течение одной секунды приложение начнет воспроизведение аудио или отобразит визуальный индикатор подготовки аудиоданных к воспроизведению.
T-Audio_Focus_Request Запрос на аудиофокусировку Начать воспроизведение аудио. Приложение должно запросить фокус на воспроизведение аудио . Когда воспроизведение аудио остановится, приложение должно освободить фокус на воспроизведение аудио (это происходит автоматически для приложений, ориентированных на Android 12 (уровень API 31) и выше ).
T-Audio_Focus_Change Изменение_фокуса_аудио Начните воспроизведение аудио. Начните воспроизведение аудио в другом приложении. Ваше приложение должно реагировать на изменение фокуса аудио и останавливать воспроизведение аудио или уменьшать громкость.
Фоновое воспроизведение аудиофайлов (T-Audio_Playback_Background) Фоновое воспроизведение аудио

Начните воспроизведение аудио. Взаимодействуйте с другим приложением, не использующим аудио, в качестве приложения на переднем плане. Приложение должно продолжить воспроизведение аудио в фоновом режиме и отобразить уведомление в строке состояния. Убедитесь, что вы можете управлять воспроизведением с помощью элементов управления, отображаемых в уведомлении.

Заблокируйте экран устройства. Приложение должно продолжить воспроизведение звука в фоновом режиме и отобразить уведомление на экране блокировки. Убедитесь, что вы можете управлять воспроизведением с помощью элементов управления, отображаемых в уведомлении.

T-Audio_Notification_Style Стиль_уведомления_аудио Initiate audio playback. Interact with another non-audio app as the foreground app. Verify that your app continues to play audio in the background and has created a notification styled with MediaStyle . See Playing nicely with media controls .
T-Audio_Playback_Resume Возобновление воспроизведения аудио Начните воспроизведение аудио. Взаимодействуйте с другим приложением, не использующим аудио, как с приложением на переднем плане. Взаимодействуйте со своим приложением, чтобы сделать его приложением на переднем плане. Воспроизведение аудио должно возобновиться или громкость должна быть восстановлена. В противном случае приложение должно сообщить пользователю о приостановке воспроизведения.

Видео

ИДЕНТИФИКАТОР Особенность Описание
T-Video_PiP Видео_Картинка_ Активируйте воспроизведение видео в приложении в режиме «картинка в картинке» .
T-Video_Encoding Видеокодирование Убедитесь, что приложение кодирует видео с использованием стандарта сжатия видео HEVC.
Фоновое изображение воспроизведения T-Video Фоновое изображение воспроизведения видео Начните воспроизведение видео. Сверните окно приложения, откройте другое приложение, чтобы переместить окно приложения в фоновый режим. На устройствах с поддержкой настольных компьютеров переместите окно приложения за пределы видимой области рабочего стола. Убедитесь, что воспроизведение видео продолжается без прерываний во всех случаях.

Совместное использование

ИДЕНТИФИКАТОР Особенность Описание
T-System_Sharesheet System_Sharesheet Create an intent and start an activity by calling startActivity() with the intent as an argument. See Use the Android Sharesheet . Your app should display the Android Sharesheet.

Фоновые службы

ИДЕНТИФИКАТОР Особенность Описание
T-Background_Service_Optimization Оптимизация фоновых служб

Используйте все основные функции вашего приложения. Убедитесь, что никакие фоновые службы, работающие длительное время, не запущены.

Чтобы перевести ваше приложение в фоновый режим, переключитесь на другое приложение. Зайдите в «Настройки» и проверьте, запущены ли какие-либо службы вашего приложения в фоновом режиме. На Android 4.0 и выше перейдите на экран «Приложения» и найдите приложение на вкладке «Запущенные» .

Производительность и стабильность

Проверьте производительность, стабильность и безупречное качество изображения.

Производительность

ИДЕНТИФИКАТОР Особенность Описание
T-App_Startup_Time Время запуска приложения Запустите приложение. Убедитесь, что приложение загружается быстро, или отобразите индикатор выполнения или аналогичную подсказку, если загрузка приложения занимает более двух секунд.
T-Rendering_Performance Производительность рендеринга Используйте все основные функции вашего приложения. Убедитесь, что приложение отображает не менее 60 кадров в секунду. Используйте параметр рендеринга Profile HWUI для тестирования вашего приложения.
T-StrictMode_Compliance StrictMode_Compliance

Включите StrictMode в своем приложении. Используйте все основные функции. Убедитесь, что приложение не выдает никаких предупреждений о производительности StrictMode ; то есть при тестировании приложения не отображаются красные вспышки. Красные вспышки указывают на некорректное поведение, связанное с хранилищем, доступом к сети или управлением памятью (например, утечки памяти).

Уделите пристальное внимание сборке мусора и ее влиянию на пользовательский опыт.

Стабильность

ИДЕНТИФИКАТОР Особенность Описание
T-Stability_ANR Стабильность_ANR Используйте все основные функции вашего приложения. Убедитесь, что приложение не вылетает и не блокирует поток пользовательского интерфейса, вызывая ошибки ANR (Android не отвечает). Изучите отчет Google Play перед запуском , чтобы выявить потенциальные проблемы со стабильностью.

SDK

ИДЕНТИФИКАТОР Особенность Описание
Совместимость с платформой Android (T-Android) Совместимость с платформой Android Запустите свое приложение на последней общедоступной версии платформы Android. Используйте все основные функции. Убедитесь, что приложение не вылетает и работает без потери основной функциональности.
T-Target_SDK_Version Target_SDK_Version ,
Compile_SDK_Version
Проверьте файл манифеста Android и конфигурацию сборки, чтобы убедиться, что приложение собрано с использованием последней доступной версии SDK ( targetSdk и compileSdk ).
T-SDK_Техническое обслуживание SDK_Обслуживание Проверьте файл build.gradle вашего приложения на наличие устаревших зависимостей.
T-Non_SDK_Interfaces Интерфейсы, не относящиеся к SDK Используйте инструмент проверки кода Android Studio для обнаружения использования интерфейсов, отличных от SDK. См. раздел «Ограничения на использование интерфейсов, отличных от SDK» для получения информации об альтернативных методах тестирования.
T-Production_Build_Quality Production_Build_Quality Проверьте файл build.gradle вашего приложения на наличие включенных отладочных библиотек.

Батарея

ИДЕНТИФИКАТОР Особенность Описание
T-Power_Management Управление питанием

Используйте все основные функции приложения в режимах Doze и App Standby. Убедитесь, что будильники, таймеры, уведомления и синхронизация корректно работают в окне обслуживания Doze и после выхода приложения из режима App Standby.

Проверьте работу Doze и режима ожидания приложений с помощью команд ADB (см. раздел «Тестирование с Doze и режимом ожидания приложений » для получения информации о требованиях и рекомендациях).

Для диагностики неожиданного разряда батареи используйте инструмент Android Studio Power Profiler или Battery Historian в сочетании с запланированной фоновой работой.

Конфиденциальность и безопасность

Проверка на соответствие ожиданиям пользователей в отношении защиты конфиденциальности и безопасности.

Разрешения

ИДЕНТИФИКАТОР Особенность Описание
T-Minimize_Permissions Свести_разрешения Проверьте все разрешения, необходимые вашему приложению, в файле манифеста, во время выполнения и в настройках приложения на устройстве ( Настройки > Информация о приложении ).
T-Sensitive_Permissions Конфиденциальные_разрешения Используйте все функции вашего приложения, запрашивающие разрешения. Убедитесь, что приложение запрашивает разрешение на доступ к конфиденциальным данным или сервисам только для основных сценариев использования. Убедитесь, что последствия предоставления разрешения на доступ к конфиденциальным данным и сервисам четко доведены до пользователя.
T-Runtime_Permissions Runtime_Permissions Используйте все функции вашего приложения, требующие разрешений. Убедитесь, что разрешения запрашиваются отложенно , то есть только при обращении к функциям, а не во время запуска приложения.
T-Обоснование_Разрешения Обоснование разрешения Используйте все функции вашего приложения, требующие разрешений. Убедитесь, что приложение объясняет пользователю, почему эти разрешения необходимы.
T-Graceful_Degradation Грациозная_деградация Используйте все функции вашего приложения, требующие разрешений. Запретите или отзовите разрешения. Убедитесь, что приложение предоставляет альтернативный вариант использования и продолжает функционировать.

Данные и файлы

ИДЕНТИФИКАТОР Особенность Описание
T-Sensitive_Data_Storage Хранение конфиденциальных данных Проверьте все данные, хранящиеся во внутренней памяти. Убедитесь, что данные, хранящиеся во внешней памяти, не являются конфиденциальными.
Обработка чувствительных к T данных Хранение конфиденциальных данных Проверьте, как обрабатываются данные, загружаемые с внешнего хранилища.
T-Sensitive_Data_Logging Ведение журнала конфиденциальных данных Используйте все основные функции приложения, одновременно отслеживая журнал событий устройства. Убедитесь, что никакая конфиденциальная информация пользователя не записывается в журнал.
T-Hardware_IDs Идентификаторы оборудования Используйте все основные функции приложения. Убедитесь, что приложение не использует в целях идентификации какие-либо идентификаторы оборудования, такие как IMEI.

Личность

ИДЕНТИФИКАТОР Особенность Описание
T-Autofill_Hints Подсказки автозаполнения Используйте все функции приложения, требующие ввода данных пользователем. Убедитесь, что приложение предоставляет подсказки для автоматического заполнения полей ввода таких данных, как учетные данные и другая конфиденциальная информация.
T-Credential_Manager Credential_Manager Войдите в приложение. Убедитесь, что приложение интегрирует Credential Manager для Android, чтобы обеспечить единый интерфейс входа в систему, поддерживающий ключи доступа, федеративную идентификацию и пароли.
T-Биометрическая_аутентификация Biometric_Authentication Use all app features that require authentication. Verify that the app protects financial transactions or sensitive information, such as important user documents, with biometric authentication .

App components

ИДЕНТИФИКАТОР Особенность Описание
T-Component_Export Component_Export Review all application components defined in the Android manifest file for the appropriate export state. The exported property must be set explicitly for all components.
T-Component_Permissions Component_Permissions Review all permissions that your app requires, in the manifest file, at runtime, and in the app settings on the device ( Settings > App Info ).
T-Component_Protection Component_Protection Review all content providers defined in the Android manifest file. Make sure each provider has an appropriate protectionLevel .

Сетевые технологии

ИДЕНТИФИКАТОР Особенность Описание
T-Network_Security_Traffic Network_Security_Traffic Declare a network security configuration that disables cleartext traffic , then test the app.
T-Network_Security_Configuration Network_Security_Configuration Review the app's network security configuration . Verify that no lint checks on the configuration fail.
T-Security_Provider_Initialization Security_Provider_Initialization Verify that the security provider is initialized at application startup for Google Play services.

WebViews

ИДЕНТИФИКАТОР Особенность Описание
T-WebView_Asset_Loader WebView_Asset_Loader Review the app's network security configuration . Verify that no lint checks on the configuration fail.
T-WebView_JavaScript WebView_JavaScript For each WebView , navigate to a page that requires JavaScript.
T-WebView_Navigation WebView_Asset_Loader ,
WebView_JavaScript
In each WebView, attempt to navigate to sites and content that aren't loaded directly by your app.

Исполнение

ИДЕНТИФИКАТОР Особенность Описание
T-App_Bundles App_Bundles Verify that the app uses Android App Bundles and does not dynamically load code from outside the app's APK.

Криптография

ИДЕНТИФИКАТОР Особенность Описание
T-Cryptographic_Algorithms Cryptographic_Algorithms Verify that the app uses strong, platform-provided cryptographic algorithms and a random number generator . Also verify that the app doesn't implement custom algorithms.

Google Play

Verify that your app is ready for Google Play.

Политики

ИДЕНТИФИКАТОР Особенность Описание
T-Play_Content_Policies Play_Content_Policies ,
Play_Content_Rating ,
Play_User_Reviews
Sign into the Google Play Developer Console to review your developer profile, app description, screenshots, feature graphic, content rating and user feedback.

App details page

ИДЕНТИФИКАТОР Особенность Описание
T-Play_Feature_Graphic Play_Feature_Graphic Download your feature graphic and screenshots, and scale them down to match the display sizes on the devices and form factors that you are targeting.
T-Play_Graphic_Assets Play_Feature_Graphic ,
Play_Device_References ,
Play_Misleading_Content
Review all graphical assets, media, text, code libraries, and other content that's packaged in the app or expansion file download.

Архив

Previous versions of the core app quality guidelines: