| page.title=Основные критерии качества приложений |
| page.metaDescription=Качество приложений напрямую влияет на востребованность вашего приложения: как много будет его установок, каким будут рейтинг и отзывы пользователей, насколько будет популярно приложение и как долго оно будет использоваться. |
| page.image=/distribute/images/core-quality-guidelines.jpg |
| @jd:body |
| |
| <div id="qv-wrapper"><div id="qv"> |
| <h2>Критерии качества</h2> |
| <ol> |
| <li><a href="#ux">Дизайн и взаимодействие</a></li> |
| <li><a href="#fn">Функциональность</a></li> |
| <li><a href="#ps">Производительность и стабильность</a></li> |
| <li><a href="#listing">Соответствие требованиям Google Play</a></li> |
| |
| </ol> |
| |
| <h2>Тестирование</h2> |
| <ol> |
| <li><a href="#test-environment">Настройка среды тестирования</a></li> |
| <li><a href="#tests">Процедуры тестирования</a></li> |
| </ol> |
| |
| <h2>См. также:</h2> |
| <ol> |
| <li><a href="{@docRoot}distribute/essentials/quality/tablets.html">Качество приложений для планшетных ПК</a></li> |
| <li><a href="{@docRoot}distribute/essentials/optimizing-your-app.html">Оптимизация приложений</a></li> |
| </ol> |
| |
| |
| </div> |
| </div> |
| |
| <div class="top-right-float"> |
| <img src="{@docRoot}images/gp-core-quality.png" style="margin-left: 20px;"> |
| </div> |
| |
| <p> |
| Пользователи Android ожидают высокого качества от устанавливаемых приложений. Качество приложений напрямую влияет |
| на востребованность вашего приложения: как много будет его установок, каким будут рейтинг и отзывы пользователей, |
| насколько будет популярно приложение и как долго оно будет использоваться |
| </p> |
| |
| <p> |
| Этот документ помогает оценить основные аспекты качества вашего приложения, |
| используя компактный набор основных критериев качества приложений и связанные с ними процедуры проверки. Все приложения Android |
| должны удовлетворять этим критериям. |
| </p> |
| |
| <p> |
| Прежде чем публиковать свои приложения, проверьте их на соответствие |
| данным критериям, убедившись, что они корректно работают на различных |
| устройствах, отвечают стандартам Android в отношении навигации и дизайна, |
| подготовлены к использованию рекламно-популяризаторских возможностей магазина Google Play. Проводимое тестирование может существенно выходить за рамки описанных здесь процедур, цель этого документа |
| – обозначить основные признаки качества, которые должны демонстрироваться всеми приложениями, чтобы вы могли |
| предусмотреть их в своих планах проверки. |
| </p> |
| |
| <p> |
| Если вы разрабатываете свои приложения для планшетных ПК или для |
| программы "Google Play для образования", необходимо учитывать |
| дополнительные критерии качества, которые сформулированы в документах <a href="{@docRoot}distribute/essentials/quality/tablets.html">Качество приложений |
| для планшетных ПК</a> и <a href="{@docRoot}distribute/essentials/gpfe-guidelines.html">Руководство по разработке |
| образовательных приложений</a>. |
| </p> |
| |
| <div class="headerLine"> |
| <h2 id="ux"> |
| Графический дизайн и взаимодействие с пользователем |
| </h2> |
| |
| |
| </div> |
| |
| <p> |
| Эти критерии подразумевают, что в вашем приложении обеспечивается стандартный графический дизайн Android, |
| а там где это возможно, используются шаблоны взаимодействия, делающие интерфейс пользователя согласованным |
| и интуитивно понятным. |
| </p> |
| |
| <table> |
| <tr> |
| <th style="width:2px;"> |
| Область |
| </th> |
| <th style="width:54px;"> |
| ИД |
| </th> |
| |
| |
| <th> |
| Описание |
| </th> |
| <th style="width:54px;"> |
| Тесты |
| </th> |
| </tr> |
| <tr id="UX-B1"> |
| <td>Стандартный дизайн</td> |
| <td> |
| UX-B1 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| Приложения соответствуют рекомендациям по <a href="{@docRoot}design/index.html">дизайну Android</a> |
| и используют общепринятые <a href="{@docRoot}design/patterns/index.html">значки и шаблоны интерфейса пользователя</a>. |
| </p> |
| |
| <ol style="margin-bottom:.5em;list-style-type:lower-alpha"> |
| <li>В приложении не переопределяются привычные функции системных значков (например, |
| кнопка "Назад"). |
| </li> |
| |
| <li>В приложении не происходит подмена системных значков совершенно новыми значками, |
| если используются стандартные функции интерфейса пользователя. |
| </li> |
| |
| <li>Если в предложении предлагается адаптированная версия стандартного системного значка, |
| этот значок должен в значительной степени напоминать исходный системный значок и порядок работы с ним должен соответствовать поведению |
| системного значка. |
| </li> |
| |
| <li>Приложение не должно переопределять или некорректно использовать стандартные шаблоны интерфейса пользователя |
| Android, например значки или их действия, чтобы не путать пользователей и не затруднять их работу. |
| </li> |
| </ol> |
| </td> |
| <td> |
| <a href="#core">CR-все</a> |
| </td> |
| </tr> |
| |
| <tr> |
| <td rowspan="3"> |
| Навигация |
| </td> |
| <td id="UX-N1"> |
| UX-N1 |
| </td> |
| <td> |
| <p> |
| В приложении поддерживается стандартная системная <a href="{@docRoot}design/patterns/navigation.html">навигация с помощью кнопки "Назад"</a> |
| , для которой не используются какие-либо адаптированные экранные подсказки. |
| </p> |
| </td> |
| <td> |
| <a href="#core">CR-3</a> |
| </td> |
| </tr> |
| |
| <tr> |
| <td id="UX-N2"> |
| UX-N2 |
| </td> |
| <td> |
| <p> |
| Любое диалоговое окно можно закрыть с помощью кнопки "Назад". |
| </p> |
| </td> |
| <td> |
| <a href="#core">CR-3</a> |
| </td> |
| </tr> |
| |
| <tr id="UX-N3"> |
| <td> |
| UX-N3 |
| </td> |
| <td> |
| При нажатии кнопки "Домой" всегда происходит переход к главному экрану |
| устройства. |
| </td> |
| <td> |
| <a href="#core">CR-1</a> |
| </td> |
| </tr> |
| |
| <tr id="UX-S1"> |
| <td rowspan="2"> |
| Уведомления |
| </td> |
| <td> |
| UX-S1 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| Уведомления должны соответствовать <a href="{@docRoot}design/patterns/notifications.html">рекомендациям</a> по дизайну Android. В |
| частности, должны быть соблюдены следующие правила. |
| </p> |
| |
| <ol style="margin-bottom:.5em;list-style-type:lower-alpha"> |
| <li>Несколько уведомлений (там, где это возможно) должны объединяться |
| в один информационный блок. |
| </li> |
| |
| <li>Повторение уведомлений возможно только в том случае, если они относятся к текущему событию |
| (например, воспроизведению музыки или телефонному звонку). |
| </li> |
| |
| <li>Уведомления не должны содержать рекламу или контент, не относящийся к основной |
| функции приложения, если пользователь явным образом не согласился на получение такой информации. |
| </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;"> |
| Приложение использует уведомления только в следующих случаях. |
| </p> |
| |
| <ol style="margin-bottom:.5em;list-style-type:lower-alpha"> |
| <li>Чтобы отметить контекстное изменение, связанное лично с пользователем |
| (например, сообщить о входящем сообщении). |
| </li> |
| |
| <li>Чтобы выделить информацию, элементы управления, относящиеся к текущему |
| событию (например, воспроизведению музыки или телефонному звонку). |
| </li> |
| </ol> |
| </td> |
| <td> |
| <a href="#core">CR-11</a> |
| </td> |
| </tr> |
| </table> |
| |
| <h3 class="rel-resources clearfloat">Связанные ресурсы</h3> |
| |
| <div class="resource-widget resource-flow-layout col-13" data-query= |
| "collection:distribute/essentials/corequalityguidelines/visualdesign" |
| data-sortorder="-timestamp" data-cardsizes="9x3,9x3,6x3,6x3,6x3" |
| data-maxresults="6"> |
| </div> |
| |
| <div class="headerLine"> |
| <h2 id="fn"> |
| Функциональность |
| </h2> |
| |
| |
| </div> |
| |
| <p> |
| Этот критерий подразумевает, что обеспечивается исключительно высокая функциональность при работе с приложением, |
| в нем предусмотрены необходимые уровни прав доступа. |
| </p> |
| |
| <table> |
| <tr> |
| <th style="width:2px;"> |
| Область |
| </th> |
| <th style="width:54px;"> |
| ИД |
| </th> |
| <th> |
| Описание |
| </th> |
| <th style="width:54px;"> |
| Тесты |
| </th> |
| </tr> |
| |
| <tr id="FN-P1"> |
| <td rowspan="2"> |
| Права доступа |
| </td> |
| <td> |
| FN-P1 |
| </td> |
| <td> |
| Приложение запрашивает только <em>абсолютный минимум</em> прав доступа, |
| которые необходимы ему для поддержания основных функциональных возможностей. |
| </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;"> |
| Приложение не запрашивает прав доступа к наиболее важным данным (например, |
| к контактам или системному журналу), а также к платным сервисам |
| (например, службам дозвона или отправки СМС), если это не связано с основной функциональностью данного |
| приложения. |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="FN-L1"> |
| <td> |
| Место установки |
| </td> |
| <td> |
| FN-L1 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| Приложение нормально работает при установке на SD-карту (если такая возможность поддерживается приложением). |
| </p> |
| |
| <p style="margin-bottom:.25em;"> |
| Поддержка установки на SD-карту рекомендована для всех больших приложений |
| (превышающих 10 МБ). См. в руководстве разработчика в разделе <a href="{@docRoot}guide/topics/data/install-location.html">Место |
| установки приложения</a> информацию о том, |
| какие типы приложений должны поддерживать установку на SD-карты. |
| </p> |
| </td> |
| <td> |
| <a href="#SD-1">SD-1</a> |
| </td> |
| </tr> |
| |
| <tr id="FN-A1"> |
| <td rowspan="4"> |
| Звук |
| </td> |
| <td> |
| FN-A1 |
| </td> |
| <td> |
| Звук не должен воспроизводиться, если отображение на экране выключено, за исключением случаев, когда |
| это является основной функциональной задачей (например, если приложение – музыкальный проигрыватель). |
| </td> |
| <td> |
| <a href="#core">CR-7</a> |
| </td> |
| </tr> |
| |
| <tr id="FN-A2"> |
| <td> |
| FN-A2 |
| </td> |
| <td> |
| Звук не должен воспроизводиться,<a href="http://android-developers.blogspot.com/2011/11/making-android-games-that-play-nice.html"> |
| если экран заблокирован</a>, за исключением случаев, когда это является основной функциональной задачей приложения. |
| </td> |
| <td> |
| <a href="#core">CR-8</a> |
| </td> |
| </tr> |
| |
| <tr id="FN-A3"> |
| <td> |
| FN-A3 |
| </td> |
| <td> |
| Звук не должен воспроизводиться на главном экране или при переходе в другое |
| приложение, если это не является основной функциональной задачей данного приложения. |
| </td> |
| <td> |
| <a href="#core">CR-1,<br> |
| CR-2</a> |
| </td> |
| </tr> |
| |
| <tr id="FN-A4"> |
| <td> |
| FN-A4 |
| </td> |
| <td> |
| Воспроизведение звука возобновляется при переходе в приложение |
| или пользователю сообщается, что воспроизведение приостановлено. |
| </td> |
| <td> |
| <a href="#core">CR-1, CR-8</a> |
| </td> |
| </tr> |
| |
| <tr id="FN-U1"> |
| <td rowspan="3"> |
| Графика и интерфейс пользователя |
| </td> |
| <td> |
| FN-U1 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| Приложение поддерживает как альбомную так и книжную ориентацию экрана (если возможно). |
| </p> |
| |
| <p style="margin-bottom:.25em;"> |
| В обоих ориентациях экрана поддерживаются равные функциональные |
| возможности и действия. Допустимы незначительные изменения в содержимом и режимах представления. |
| </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;"> |
| Приложение рационально использует весь экран в обеих ориентациях |
| без появления "черных полос" при смене ориентации. |
| </p> |
| |
| <p style="margin-bottom:.25em;"> |
| Допустимо отображение лишь незначительных черных полос по краям экрана, |
| компенсирующих незначительную разницу в геометрических размерах экранов. |
| </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;"> |
| Приложения правильно обрабатывают быстрый переход от одной ориентации |
| экрана к другой, не вызывая проблем с визуальным воспроизведением. |
| </p> |
| </td> |
| <td> |
| <a href="#core">CR-5</a> |
| </td> |
| </tr> |
| |
| <tr id="FN-S1"> |
| <td rowspan="2"> |
| Состояние пользователя и приложения |
| </td> |
| <td> |
| FN-S1 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| В приложении не должно оставаться каких-либо запущенных служб при переходе в фоновый |
| режим, если это не требуется для его основной функции. |
| </p> |
| |
| <p style="margin-bottom:.25em;"> |
| Например, приложение не должно сохранять службы подключения |
| к сети для получения уведомлений, поддерживать подключение по Bluetooth |
| или оставлять включенным модуль GPS. |
| </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;"> |
| Должно обеспечиваться корректное сохранение и восстановление состояние пользователя или приложения. |
| </p> |
| |
| <p style="margin-bottom:.25em;"> |
| Приложение сохраняет состояние пользователя или самого приложения при переходе в |
| фоновый режим, предотвращая случайную потерю данных при навигации с помощью |
| кнопки "Назад" или при других изменениях состояния. При возврате из фонового в активный режим приложение должно |
| восстановить сохраненное состояние и все связанные с состоянием операции, ожидавшие |
| выполнения, например, изменения в редактируемых полях, текущее состояние в игре, |
| меню, видео и другие составляющие приложения или игры. |
| </p> |
| |
| <ol style="margin-bottom:.25em;list-style-type:lower-alpha"> |
| <li>Когда приложение вызывается из переключателя последних приложений, |
| восстанавливается состояние пользователя на момент последней работы с этим приложением. |
| </li> |
| |
| <li>Когда приложение восстанавливается после пробуждения устройства после |
| блокировки, приложение возвращает пользователя в состояние, соответствующее последнему |
| моменту работы с ним. |
| </li> |
| |
| <li>Когда приложение повторно запускается с начального экрана или экрана приложений, |
| его состояние должно быть восстановлено максимально близко к предыдущему состоянию. |
| </li> |
| |
| <li>При нажатии кнопки "Назад" приложение позволяет сохранить свое текущее состояние или |
| состояние пользователя, которое в противном случае будет потеряно при переходе назад. |
| </li> |
| </ol> |
| </td> |
| <td> |
| <a href="#core">CR-1, CR-3, CR-5</a> |
| </td> |
| </tr> |
| </table> |
| |
| <h3 class="rel-resources clearfloat">Связанные ресурсы</h3> |
| |
| <div class="resource-widget resource-flow-layout col-13" data-query= |
| "collection:distribute/essentials/corequalityguidelines/functionality" |
| data-sortorder="-timestamp" data-cardsizes="6x3" data-maxresults="6"> |
| </div> |
| |
| <div class="headerLine"> |
| <h2 id="ps"> |
| Производительность и стабильность |
| </h2> |
| |
| |
| </div> |
| |
| <p> |
| Этот критерий предполагает, что приложения обеспечивают ожидаемые пользователем |
| высокую производительность, стабильность и быстрое время реакции. |
| </p> |
| |
| <table> |
| <tr> |
| <th style="width:2px;"> |
| Область |
| </th> |
| <th style="width:54px;"> |
| ИД |
| </th> |
| <th> |
| Описание |
| </th> |
| <th style="width:54px;"> |
| Тесты |
| </th> |
| </tr> |
| |
| <tr id="PS-S1"> |
| <td> |
| Стабильность |
| </td> |
| <td> |
| PS-S1 |
| </td> |
| <td> |
| Не происходит аварийных или вынужденных закрытий приложения, зависаний или других |
| аномалий в его работе на любых поддерживаемых устройствах. |
| </td> |
| <td> |
| <a href="#core">CR-все</a>, <a href="#SD-1">SD-1</a>, <a href="#HA-1">HA-1</a> |
| </td> |
| </tr> |
| |
| <tr id="PS-P1"> |
| <td rowspan="2"> |
| Производительность |
| </td> |
| <td> |
| PS-P1 |
| </td> |
| <td> |
| Приложение загружается быстро или предлагает пользователю соответствующую |
| информацию на экране (индикатор выполнения и т. п.), если для загрузки требуется |
| больше двух секунд. |
| </td> |
| <td> |
| <a href="#core">CR-все</a>, <a href="#SD-1">SD-1</a> |
| </td> |
| </tr> |
| |
| <tr id="PS-P2"> |
| <td> |
| PS-P2 |
| </td> |
| <td> |
| При включенном режиме StrictMode (см. ниже <a href="#strictmode">Тестирование в режиме |
| StrictMode</a>) отсутствуют красные мигания (предупреждения |
| StrictMode о низкой производительности) при выполнении приложения, включая воспроизведение |
| игр, анимацию и переходы между элементами интерфейса, а также другие элементы приложения. |
| </td> |
| <td> |
| <a href="#PM-1">PM-1</a> |
| </td> |
| </tr> |
| |
| <tr id="PS-M1"> |
| <td> |
| Мультимедиа |
| </td> |
| <td> |
| PS-M1 |
| </td> |
| <td> |
| В процессе загрузки и нормальной работы с приложением звуковые и видеоданные |
| воспроизводятся плавно, без щелчков, заминок и прочих артефактов. |
| </td> |
| <td> |
| <a href="#core">CR-все</a>, <a href="#SD-1">SD-1</a>, <a href="#HA-1">HA-1</a> |
| </td> |
| </tr> |
| |
| <tr id="PS-V1"> |
| <td rowspan="2"> |
| Качество визуализации |
| </td> |
| <td> |
| PS-V1 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| Приложение отображает графику, тексты, изображения и различные элементы интерфейса |
| без заметных искажений, смазываний или эффектов пикселизации. |
| </p> |
| |
| <ol style="margin-bottom:.5em;list-style-type:lower-alpha"> |
| <li>Приложение обеспечивает высокое качество графики на всех поддерживаемых размерах |
| и форм-факторах экрана, включая <a href="{@docRoot}distribute/essentials/quality/tablet.html">устройства с большими экранами, |
| такие как планшетные ПК</a>. |
| </li> |
| |
| <li>Нет ступенчатых артефактов на границах меню, кнопок и других элементах интерфейса |
| пользователя. |
| </li> |
| </ol> |
| </td> |
| <td rowspan="2"> |
| <a href="#core">CR-все</a> |
| </td> |
| </tr> |
| |
| <tr id="PS-V2"> |
| <td> |
| PS-V2 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| В приложении тексты и текстовые блоки отображаются удобными для чтения. |
| </p> |
| |
| <ol style="margin-bottom:.5em;list-style-type:lower-alpha"> |
| <li>Обеспечивается их правильная компоновка на всех поддерживаемых форм-факторах, |
| включая устройства с большими экранами, такие как планшетные ПК. |
| </li> |
| |
| <li>Отсутствуют обрезанные буквы или слова. |
| </li> |
| |
| <li>Нет некорректных переносов слов в названиях кнопок и значков. |
| </li> |
| |
| <li>Имеется достаточное пространство между текстом и окружающими его элементами. |
| </li> |
| </ol> |
| </td> |
| </tr> |
| </table> |
| |
| <h3 class="rel-resources clearfloat">Связанные ресурсы</h3> |
| |
| <div class="resource-widget resource-flow-layout col-13" data-query= |
| "collection:distribute/essentials/core/performance" data-sortorder="-timestamp" |
| data-cardsizes="6x3" data-maxresults="6"> |
| </div> |
| |
| <div class="headerLine"> |
| <h2 id="listing"> |
| Соответствие требованиям Google Play |
| </h2> |
| |
| |
| </div> |
| |
| <p> |
| Соблюдение эти критериев подразумевает готовность ваших приложений к публикации в Google Play. |
| </p> |
| |
| <table> |
| <tr> |
| <th style="width:2px;"> |
| Область |
| </th> |
| <th style="width:54px;"> |
| ИД |
| </th> |
| <th> |
| Описание |
| </th> |
| <th style="width:54px;"> |
| Тесты |
| </th> |
| </tr> |
| |
| <tr id="GP-P1"> |
| <td rowspan="2"> |
| Политики |
| </td> |
| <td> |
| GP-P1 |
| </td> |
| <td> |
| В приложениях должны строго соблюдаться условия <a href="http://play.google.com/about/developer-content-policy.html">Правил программы для |
| разработчиков приложений Google Play</a>, не должно предлагаться неуместное содержимое, |
| нельзя использовать интеллектуальную собственность или товарные знаки других лиц и т. д. |
| </td> |
| <td> |
| <a href="#gp">GP-все</a> |
| </td> |
| </tr> |
| |
| <tr id="GP-P2"> |
| <td> |
| GP-P2 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| Должны быть правильно настроены возрастные ограничения приложения с учетом <a href="http://support.google.com/googleplay/android-developer/bin/answer.py?hl=en&answer=188189"> |
| Руководства по определению возрастного рейтинга содержимого</a>. |
| </p> |
| |
| <p style="margin-bottom:.25em;"> |
| В частности, обратите внимание, что приложениям, запрашивающим доступ к данным о |
| местоположении устройства, нельзя назначать возрастной рейтинг "Для всех". |
| </p> |
| </td> |
| <td> |
| <a href="#gp">GP-1</a> |
| </td> |
| </tr> |
| |
| <tr id="GP-D1"> |
| <td rowspan="3"> |
| Страница со сведениями о приложении |
| </td> |
| <td> |
| GP-D1 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| Картинка для раздела "Рекомендуемые" должна соответствовать правилам, описанным в данной <a href="http://android-developers.blogspot.com/2011/10/android-market-featured-image.html"> |
| публикации</a>. Проверьте следующие моменты. |
| </p> |
| |
| <ol style="margin-bottom:.5em;list-style-type:lower-alpha"> |
| <li>При публикации приложение должно сопровождаться качественной картинкой для раздела "Рекомендуемые". |
| </li> |
| |
| <li>Эта представляющая приложение картинка не должна содержать изображений устройств, |
| снимков экранов или мелкого текста, который станет неразличим при уменьшении |
| масштаба на устройствах с минимальным поддерживаемым размером экрана. |
| </li> |
| |
| <li>Картинка для раздела "Рекомендуемые" не должна напоминать рекламу. |
| </li> |
| </ol> |
| </td> |
| <td> |
| <a href="#gp">GP-1, GP-2</a> |
| </td> |
| </tr> |
| |
| <tr id="GP-D2"> |
| <td> |
| GP-D2 |
| </td> |
| <td> |
| На снимках экранов и в видеороликах не должны показываться или упоминаться не поддерживающие Android устройства. |
| </td> |
| <td rowspan="2"> |
| <a href="#gp">GP-1</a> |
| </td> |
| </tr> |
| |
| <tr id="GP-D3"> |
| <td> |
| GP-D3 |
| </td> |
| <td> |
| На снимках экранов и в видеороликах не должна содержаться недостоверная |
| информация о контенте и функциональных возможностях вашего приложения. |
| </td> |
| </tr> |
| |
| <tr id="GP-X1"> |
| <td> |
| Поддержка пользователя |
| </td> |
| <td> |
| GP-X1 |
| </td> |
| <td> |
| Ошибки, сообщаемые пользователями на вкладке "Отзывы" на странице Google Play, подлежат |
| исправлению, если они воспроизводимы и происходят на многих разных устройствах. |
| Если ошибка возникает только на нескольких устройствах, ее необходимо исправить, |
| если это особо популярные или новые устройства. |
| </td> |
| <td> |
| <a href="#gp">GP-1</a> |
| </td> |
| </tr> |
| </table> |
| |
| <h3 class="rel-resources clearfloat">Связанные ресурсы</h3> |
| |
| <div class="resource-widget resource-flow-layout col-13" data-query= |
| "collection:distribute/essentials/core/play" data-sortorder="-timestamp" |
| data-cardsizes="6x3,6x3,6x3,6x3,6x3,6x3" data-maxresults="6"> |
| </div> |
| |
| <div class="headerLine"> |
| <h2 id="test-environment"> |
| Настройка среды тестирования |
| </h2> |
| |
| |
| </div> |
| |
| <p> |
| Чтобы оценить качество своего приложения, вам необходимо настроить подходящее |
| аппаратное обеспечение или эмулировать нужную среду для тестирования. |
| </p> |
| |
| <p> |
| Идеальной средой для тестирования будет небольшое количество реальных устройств, |
| представляющих все основные форм-факторы и аппаратные/программные |
| комбинации, которые сейчас доступны пользователям. Нет необходимости проверять приложение на |
| <em>всех</em> продаваемых устройствах — лучше выберите небольшое число представителей, |
| буквально один-два на каждый возможный |
| форм-фактор. |
| </p> |
| |
| <p> |
| Если у вас не получается получить реальное устройство для тестирования, необходимо |
| <a href="{@docRoot}tools/devices/index.html">настроить эмулируемые устройства |
| (AVD)</a>, воспроизводящие наиболее распространенные форм-факторы и аппаратные/программные |
| комбинации. |
| </p> |
| |
| <p> |
| Чтобы выйти за рамки начального тестирования, можно добавить больше устройств, больше форм-факторов, |
| а также новые комбинации аппаратного/программного обеспечения к вашей среде тестирования. Также можно |
| увеличить число или сложность тестов и повысить критерии качества. |
| </p> |
| |
| <div class="headerLine"> |
| <h2 id="tests"> |
| Процедуры тестирования |
| </h2> |
| |
| |
| </div> |
| |
| <p> |
| Данные процедуры тестирования помогают обнаружить различные типы проблем |
| с качеством ваших приложений. Можно комбинировать эти тесты или интегрировать группы |
| тестов вместе в ваши собственные планы тестирования. См. в приведенных выше разделах сведения о том, как связаны |
| определенные критерии с конкретными тестами. |
| </p> |
| |
| <table> |
| <tr> |
| <th style="width:2px;"> |
| Тип |
| </th> |
| <th style="width:54px;"> |
| Тест |
| </th> |
| <th> |
| Описание |
| </th> |
| </tr> |
| |
| <tr> |
| <td rowspan="12" id="core"> |
| Базовый набор |
| </td> |
| <td> |
| CR-0 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| Пройдитесь по всем частям приложения — проверьте все экраны, |
| диалоги, настройки и все варианты работы пользователя. |
| </p> |
| |
| <ol style="margin-bottom:.5em;list-style-type:lower-alpha"> |
| <li>Если приложение позволяет редактировать или создавать контент, играть в игры |
| или воспроизводить мультимедийные файлы, |
| убедитесь, что такие сценарии включены в проверку по созданию и добавлению контента. |
| </li> |
| |
| <li>Испытывая приложение, попробуйте внести изменения в сетевые соединения, в настройки |
| функций, связанных с экономией заряда батареи, GPS |
| или обнаружением устройства, в параметры загрузки системы и т. д. |
| </li> |
| </ol> |
| </td> |
| </tr> |
| |
| <tr id="tg2"> |
| <td id="core2"> |
| CR-1 |
| </td> |
| <td> |
| На каждом экране приложения нажмите кнопку перехода на начальную страницу, |
| затем повторно запустите приложение с экрана приложений. |
| </td> |
| </tr> |
| |
| <tr id="CR-2"> |
| <td> |
| CR-2 |
| </td> |
| <td> |
| С каждого экрана приложения выполните переход в другое запущенное приложение, |
| а затем вернитесь в тестируемое, используя переключатель последних приложений. |
| </td> |
| </tr> |
| |
| <tr id="CR-3"> |
| <td> |
| CR-3 |
| </td> |
| <td> |
| Из каждого экрана приложения (и каждого диалогового окна) нажмите кнопку "Назад". |
| </td> |
| </tr> |
| |
| <tr id="CR-5"> |
| <td> |
| CR-5 |
| </td> |
| <td> |
| Для каждого экрана приложения не менее трех раз поверните устройство для переключения |
| между портретной и книжной ориентациями. |
| </td> |
| </tr> |
| |
| <tr id="CR-6"> |
| <td> |
| CR-6 |
| </td> |
| <td> |
| Переключитесь в другое приложение, чтобы перевести тестируемое приложение в фоновый режим. Перейдите в меню |
| "Настройки" и проверьте, нет ли для тестируемого приложения каких либо работающих служб, когда оно переключено |
| в фоновый режим. В ОС Android 4.0 и более поздних версий перейдите на экран приложений |
| и найдите приложение на вкладке "Работающие". В более ранних версиях используйте "Управление |
| приложениями", чтобы проверить наличие запущенных служб. |
| </td> |
| </tr> |
| |
| <tr id="CR-7"> |
| <td> |
| CR-7 |
| </td> |
| <td> |
| Нажмите кнопку питания, чтобы перевести устройство в спящий режим, а затем вновь |
| нажмите кнопку питания, чтобы экран вернулся в активное состояние. |
| </td> |
| </tr> |
| |
| <tr id="CR-8"> |
| <td> |
| CR-8 |
| </td> |
| <td> |
| Настройте блокировку устройства при нажатии кнопки питания. Нажмите кнопку питания, |
| чтобы перевести устройство в спящий режим, а затем вновь нажмите кнопку питания, |
| чтобы экран вернулся в активное состояние, разблокируйте устройство. |
| </td> |
| </tr> |
| |
| <tr id="CR-9"> |
| <!-- Hardware features --> |
| |
| <td> |
| CR-9 |
| </td> |
| <td> |
| Для устройств с выдвижной клавиатурой – сложите, а потом выдвиньте клавиатуру |
| хотя бы один раз. Для устройств, имеющих клавиатурные док-станции – выполните подключение |
| устройства к док-станции. |
| </td> |
| </tr> |
| |
| <tr id="CR-10"> |
| <td> |
| CR-10 |
| </td> |
| <td> |
| Для устройств, имеющих порт подключения внешнего экрана – выполните подключение |
| этого экрана. |
| </td> |
| </tr> |
| |
| <tr id="CR-11"> |
| <td> |
| CR-11 |
| </td> |
| <td> |
| Откройте панель уведомлений и внимательно просмотрите все типы уведомлений, |
| которые могут отображаться приложением. Раскройте уведомления, если это возможно (в Android 4.1 |
| и более поздних версиях), выполните все предлагаемые действия. |
| </td> |
| </tr> |
| |
| <tr id="CR-12"> |
| <td> |
| CR-12 |
| </td> |
| <td> |
| Ознакомьтесь, какие права доступа запрашиваются приложением, перейдя в "Настройки" > |
| "Информация о приложении". |
| </td> |
| </tr> |
| |
| <tr id="tg3"> |
| <td> |
| Установка на SD-карту |
| </td> |
| <td> |
| SD-1 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| Повторите тесты из серии <em>Базовый набор</em> с приложением, установленным <a href="{@docRoot}guide/topics/data/install-location.html">на SD-карту устройства</a> |
| (если она поддерживается устройством). |
| </p> |
| |
| <p style="margin-bottom:.25em;"> |
| Чтобы перенести приложение на SD-карту, выберите "Настройки > Информация о приложении > |
| Переместить на SD-карту". |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="tg32"> |
| <td> |
| Аппаратное ускорение |
| </td> |
| <td> |
| HA-1 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| Повторите тесты из серии <em>Базовый набор</em>, включив на устройстве аппаратное ускорение. |
| </p> |
| |
| <p style="margin-bottom:.25em;"> |
| Чтобы принудительно задействовать аппаратное ускорение (если оно поддерживается |
| устройством), добавьте параметр <code>hardware-accelerated="true"</code> к разделу |
| <code><application></code> в манифесте приложения и выполните его повторную компиляцию. |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="tg33"> |
| <td> |
| Контроль производительности |
| </td> |
| <td> |
| PM-1 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| Повторите тесты из серии <em>Базовый набор</em>, включив режим StrictMode, <a href="#strictmode">как это описано ниже</a>. |
| </p> |
| |
| <p style="margin-bottom:.25em;"> |
| Уделите особое внимание вопросу очистки памяти и тому, как это влияет на работу |
| пользователя. |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="gp"> |
| <td rowspan="3"> |
| Соответствие требованиям Google Play |
| </td> |
| <td> |
| GP-1 |
| </td> |
| <td> |
| Войдите в <a href="https://play.google.com/apps/publish/">консоль |
| разработчика</a>, проверьте свой профиль разработчика, описание приложения, |
| снимки экранов, картинку для раздела "Рекомендуемые", настройки возрастного рейтинга, а также отзывы пользователей. |
| </td> |
| </tr> |
| |
| <tr id="GP-2"> |
| <td> |
| GP-2 |
| </td> |
| <td> |
| Загрузите снимки экранов и картинку для раздела "Рекомендуемые", уменьшите |
| их в соответствие с размерами и форм-факторами поддерживаемых приложением |
| устройств. |
| </td> |
| </tr> |
| |
| <tr id="GP-3"> |
| <td> |
| GP-3 |
| </td> |
| <td> |
| Проверьте все графические ресурсы, мультимедийные данные, тексты, библиотеки кодов и |
| прочее содержимое, упакованное в файл загрузки приложения или расширения к нему. |
| </td> |
| </tr> |
| |
| <tr id="GP-4"> |
| <td> |
| Платежи |
| </td> |
| <td> |
| GP-4 |
| </td> |
| <td> |
| Пройдите по всем экранам своего приложения и проверьте все задействованные в нем процессы покупок. |
| </td> |
| </tr> |
| </table> |
| |
| <h3 id="strictmode"> |
| Тестирование в режиме StrictMode |
| </h3> |
| |
| <p> |
| Для проверки производительности мы рекомендуем в приложении включить режим {@link android.os.StrictMode} |
| и использовать его для отслеживания операций в основном и в других |
| потоках приложения, которые могут негативно сказываться на быстродействии, доступе к сети, |
| чтении или записи файлов и т. д. |
| </p> |
| |
| <p> |
| Можно настроить политики контроля каждого из потоков, используя инструмент {@link |
| android.os.StrictMode.ThreadPolicy.Builder} и включив все поддерживаемые |
| функции контроля в <code>ThreadPolicy</code>с помощью параметра {@link |
| android.os.StrictMode.ThreadPolicy.Builder#detectAll()}. |
| </p> |
| |
| <p> |
| Обязательно задействуйте <strong>визуальные уведомления</strong> о нарушениях политик |
| в отношении <code>ThreadPolicy</code>, используя {@link |
| android.os.StrictMode.ThreadPolicy.Builder#penaltyFlashScreen() |
| penaltyFlashScreen()}. |
| </p> |