| page.title=Руководство по тестированию |
| page.image=images/cards/card-build_16x9_2x.png |
| page.keywords=ресурсы для предварительной версии,androidm,тестирование,разрешения |
| |
| @jd:body |
| |
| <div id="qv-wrapper"> |
| <div id="qv"> |
| <h2>Содержание документа</h2> |
| <ol> |
| <li><a href="#runtime-permissions">Тестирование разрешений</a></li> |
| <li><a href="#doze-standby">Тестирование режима «Doze» и ждущего режима для приложений</a></li> |
| <li><a href="#ids">Автоматическое резервное копирование и идентификаторы устройств</a></li> |
| </ol> |
| </div> |
| </div> |
| |
| <p> |
| Android M Developer Preview предлагает вам проверить, как будут работать ваши приложения в следующей версии |
| платформы. В ней реализован ряд изменений в API-интерфейсах и поведении системы, |
| которые могут повлиять на работу вашего приложения, как описано в статьях <a href="{@docRoot}preview/api-overview.html">Обзор |
| API-интерфейсов</a> и <a href="{@docRoot}preview/behavior-changes.html">Изменения в работе</a>. Если вы хотите обеспечить удобство работы пользователей, при тестировании |
| вашего приложения в предварительной версии платформы |
| обратите особое внимание на изменения в системе. |
| </p> |
| |
| <p> |
| В настоящем руководстве приводится порядок тестирования функций предварительной версии с помощью вашего приложения. Советуем при этом обратить особое внимание |
| на работу следующих функций новой версии платформы, поскольку они в значительной мере повлияют на поведение |
| вашего приложения: |
| </p> |
| |
| <ul> |
| <li><a href="#runtime-permissions">разрешения</a>; |
| </li> |
| <li><a href="#doze-standby">режим «Doze» и ждущий режим для приложений</a>; |
| </li> |
| <li><a href="#ids">автоматическое резервное копирование и идентификаторы устройств</a>.</li> |
| </ul> |
| |
| <p> |
| Дополнительные сведения о том, как настроить физические или виртуальные устройства с помощью системного образа предварительной версии платформы |
| к тестированию, представлены в статье <a href="{@docRoot}preview/setup-sdk.html">Настройка SDK Preview</a>. |
| </p> |
| |
| |
| <h2 id="runtime-permissions">Тестирование разрешений</h2> |
| |
| <p> |
| В новой модели <a href="{@docRoot}preview/features/runtime-permissions.html">разрешений</a> |
| изменился подход к тому, каким образом пользователи смогут предоставлять разрешения для вашего приложения. Если раньше пользователь мог предоставить сразу все |
| разрешения в процессе установки, теперь ваше приложение должно запрашивать у него отдельные разрешения |
| во время работы. Это позволяет пользователю контролировать каждую операцию приложения, а также |
| лучше понимать, для чего приложение запрашивает то или иное разрешение. Пользователи могут в любой момент |
| предоставить разрешения для отдельного приложения или отозвать их. Эта новая |
| возможность в предварительной версии платформы, вероятнее всего, повлияет на поведение вашего приложения. Некоторые из его функций могут |
| пострадать или перестать работать. |
| </p> |
| |
| <p class="caution"> |
| Это касается работы всех приложений на новой платформе, даже тех, которые были разработаны для более ранних ее версий. |
| Платформа обеспечивает ограниченную поддержку устаревших приложений, однако вам следует приступить к |
| планированию перехода на новую модель разрешений уже сегодня, чтобы |
| опубликовать обновленную версию вашего приложения к моменту официального выпуска новой платформы. |
| </p> |
| |
| |
| <h3 id="permission-test-tips">Советы по тестированию</h3> |
| |
| <p> |
| Ниже представлены советы по тестированию, которые призваны помочь вам спланировать и провести тестирование вашего приложения с использованием новой |
| модели разрешений. |
| </p> |
| |
| <ul> |
| <li>Определите текущие разрешения приложения и связанные с этим фрагменты кода.</li> |
| <li>Протестируйте различные варианты работы пользователя со службами и данными, защищенными с помощью разрешений.</li> |
| <li>Протестируйте различные сочетания предоставленных и отозванных разрешений.</li> |
| <li>Воспользуйтесь инструментом {@code adb} для управления разрешениями из командной строки: |
| <ul> |
| <li>Получите список разрешений и их состояний по группам: |
| <pre>adb shell pm list permissions -d -g</pre> |
| </li> |
| <li>Предоставьте или отзовите одно или несколько разрешений с помощью следующего синтаксиса:<br> |
| <pre>adb shell pm [grant|revoke] <permission.name> ...</pre> |
| </li> |
| </ul> |
| </li> |
| <li>Проанализируйте работу вашего приложения со службами, использующими разрешения.</li> |
| </ul> |
| |
| <h3 id="permission-test-strategy">Стратегия тестирования</h3> |
| |
| <p> |
| Новая модель разрешений влияет на структуру и дизайн вашего приложения, а также на |
| работу пользователей с приложением и предлагаемые им варианты взаимодействия с вашим продуктом. Проанализируйте, как ваше приложение использует разрешения в настоящее время, |
| и продумайте новые варианты взаимодействия, которые хотите реализовать. В официальном выпуске |
| платформы будет представлена поддержка совместимости, однако мы рекомендует запланировать обновление приложения, не полагаясь |
| на эту поддержку. |
| </p> |
| |
| <p> |
| Определите круг разрешений, которые действительно необходимы для работы вашего приложения, и найдите фрагменты |
| кода, где используются службы, защищенные разрешениями. Для этого протестируйте работу приложения на новой |
| платформе и проанализируйте код. При тестировании следует сосредоточиться на использовании |
| разрешений на выполнение путем изменения параметра {@code targetSdkVersion} приложения для использования предварительной версии. Дополнительные |
| сведения представлены в статье <a href="{@docRoot}preview/setup-sdk.html#">Настройка SDK Preview</a>. |
| </p> |
| |
| <p> |
| Протестируйте работу приложения при различных сочетаниях предоставленных и отозванных разрешений, чтобы определить варианты работы пользователя, |
| которые зависят от разрешений. В случаях, когда зависимость не явная или не логичная, подумайте, можно ли |
| перестроить или структурировать такой вариант работы, чтобы устранить зависимость или четко обозначить, |
| для чего требуется каждое разрешение. |
| </p> |
| |
| <p> |
| Дополнительные сведения о поведении разрешений на выполнение и тестировании, а также советы и рекомендации по данному вопросу представлены на странице |
| <a href="{@docRoot}preview/features/runtime-permissions.html">Разрешения</a>. |
| |
| </p> |
| |
| |
| <h2 id="doze-standby">Тестирование режима «Doze» и ждущего режима для приложений</h2> |
| |
| <p> |
| Режим «Doze» и ждущий режим приложений, предназначенные для экономии энергии, ограничивают объем данных, обрабатываемых вашим приложением в фоновом режиме, |
| когда устройство не используется или приложение неактивно. Ограничения, |
| которые система может налагать на приложения, включают ограничение или отключение доступа к сети, |
| приостановку выполнения фоновых задач, приостановку отправки уведомлений, игнорирование запросов на пробуждение и будильников. Чтобы гарантировать |
| правильную работу приложения в условиях оптимизации энергопотребления, вам следует протестировать ваше приложение, |
| смоделировав эти режимы. |
| </p> |
| |
| <h4 id="doze">Тестирование работы приложения в режиме «Doze»</h4> |
| |
| <p>Ниже представлен порядок тестирования режима «Doze».</p> |
| |
| <ol> |
| <li>Установите на физическое или виртуальное устройство системный образ M Preview.</li> |
| <li>Подключите устройство к компьютеру для разработки и установите ваше приложение.</li> |
| <li>Запустите ваше приложение и не закрывайте его.</li> |
| <li>Смоделируйте переход устройства в режим «Doze», выполнив следующие команды: |
| |
| <pre> |
| $ adb shell dumpsys battery unplug |
| $ adb shell dumpsys deviceidle step |
| $ adb shell dumpsys deviceidle -h |
| </pre> |
| |
| </li> |
| <li>Понаблюдайте за поведением приложения после возвращения устройства в обычный режим. Убедитесь, что при выходе устройства из режима «Doze» приложение |
| должным образом возобновляет свою работу .</li> |
| </ol> |
| |
| |
| <h4 id="standby">Тестирование работы приложения в ждущем режиме</h4> |
| |
| <p>Ниже представлен порядок тестирования ждущего режима для приложений.</p> |
| |
| <ol> |
| <li>Установите на физическое или виртуальное устройство системный образ M Preview.</li> |
| <li>Подключите устройство к компьютеру для разработки и установите ваше приложение.</li> |
| <li>Запустите ваше приложение и не закрывайте его.</li> |
| <li>Смоделируйте переход приложения в ждущий режим, выполнив следующие команды: |
| |
| <pre> |
| $ adb shell am broadcast -a android.os.action.DISCHARGING |
| $ adb shell am set-idle <packageName> true |
| </pre> |
| |
| </li> |
| <li>Смоделируйте выход приложения из ждущего режима, выполнив следующую команду: |
| <pre>$ adb shell am set-idle <packageName> false</pre> |
| </li> |
| <li>Понаблюдайте за поведением приложения, когда оно возобновляет свою работу. Убедитесь, что оно |
| выходит из ждущего режима без сбоев. Обратите особое внимание на работу уведомлений и выполнение фоновых задач приложения |
| .</li> |
| </ol> |
| |
| <h2 id="ids">Автоматическое резервное копирование для приложений и идентификаторы устройств</h2> |
| |
| <p>Если во внутреннем хранилище вашего приложения имеются какие-либо идентификаторы устройства, такие как идентификатор Google |
| Cloud Messaging, |
| обязательно воспользуйтесь советами и рекомендациями, приведенными в статье |
| <a href="{@docRoot}preview/backup/index.html">Автоматическое резервное копирование для приложений</a>,чтобы исключить расположение |
| хранилища из списка объектов для автоматического резервного копирования. </p> |