diff options
author | David Friedman <dmail@google.com> | 2015-07-08 05:01:10 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-07-08 05:01:10 +0000 |
commit | 64e3997a78ae9b086fa389e31c9f357213ff3cd2 (patch) | |
tree | 694277f67df19dca582fbec850671cb52f07440a | |
parent | baa723c218429f536c46e9496c87fe3d611be888 (diff) | |
parent | 97dcc6fd1bef55db8af9429b1a71332fbfef6244 (diff) | |
download | frameworks_base-64e3997a78ae9b086fa389e31c9f357213ff3cd2.zip frameworks_base-64e3997a78ae9b086fa389e31c9f357213ff3cd2.tar.gz frameworks_base-64e3997a78ae9b086fa389e31c9f357213ff3cd2.tar.bz2 |
am 97dcc6fd: Docs: Remaining L10N for M Preview pages (ru).
* commit '97dcc6fd1bef55db8af9429b1a71332fbfef6244':
Docs: Remaining L10N for M Preview pages (ru).
-rw-r--r-- | docs/html-intl/intl/ru/preview/backup/index.jd | 327 | ||||
-rw-r--r-- | docs/html-intl/intl/ru/preview/download.jd | 348 | ||||
-rw-r--r-- | docs/html-intl/intl/ru/preview/features/app-linking.jd | 123 | ||||
-rw-r--r-- | docs/html-intl/intl/ru/preview/index.jd | 67 | ||||
-rw-r--r-- | docs/html-intl/intl/ru/preview/license.jd | 143 | ||||
-rw-r--r-- | docs/html-intl/intl/ru/preview/samples.jd | 70 | ||||
-rw-r--r-- | docs/html-intl/intl/ru/preview/setup-sdk.jd | 207 | ||||
-rw-r--r-- | docs/html-intl/intl/ru/preview/support.jd | 67 | ||||
-rw-r--r-- | docs/html-intl/intl/ru/preview/testing/guide.jd | 187 | ||||
-rw-r--r-- | docs/html-intl/intl/ru/preview/testing/performance.jd | 656 |
10 files changed, 2195 insertions, 0 deletions
diff --git a/docs/html-intl/intl/ru/preview/backup/index.jd b/docs/html-intl/intl/ru/preview/backup/index.jd new file mode 100644 index 0000000..1f9dacc --- /dev/null +++ b/docs/html-intl/intl/ru/preview/backup/index.jd @@ -0,0 +1,327 @@ +page.title=Автоматическое резервное копирование для приложений +page.tags=backup, previewresources, androidm +page.keywords=резервное копирование, автоматическое резервное копирование, предварительная версия +page.image=images/cards/card-auto-backup_2x.png +@jd:body + +<div id="qv-wrapper"> + <div id="qv"> + <h2>Содержание документа</h2> + <ol> + <li><a href="#overview">Обзор</a></li> + <li><a href="#configuring">Настройка резервного копирования данных</a></li> + <li><a href="#testing">Тестирование конфигурации резервного копирования</a></li> + <li><a href="#issues">Известные проблемы</a></li> + </ol> + </div> +</div> + +<p> + Пользователи зачастую тратят очень много времени и усилий на создание данных и настройку параметров в приложениях. + Поэтому одна из важнейших задач при разработке платформы — сделать так, чтобы пользователь не терял свои данные, если его устройство вышло из строя или он решил перейти на новое. + Устройства под управлением Android M Preview +отлично справляются с этой задачей, автоматически выполняя резервное копирование данных +приложения в Google Drive. Если пользователь перейдет на новое устройство, данные приложений будут автоматически перенесены +на него. +</p> + +<p> + Автоматическое резервное копирование предусмотрено для всех приложений, установленных на устройствах под управлением Android M Preview. При этом +вам не нужно добавлять в приложение дополнительный код. Система сама предложит пользователю возможность включить или отключить +автоматическое резервное копирование данных. Вы также можете указать, для каких данных приложения следует создавать резервные копии, а для каких — нет. +</p> + +<p> + В этой статье описывается новое поведение системы и порядок указания данных приложения, +подлежащих резервному копированию. +</p> + +<h2 id="overview">Обзор</h2> + +<p> + При автоматическом резервном копировании данные, создаваемые в вашем приложении на устройстве пользователя, отпраляются в +Google Drive пользователя и происходит их шифрование, что позволяет предотварить потерю данных. Хранилище для ваших данных предоставляется совершенно +бесплатно. Более того, данные резервного копирования засчитываются вне личной квоты пользователя на использование ресурсов Google Drive. В период использования M Developer Preview +пользователи могут хранить в облаке до 25 МБ данных для каждого приложения Android. +</p> + +<p> + Автоматическое резервное копирование выполняется каждые 24 часа, когда устройство не используется, находится в режиме зарядки и подключено к сети +Wi-Fi. При соблюдении необходимых условий служба диспетчера резервного копирования отправляет все доступные резервные копии данных +в облако. Когда пользователь переходит на использование нового устройства или удаляет и заново устанавливает +приложение, для которого имеется резервная копия, выполняется операция восстановления и резервные копии данных переносятся в каталог +переустановленного приложения. +</p> + +<p class="note"> + <strong>Примечание.</strong> Если ваше приложение использует устаревшую +<a href="{@docRoot}google/backup/index.html">службу резервного копирования Android</a>, то +вместо нового поведения системы будет применяться существующий механизм резервного копирования. +</p> + + +<h3 id="auto-exclude">Автоматически исключаемые файлы данных</h3> + +<p> + Не все данные приложения подлежат резервному копированию. В частности, временные файлы и кэш сохранять не нужно. Поэтому служба +автоматического резервного копирования по умолчанию исключает из этого процесса определенные файлы данных: +</p> + +<ul> + <li>файлы в каталогах, на которые ссылаются методы {@link android.content.Context#getCacheDir +getCacheDir()} и {@link android.content.ContextWrapper#getCodeCacheDir getCodeCacheDir()}; + + </li> + + <li>файлы во внешнем хранилище, кроме файлов, находящихся в каталогах, на которые ссылается метод +{@link android.content.Context#getExternalFilesDir getExternalFilesDir()}; + + </li> + + <li>файлы в каталоге, на который ссылается метод +{@link android.content.Context#getNoBackupFilesDir getNoBackupFilesDir()}. + </li> +</ul> + +<h2 id="configuring">Настройка резервного копирования данных</h2> + +<p> + Резервные копии создаются для данных, создаваемых любым приложением, которое установлено на устройстве под управлением M Preview, исключение составляют только +файлы, обозначенные в предыдущем разделе. Если вы хотите самостоятельно определить, +какие данные вашего приложения подлежат резервному копированию, а какие нет, это можно сделать с помощью соответствующих настроек в манифесте приложения. +</p> + +<h3 id="include-exclude">Включение или исключение данных</h3> + +<p> + В зависимости о того, какие данные требуются вашему приложению и как вы их сохраняете, вам может потребоваться задать определенные правила +для включения или исключения определенных файлов или каталогов. Служба автоматического резервного копирования +поддерживает настройку таких правил посредством XML-файла конфигурации и +манифеста приложения. В манифесте приложения можно указать файл конфигурации схемы резервного копирования, как показано в примере +ниже. +</p> + +<pre> +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + package="com.my.appexample"> + <uses-sdk android:minSdkVersion="MNC"/> + <uses-sdk android:targetSdkVersion="MNC"/> + <app ... +<strong> android:fullBackupContent="@xml/mybackupscheme"></strong> + </app> + ... +</manifest> +</pre> + +<p> + В этом примере кода атрибут <code>android:fullBackupContent</code> задает XML-файл, +расположенный в каталоге <code>res/xml/</code> проекта приложения, который называется +<code>mybackupscheme.xml</code>. В этом файле конфигурации содержатся правила резервного +копирования файлов. В следующем примере кода демонстрируется файл конфигурации, в котором из процесса резервного копирования исключается определенный +файл: +</p> + +<pre> +<?xml version="1.0" encoding="utf-8"?> +<full-backup-content> + <exclude domain="database" path="device_info.db"/> +</full-backup-content> +</pre> + +<p> + В этом примере конфигурации резервного копирования из операции исключается только определенный файл базы данных. + Для всех остальных файлов будут создаваться резервные копии. +</p> + +<h4>Синтаксис конфигурации резервного копирования</h4> + +<p> + Служба резервного копирования предоставляет вам возможность указать, какие файлы следует включить в процесс резервного копирования или +исключить из него. Синтаксис XML-файла конфигурации резервного копирования данных следующий: +</p> + +<pre> +<full-backup-content> + <include domain=["file" | "database" | "sharedpref" | "external" | "root"] path="string" /> + <exclude domain=["file" | "database" | "sharedpref" | "external" | "root"] path="string" /> +</full-backup-content> +</pre> + +<p> + С помощью перечисленных ниже элементов и атрибутов можно указать файлы, которые вы хотите включить в процесс резервного копирования или исключить из +него: +</p> + +<ul> + <li> + <code><include></code>: используйте этот элемент, если хотите, чтобы система не создавала резервные копии всех данных в вашем приложении, как это происходит по умолчанию, а копировала только определенный набор данных. + Если указан тег +<code><include></code>, система создает резервные копии <em>только для ресурсов</em> +с этим элементом. + </li> + + <li> + <code><exclude></code>: используйте этот элемент, чтобы указать набор ресурсов, которые +следует исключить из процесса резервного копирования. В таком случае система будет создавать резервные копии всех данных в приложении, кроме ресурсов с этим +элементом; + </li> + + <li> + <code>domain.</code>: тип ресурса, который необходимо включить в резервное копирование или исключить из него. Допустимые +значения для этого атрибута могут быть следующие: + </li> + + <li style="list-style: none"> + <ul> + <li> + <code>root</code>: указывает на то, что ресурс находится в корневом каталоге приложения; + </li> + + <li> + <code>file</code>: соответствует ресурсу в каталоге, возвращаемом методом +{@link android.content.Context#getFilesDir getFilesDir()}; + </li> + + <li> + <code>database</code>: соответствует базе данных, возвращаемой методом +{@link android.content.Context#getDatabasePath getDatabasePath()} или классом +{@link android.database.sqlite.SQLiteOpenHelper}; + </li> + + <li> + <code>sharedpref</code>: соответствует объекту {@link android.content.SharedPreferences}, +возвращаемому методом +{@link android.content.Context#getSharedPreferences getSharedPreferences()}; + </li> + + <li> + <code>external</code>: указывает на то, что ресурс находится во внешнем хранилище, и соответствует +файлу в каталоге, возвращаемом методом +{@link android.content.Context#getExternalFilesDir getExternalFilesDir()}; + </li> + + <li> + <code>path</code>: путь к ресурсу, который необходимо включить в резервное копирование или исключить +из него. + </li> + </ul> + </li> +</ul> + + +<h3 id="prohibit">Запрет резервного копирования данных</h3> + +<p> + Можно запретить автоматическое резервное копирование любых данных приложения. Для этого в манифесте в элементе приложения задайте для атрибута +<code>android:allowBackup</code> значение<code>false</code>. + Как это делается, видно в примере кода ниже: +</p> + +<pre> +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + package="com.my.appexample"> + <uses-sdk android:minSdkVersion="MNC"/> + <uses-sdk android:targetSdkVersion="MNC"/> + <app ... +<strong> android:allowBackup="false"></strong> + </app> + ... +</manifest> +</pre> + + +<h2 id="testing">Тестирование конфигурации резервного копирования</h2> + +<p> + После создания конфигурации резервного копирования необходимо ее протестировать и убедиться, что ваше приложение сохраняет данные и впоследствии +они могут быть должным образом восстановлены. +</p> + + +<h4>Включение журнала резервного копирования</h4> + +<p> + Чтобы упростить для себя анализ обработки вашего XML-файла функцией резервного копирования, прежде чем приступать к тестированию, +включите ведение журнала: +</p> + +<pre class="noprettyprint"> +$ adb shell setprop log.tag.BackupXmlParserLogging VERBOSE +</pre> + +<h4>Тестирование резервного копирования</h4> + +<p>Чтобы вручную запустить процесс резервного копирования, сначала активируйте диспетчер резервного копирования, выполнив следующую +команду: +</p> + +<pre class="noprettyprint"> +$ adb shell bmgr run +</pre> + +<p> + Затем вручную выполните резервное копирование вашего приложения с помощью следующей команды, указав название +пакета в виде параметра <code><PACKAGE></code>: +</p> + +<pre class="noprettyprint"> +$ adb shell bmgr fullbackup <PACKAGE></pre> + + +<h4>Тестирование восстановления</h4> + +<p> + Чтобы вручную запустить процесс восстановления после резервного копирования данных приложения, выполните следующую команду, указав название +пакета в виде параметра <code><PACKAGE></code>: +</p> + +<pre class="noprettyprint"> +$ adb shell bmgr restore <PACKAGE> +</pre> + +<p class="warning"> + <b>Предупреждение.</b> При выполнении этого действия перед операцией +восстановления работа приложения будет остановлена и все его данные удалены. +</p> + +<p> + Чтобы запустить процесс восстановления, удалите ваше приложение и снова установите его. Данные +приложения будут автоматически восстановлены из облака сразу по завершении установки. +</p> + + +<h4>Устранение неполадок резервного копирования</h4> + +<p> + При возникновении проблем можно стереть резервные копии данных и все связанные с ними метаданные. Для этого +отключите и повторного включите резервное копирование в разделе <strong>Настройки > Резервное копирование</strong>, восстановите заводские настройки устройства или выполните +следующую команду: +</p> + +<pre>$ adb shell bmgr wipe <TRANSPORT> <PACKAGE></pre> + +<p> + Перед значением <code><TRANSPORT></code> должен быть префикс <code>com.google.android.gms</code>. + Чтобы получить список транспорта, выполните следующую команду: +</p> + +<pre>$ adb shell bmgr list transports</pre> + +<h2 id="issues">Известные проблемы</h2> + +<p>Ниже перечислены известные проблемы в работе службы автоматического резервного копирования.</p> + +<ul> + <li><strong>Google Cloud Messaging</strong> +– существует проблема с приложениями, использующими Google Cloud Messaging для отправки push-уведомлений. Она связана с тем, +что при резервном копировании кода регистрации, возвращаемого Google Cloud Messaging, может нарушиться отправка +push-уведомлений для восстановленного приложения. Важно запросить у API-интерфейса новый код +регистрации после установки приложения на новое устройство, что не выполняется в случае резервного копирования +старого кода регистрации. Чтобы избежать этого, исключите код регистрации из списка файлов +для резервного копирования. + </li> +</ul> diff --git a/docs/html-intl/intl/ru/preview/download.jd b/docs/html-intl/intl/ru/preview/download.jd new file mode 100644 index 0000000..b799bfe --- /dev/null +++ b/docs/html-intl/intl/ru/preview/download.jd @@ -0,0 +1,348 @@ +page.title=Загрузки +page.image=images/cards/card-download_16-9_2x.png + +@jd:body + +<div style="position:relative; min-height:600px"> + + <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;"> + + <p class="sdk-terms-intro">Прежде чем приступить к загрузке и установке компонентов пакета SDK Android Preview, +примите следующие положения и условия.</p> + + <h2 class="norule">Положения и условия</h2> + + <div class="sdk-terms" onfocus="this.blur()" style="width:678px"> +Это лицензионное соглашение для пакета SDK Android Preview (далее «Лицензионное соглашение»). + +1. Введение + +1.1. Лицензия на пакет SDK Android Preview (далее по тексту настоящего Лицензионного соглашения – «Preview», который включает системные файлы Android, пакеты API-интерфейсов и файлы библиотеки Preview, если такие доступны) передается в соответствии с положениями настоящего Лицензионного соглашения. Настоящее Лицензионное соглашение является юридически обязывающим договором между компанией Google и любым лицом, использующим Preview. + +1.2. В настоящем Лицензионном соглашении термин «Android» означает набор программного обеспечения Android для устройств, предлагаемый к использованию в рамках проекта Android Open Source Project, который доступен на веб-сайте http://source.android.com/ (сведения, размещенные на этом сайте, могут периодически обновляться). + +1.3. Под термином «Google» понимается корпорация Google Inc., главный офис которой находится по адресу 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States (США). + +2. Принятие лицензионного соглашения + +2.1. Использование Preview возможно только после принятия условий настоящего Лицензионного соглашения. Запрещается использовать Preview, если вы не согласны с указанными в настоящем документе условиями и положениями. + +2.2. Нажатие кнопки принятия условий и/или использование Preview означает, что вы согласны с положениями настоящего Лицензионного соглашения. + +2.3. Вы не вправе использовать Preview и принимать условия данного Лицензионного соглашения, если по законам США или иных стран, включая страну вашего проживания или использования Preview, запрещается передавать Preview в ваш адрес. + +2.4. Если вы используете Preview в рамках своей компании или организации, вы соглашаетесь взять на себя обязательства по соблюдению настоящего Лицензионного соглашения от имени своего работодателя или другого юридического лица, и вы тем самым подтверждаете и гарантируете, что обладаете полными юридическими полномочиями связать вашего работодателя или иное подобное юридическое лицо обязательствами по настоящему Лицензионному соглашению. Если вы не обладаете необходимыми полномочиями, вы не вправе принимать указанные в настоящем документе условия и положения или использовать Preview от имени вашего работодателя или другого юридического лица. + +3. Лицензия на Preview от Google + +3.1. В соответствии с условиями настоящего Лицензионного соглашения Google предоставляет вам ограниченную, бесплатную и неэксклюзивную лицензию без права передачи и подлежащую отмене, на использование Preview, лично или в рамках своей компании или организации, исключительно в целях разработки приложений для платформы Android. + +3.2. Вы соглашаетесь с тем, что Google или третьим сторонам принадлежат все юридические и имущественные права, а также правовой интерес в отношении Preview, в том числе любые права на объекты интеллектуальной собственности, которые имеются в Preview. Термин «Права на интеллектуальную собственность» означает все возможные права в рамках патентного права, авторского права, закона о коммерческой тайне, закона о товарных знаках, а также иные возможные имущественные права. Google оставляет за собой все права, не предоставленные вам в явном виде. + +3.3. Вам запрещается использовать Preview в любых целях, которые однозначно не определены в настоящем Лицензионном соглашении. За исключением случаев, предусмотренных применимыми сторонними лицензиями, вам запрещается: (a) копировать (кроме случаев резервного копирования), изменять, адаптировать, повторно распространять, декомпилировать, осуществлять инженерный анализ, деассемблировать или создавать производные элементы Preview или иной его части; а также (b) загружать любую часть Preview в мобильные телефоны или иные устройства, помимо персонального компьютера, объединять любые части Preview с другим программным обеспечением, распространять любое программное обеспечение или устройства, содержащие части Preview. + +3.4. Вы соглашаетесь с тем, что не будете предпринимать никаких действий, которые прямо или косвенно могут привести к фрагментированию платформы Android, включая помимо прочего распространение набора средств разработки программного обеспечения, полученного из Preview, участие в создании таких средств и содействие их продвижению в любой форме. + +3.5. Использование, воспроизведение и распространение компонентов Preview, на которые распространяется лицензия на программное обеспечение с открытым исходным кодом, регулируются исключительно положениями и условиями такой лицензии на программное обеспечение с открытым исходным кодом, а не настоящим Лицензионным соглашением. Вы соглашаетесь обеспечивать хорошую репутацию получателя лицензии в отношении таких лицензии на программное обеспечение с открытым исходным кодом в рамках всех предоставленных ему прав, а также не допускать каких-либо действий, которые могут привести к аннулированию, приостановлению или нарушению таких прав + +3.6. Вы соглашаетесь с тем, что форма и содержание Preview , предоставляемого Google, могут быть изменены без предварительного уведомления, а также с тем, что будущие версии Preview могут оказаться несовместимыми с приложениями, разработанными в предыдущих версиях Preview. Вы соглашаетесь с тем, что Google вправе по собственному усмотрению и без предварительного уведомления прекратить (временно или навсегда) предоставление Preview (или любых функций в составе Preview) вам или пользователям. + +3.7. Ни одна из частей настоящего Лицензионного соглашения не предусматривает предоставления вам права использовать любые торговые наименования, товарные знаки, знаки обслуживания, логотипы, имена доменов или иные отличительные фирменные знаки, принадлежащие Google. + +3.8. Вы соглашаетесь с тем, что обязуетесь не удалять, не скрывать или не изменять любые уведомления об имущественных правах (включая уведомления об авторских правах и товарных знаках), которые могут сопровождать Preview или содержаться в нем. + +4. Использование Preview + +4.1. Компания Google выражает согласие с тем, что ни по какому положению настоящего Лицензионного соглашения не получает от вас (или ваших лицензиаров) каких-либо юридических и имущественных прав, а также правового интереса в отношении любых программных приложений, разработанных вами с помощью Preview, включая любые права на объекты интеллектуальной собственности, которые имеются в таких приложениях. + +4.2. Вы соглашаетесь использовать Preview и создавать приложения исключительно в целях, предусмотренных (a) настоящим Лицензионным соглашением и (b) любым применимым законом, нормативным актом или общепринятыми правилами или рекомендациями в соответствующей юрисдикции (включая любые законы, касающиеся экспорта данных или программного обеспечения из США или иных соответствующих стран, а также импорта в них). + +4.3. Вы соглашаетесь с тем, что при использовании Preview для разработки приложений вы обязуетесь обеспечивать конфиденциальность и защищать юридические права пользователей. В случае, если пользователи предоставляют вам свои имена, пароли или иные данные для входа либо свои персональные данные, вы обязуетесь уведомить пользователей о том, что такая информация будет присутствовать в вашем приложении, и вы также обязуетесь предоставить пользователям юридически соответствующие уведомление о конфиденциальности и средства правовой защиты. Если в вашем приложении хранится личная или конфиденциальная информация, предоставленная пользователями, вы обязуетесь обеспечить ее надлежащую защиту. Если пользователь предоставляет вам сведения о своей учетной записи Google, то ваше приложение может использовать такую информацию для доступа к учетной записи Google пользователя только при условии, что пользователь предоставил вам разрешение на это, и только в тех целях, которые обозначил пользователь. + +4.4. Вы соглашаетесь с тем, что обязуетесь не использовать Preview для любого рода деятельности, в том числе для разработки или распространения приложений, в целях нарушения работы и повреждения серверов, сетей или иной собственности или служб Google или любой третьей стороны. + +4.5. Вы соглашаетесь с тем, что несете единоличную ответственность (и признаете, что компания Google не несет ответственности ни перед вами, ни перед любой третьей стороной) за любые данные, содержимое или ресурсы, которые вы создаете, передаете или демонстрируете посредством Android и/или приложений для Android, а также за любые последствия ваших действий, связанных с этим (в том числе за любые убытки и любой ущерб, которые могут быть причинены Google). + +4.6. Вы соглашаетесь с тем, что несете единоличную ответственность (и признаете, что компания Google не несет ответственности ни перед вами, ни перед любой третьей стороной) за любое несоблюдение обязательств по настоящему Лицензионному соглашению, обязательств по любому применимому договору с третьей стороной или предусмотренных Условиями и положениями, за нарушение любых применимых законов или нормативных актов, а также за любые последствия ваших действий, связанных с таким нарушением (в том числе за любые убытки и любой ущерб, которые могут быть причинены Google). + +4.7 Preview находится на стадии разработки, поэтому ваши отзывы и результаты тестирования являются важной частью процесса разработки. Используя Preview, вы признаете, что реализация некоторых функций по-прежнему находится на этапе разработки и вам не следует рассчитывать на полную функциональность стабильной версии. Вы соглашаетесь не распространять или предоставлять любые приложения, использующие Preview, поскольку поддержка Preview будет прекращена после выпуска официальной версии пакета SDK Android. + +5. Ваши учетные данные разработчика + +5.1. Вы соглашаетесь с тем, что несете ответственность за обеспечение конфиденциальности любых учетных данных разработчика, которые компания Google может вам предоставить или которые вы можете самостоятельно выбрать, а также с тем, что вы несете единоличную ответственность за все приложения, разработанные с использованием ваших учетных данных разработчика. + +6. Конфиденциальность и личная информация + +6.1. В целях постоянного совершенствования и улучшения Preview компания Google вправе собирать определенные статистические данные об использовании программного обеспечения, включая уникальный идентификатор, связанный IP-адрес, номер версии программного обеспечения, а также сведения об используемых в Preview инструментах и/или службах и способах их применения. Перед тем как любые из таких данных будут отправлены в Google, в Preview отобразится соответствующее уведомление с просьбой дать свое согласие. В случае вашего отказа предоставить такие сведения соответствующие данные собираться не будут. + +6.2. Собранные данные изучаются в обобщенном виде с целью улучшения Preview и хранятся в соответствии с Политикой конфиденциальности Google, которая опубликована на веб-сайте по адресу http://www.google.com/policies/privacy/. + +7. Сторонние приложения + +7.1. Если вы используете Preview для запуска приложений, разработанных третьими сторонами или получающих доступ к данным, содержимому или ресурсам, предоставляемым третьей стороной, вы соглашаетесь с тем, что Google не несет ответственности за такие приложения, данные, содержимое или ресурсы. Вы осознаете, что единоличную ответственность за все данные, содержимое или ресурсы, доступ к которым вы можете получить посредством таких приложений третьих сторон, несет лицо, предоставившее их, а также то, что Google не несет ответственности за любые убытки или любой ущерб, которые могут возникнуть в результате использования вами любых таких сторонних приложений, данных, содержимого или ресурсов и в результате обращения к ним. + +7.2. Вы должны быть осведомлены о том, что данные, содержимое и ресурсы, предоставляемые вам посредством таких сторонних приложений, могут быть защищены правами на объекты интеллектуальной собственности, принадлежащие предоставляющим их лицам (или иным лицам либо компаниям от их имени). Вам запрещается изменять, сдавать в аренду, передавать, продавать, распространять такие данные, содержимое или ресурсы (полностью или частично), а также создавать на их основе производные элементы, если у вас нет на это разрешения от соответствующих владельцев. + +7.3. Вы осознаете, что использование вами таких сторонних приложений, данных или ресурсов может регулироваться отдельными условиями, заключенными между вами и соответствующей третьей стороной. + +8. Использование API-интерфейсов Google + +8.1. API-интерфейсы для получения данных Google. + +8.1.1. В случае использования вами любых API для получения данных из Google вы осознаете, что такие данные могут быть защищены правами на объекты интеллектуальной собственности, принадлежащие Google или предоставляющим их сторонам (или иным лицам либо компаниям от их имени). Использование вами подобных API может регулироваться дополнительными Условиями использования. Вам запрещается изменять, сдавать в аренду, передавать, продавать, распространять такие данные (полностью или частично), а также создавать на их основе производные элементы, если это не разрешено соответствующими Условиями использования. + +8.1.2. Если вы используете какие-либо API-интерфейсы для получения данных пользователя из Google, вы осознаете и соглашаетесь с тем, что вы обязуетесь получать такие данные исключительно с прямого согласия пользователя и только в тех целях, которые обозначил пользователь. + +9. Прекращение действия Лицензионного соглашения + +9.1 Настоящее Лицензионное соглашение остается в силе до тех пор, пока его действие не будет прекращено вами или Google, как указано ниже. + +9.2. Если вы желаете прекратить действие настоящего Лицензионного соглашения, вы вправе сделать это, прекратив использование Preview и любых соответствующих учетных данных разработчика. + +9.3. Google вправе в любое время прекратить действие настоящего Лицензионного соглашения, отправив предварительное уведомление или без него. + +9.4 Действие настоящего Лицензионного соглашения автоматически прекращается без предварительного уведомления или выполнения иных действий сразу после любого из следующих событий: +(A) компания Google прекращает предоставление Preview или определенных частей Preview пользователям на территории страны, в которой вы проживаете или используете услуги компании; +(B) компания Google выпускает окончательную версию SDK Android. + +9.5 В случае прекращения действия настоящего Лицензионного соглашения прекращается действие лицензии, предоставленной в рамках Лицензионного соглашения, и вам следует незамедлительно прекратить любое использование Preview, тогда как положения, изложенные в разделах 10, 11, 12 и 14 продолжают действовать бессрочно. + +10. ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ + +10.1. ВЫ ЧЕТКО ОСОЗНАЕТЕ И БЕЗОГОВОРОЧНО СОГЛАШАЕТЕСЬ С ТЕМ, ЧТО ВЫ ИСПОЛЬЗУЕТЕ PREVIEW ИСКЛЮЧИТЕЛЬНО НА СВОЙ СТРАХ И РИСК И ЧТО PREVIEW ПРЕДОСТАВЛЯЕТСЯ ВАМ НА УСЛОВИЯХ «КАК ЕСТЬ» И «КАК ДОСТУПНО» БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ СО СТОРОНЫ КОМПАНИИ GOOGLE. + +10.2 ИСПОЛЬЗОВАНИЕ ВАМИ PREVIEW И ЗАГРУЗКА ЛЮБЫХ МАТЕРИАЛОВ И ИХ ПОЛУЧЕНИЕ ИНЫМ СПОСОБОМ С ПОМОЩЬЮ PREVIEW ВЫПОЛНЯЕТСЯ ПО ВАШЕМУ СОБСТВЕННОМУ УСМОТРЕНИЮ НА СВОЙ СТРАХ И РИСК. ВСЯ ОТВЕТСТВЕННОСТЬ ЗА ЛЮБОЙ УЩЕРБ, ПРИЧИНЕННЫЙ ВАШЕЙ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЕ ИЛИ ДРУГОМУ ОБОРУДОВАНИЮ, А ТАКЖЕ ЗА ПОТЕРЮ ДАННЫХ, ВЫЗВАННУЮ ПОДОБНЫМ ИСПОЛЬЗОВАНИЕМ, ВОЗЛАГАЕТСЯ НА ВАС. НЕ ОГРАНИЧИВАЯ ВЫШЕСКАЗАННОЕ, ВЫ ПОНИМАЕТЕ, ЧТО PREVIEW НЕ ЯВЛЯЕТСЯ СТАБИЛЬНЫМ ВЫПУСКОМ И МОЖЕТ СОДЕРЖАТЬ ОШИБКИ, ДЕФЕКТЫ И УЯЗВИМОСТИ В СИСТЕМЕ БЕЗОПАСНОСТИ, КОТОРЫЕ МОГУТ ПРИВЕСТИ К СЕРЬЕЗНЫМ ПОВРЕЖДЕНИЯМ, ВКЛЮЧАЯ ПОЛНУЮ И БЕЗВОЗВРАТНУЮ ПОТЕРЮ РАБОТОСПОСОБНОСТИ ВАШЕГО КОМПЬЮТЕРА ИЛИ ИНОГО УСТРОЙСТВА. + +10.3. КОМПАНИЯ GOOGLE БЕЗОГОВОРОЧНО ОТКАЗЫВАЕТСЯ ОТ ЯВНЫХ И НЕЯВНЫХ ГАРАНТИЙ И УСЛОВИЙ ЛЮБОГО РОДА, ВКЛЮЧАЯ ПОМИМО ПРОЧЕГО НЕЯВНЫЕ ГАРАНТИИ И УСЛОВИЯ ТОВАРНОГО СОСТОЯНИЯ, ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ И ОТСУТСТВИЯ НАРУШЕНИЙ ПРАВ СОБСТВЕННОСТИ. + +11. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ + +11.1. ВЫ ЧЕТКО ОСОЗНАЕТЕ И БЕЗОГОВОРОЧНО СОГЛАШАЕТЕСЬ С ТЕМ, ЧТО КОМПАНИЯ GOOGLE, ЕЕ ДОЧЕРНИЕ И АФФИЛИРОВАННЫЕ КОМПАНИИ И ЛИЦЕНЗИАРЫ НЕ НЕСУТ ПЕРЕД ВАМИ ОТВЕТСТВЕННОСТИ, НЕЗАВИСИМО ОТ ЕЕ ПРИЧИНЫ И ВИДА, ЗА КАКИЕ-ЛИБО ПРЯМЫЕ, КОСВЕННЫЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ, ОПОСРЕДОВАННЫЕ И ШТРАФНЫЕ УБЫТКИ, ПОНЕСЕННЫЕ ВАМИ, ВКЛЮЧАЯ ПОТЕРЮ ДАННЫХ, ВНЕ ЗАВИСИМОСТИ ОТ ТОГО, БЫЛА ЛИ КОМПАНИЯ GOOGLE ИЛИ ЕЕ ПРЕДСТАВИТЕЛИ ИЗВЕЩЕНЫ О ВОЗМОЖНОСТИ ТАКОГО УЩЕРБА. + +12 Освобождение от ответственности + +12.1. В максимально допустимой законом степени вы соглашаетесь защищать, освобождать от ответственности и возможных претензий компанию Google, ее аффилированные компании и их соответствующих руководителей, служащих, сотрудников и агентов от всех возможных правовых требований, действий, судебных исков или разбирательств, а также от всех возможных убытков, обязательств, ущерба, издержек и расходов (включая обоснованные вознаграждения для адвокатов), возникающих в связи (a) с использованием вами Preview, (b) любыми приложениями, разрабатываемыми вами с помощью Preview и нарушающими любые права на объекты интеллектуальной собственности любого лица, а также порочащие любое лицо либо нарушающие права таких лиц на публичность и конфиденциальность, а также (c) в связи с любым несоблюдением вами положений настоящего Лицензионного соглашения. + +13. Изменения в Лицензионном соглашении + +13.1. Компания Google вправе вносить изменения в настоящее Лицензионное соглашение по мере выхода новых версий Preview. При внесении изменений Google создает новую версию Лицензионного соглашения и размещает ее на веб-сайте, на котором размещен Preview. + +14. Общие правовые условия + +14.1. Настоящее Лицензионное соглашение составляет полный текст юридического соглашения между вами и компанией Google, регулирует использование вами Preview (за исключением услуг, которые Google предоставляет на основании отдельного письменного соглашения) и полностью заменяет собой все предыдущие соглашения между вами и компанией Google в отношении Preview. + +14.2. Вы соглашаетесь с тем, что отсутствие каких-либо действий или судебных исков со стороны Google, направленных на соблюдение каких-либо правовых норм или исполнение средств правовой защиты, установленных настоящим Лицензионным соглашением (или которыми Google обладает в соответствии с каким-либо действующим законом), не означает отказ компании Google от своих прав и не препятствует компании Google использовать эти права или средства защиты. + +14.3. Если какой-либо судебный орган, уполномоченный рассматривать этот вопрос, признает недействительность какого-либо положения данного Лицензионного соглашения, то соответствующее положение будет исключено из Лицензионного соглашения с сохранением действия всех остальных его положений. Остальные положения Лицензионного соглашения по-прежнему будут действовать, и их соблюдение может обеспечиваться в судебном порядке. + +14.4. Вы признаете и соглашаетесь с тем, что все участники группы компаний, среди которых Google является материнской компанией, являются сторонними бенефициарами Лицензионного соглашения и что эти компании имеют право пользоваться привилегиями (или правами), предоставляемыми по настоящему Лицензионному соглашению, и напрямую требовать их соблюдения в судебном порядке. Все остальные физические и юридические лица не являются сторонними бенефициарами Лицензионного соглашения. + +14.5. ОГРАНИЧЕНИЯ НА ЭКСПОРТ. ИСПОЛЬЗОВАНИЕ PREVIEW РЕГУЛИРУЕТСЯ ЗАКОНАМИ И НОРМАТИВНЫМИ АКТАМИ США, КАСАЮЩИМИСЯ ЭКСПОРТА. ВЫ ОБЯЗУЕТЕСЬ СОБЛЮДАТЬ ВСЕ НАЦИОНАЛЬНЫЕ И МЕЖДУНАРОДНЫЕ ЗАКОНЫ ОБ ЭКСПОРТЕ, ПРИМЕНИМЫЕ К PREVIEW. ДАННЫЕ ЗАКОНЫ НАЛАГАЮТ ОГРАНИЧЕНИЯ НА РЕГИОНЫ, КРУГ ЛИЦ И СПОСОБ КОНЕЧНОГО ИСПОЛЬЗОВАНИЯ. + +14.6. Вы не вправе переуступать либо передавать права, предоставляемые по настоящему Лицензионному соглашению, без предварительного письменного согласия Google; любые попытки переуступки без такого согласия считаются недействительными. Вы обязуетесь не делегировать свои полномочия или обязательства по настоящему Лицензионному соглашению без предварительного письменного согласия Google. + +14.7. Лицензионное соглашение, а также взаимоотношения между вами и компанией Google в рамках настоящего Лицензионного соглашения регулируются законодательством штата Калифорния за исключением его норм коллизионного права. Вы и компания Google признаете, что урегулирование любых правовых вопросов, связанных с данным Лицензионным соглашением, относится исключительно к юрисдикции судов округа Санта-Клара, штат Калифорния. Несмотря на это, вы соглашаетесь с тем, что компания Google по-прежнему имеет право обращаться за наложением судебного запрета (или за получением аналогичного вида неотложной судебной защиты) в суды любой юрисдикции. + </div><!-- sdk terms --> + + + + <div id="sdk-terms-form"> + <p> + <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" /> + <label id="agreeLabel" for="agree">Я прочитал(а) и принимаю изложенные выше положения и условия</label> + </p> + <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p> + </div> + + + </div><!-- end TOS --> + + + <div id="landing"> + +<div id="qv-wrapper"> + <div id="qv"> + <h2>Содержание документа</h2> + <ol> + <li><a href="#sdk">SDK Preview</a></li> + <li><a href="#docs">Документация для разработчиков</a></li> + <li><a href="#images">Системные образы оборудования</a></li> + </ol> + </div> +</div> + + +<p> + В состав SDK Android M Preview входят инструменты для разработки, системные файлы Android и файлы библиотеки, призванные +помочь вам в тестировании ваших приложений и новых API-интерфейсов, которые будут реализованы в предстоящем выпуске платформы. В этом документе +рассказывается, как загрузить необходимые компоненты Preview для тестирования ваших приложений. +</p> + + +<h2 id="sdk">SDK Preview</h2> + +<p> + Загрузить SDK Preview можно с помощью <a href="{@docRoot}tools/help/sdk-manager.html">менеджера SDK Android</a>. Дополнительные сведения +о загрузке и настройке SDK Preview представлены в статье <a href="{@docRoot}preview/setup-sdk.html#downloadSdk">Настройка SDK Preview</a>. +</p> + + +<h2 id="docs">Документация для разработчиков</h2> + +<p> + В пакете документации для разработчиков, который доступен для загрузки, представлены подробные сведения об API-интерфейсах, а также о различиях между API-интерфейсами для Preview. +</p> + +<table> + <tr> + <th scope="col">Описание</th> + <th scope="col">Файлы для загрузки и контрольные суммы</th> + </tr> + <tr id="docs-dl"> + <td>Android M Preview<br>Документация для разработчиков</td> + <td><a href="#top" onclick="onDownload(this)">m-preview-1-developer-docs.zip</a><br> + MD5: b65201b0d35416f5a1b7a071b52854a7<br> + SHA-1: d47e856aa65e06897e6edd902ad8d2b1f05ac3ec + </td> + </tr> +<table> + + +<h2 id="images">Системные образы оборудования</h2> + +<p> + С помощью этих системных образов можно установить предварительную версию платформы на физическое устройство для +тестирования. Используя один из этих образов для настройки устройства, вы можете установить и протестировать ваше приложение, чтобы узнать, как оно будет работать в будущей версии +платформы. В процессе установки системного образа +<em>на устройстве удаляются все данные</em>, поэтому перед установкой образа обязательно сделайте резервное копирование данных. + +</p> + +<p class="warning"> + <b>Предупреждение.</b> Перечисленные ниже системные образы Android являются предварительными и могут быть изменены. Использование вами +этих образов регулируется Лицензионным соглашением на использование пакета SDK Android Preview. Системные образы предварительной версии Android +не являются стабильными и могут содержать ошибки и дефекты, +способные повредить ваши компьютеры, устройства и данные. Системные образы предварительной версии Android не проходят такое же тестирование, +как заводская ОС. Поэтому в результате использования этих образов ваш телефон и установленные на нем приложения +и службы могут перестать работать. +</p> + +<table> + <tr> + <th scope="col">Устройство</th> + <th scope="col">Файлы для загрузки и контрольные суммы</th> + </tr> + <tr id="hammerhead"> + <td>Nexus 5 (GSM/LTE) <br>"hammerhead"</td> + <td><a href="#top" onclick="onDownload(this)">hammerhead-MPZ44Q-preview-55d76d3a.tgz</a><br> + MD5: 9e2631b06c6525e401ceaae3677ff320<br> + SHA-1: 55d76d3a379b18f3363f28d8a462c236ab96fc36 + </td> + </tr> + <tr id="shamu"> + <td>Nexus 6 <br>"shamu"</td> + <td><a href="#top" onclick="onDownload(this)">shamu-MPZ44Q-preview-c1d6506a.tgz</a><br> + MD5: 307cbf9dab0a38df4ab2639d02be12aa<br> + SHA-1: c1d6506a74094bdb2f4b8677c7fe4967334f9ea8 + </td> + </tr> + <tr id="volantis"> + <td>Nexus 9 <br>"volantis"</td> + <td><a href="#top" onclick="onDownload(this)">volantis-MPZ44Q-preview-d15ad483.tgz</a><br> + MD5: fae40377fd999d2b09128665c915264d<br> + SHA-1: 7ab05f96093b2cb370b226f65931202714cbc2ca + </td> + </tr> + <tr id="fugu"> + <td>Nexus Player <br>"fugu"</td> + <td><a href="#top" onclick="onDownload(this)">fugu-MPZ44Q-preview-2406ba05.tgz</a><br> + MD5: 815902141a85cc65e7725f005cad31d5<br> + SHA-1: 2406ba0598dea1e69110497ac0bc8e16789bc8fb + </td> + </tr> +</table> + +<h3 id="install-image">Установка образа на устройство</h3> + +<p> + Чтобы воспользоваться образом устройства для тестирования, установите его на совместимое устройство. Следуйте +инструкциям по установке системного образа. +</p> + +<ol> + <li>Загрузите и распакуйте один из указанных выше пакетов с системным образом.</li> + <li>Создайте резервные копии данных, которые хотите сохранить.</li> + <li>Следуйте инструкциям, приведенным на сайте +<a href="https://developers.google.com/android/nexus/images#instructions">developers.google.com/android</a>, +чтобы прошить ваше устройство с использованием выбранного образа.</li> +</ol> + +<p class="note"> + <strong>Примечание.</strong> После прошивки устройства для разработки с использованием системного образа с предварительной версией платформы +она будет автоматически обновлена до следующего выпуска Preview по беспроводной сети. +</p> + +<h3 id="revertDevice">Сброс параметров устройства до заводских настроек</h3> + +<p> + Чтобы удалить Preview и восстановить заводские настройки устройства, перейдите на сайт +<a href="http://developers.google.com/android/nexus/images">developers.google.com/android</a> +и загрузите образ, который требуется использовать для прошивки. Следуйте инструкциям, приведенным на странице, +чтобы прошить ваше устройство с использованием выбранного образа. +</p> + + </div><!-- landing --> + +</div><!-- relative wrapper --> + + + +<script> + var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/"; + function onDownload(link) { + + $("#downloadForRealz").html("Download " + $(link).text()); + $("#downloadForRealz").attr('href', urlRoot + $(link).text()); + + $("#tos").fadeIn('fast'); + $("#landing").fadeOut('fast'); + + return true; + } + + + function onAgreeChecked() { + /* verify that the TOS is agreed */ + if ($("input#agree").is(":checked")) { + /* reveal the download button */ + $("a#downloadForRealz").removeClass('disabled'); + } else { + $("a#downloadForRealz").addClass('disabled'); + } + } + + function onDownloadForRealz(link) { + if ($("input#agree").is(':checked')) { + /* + $("#tos").fadeOut('fast'); + $("#landing").fadeIn('fast'); + */ + + ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html()); + + /* + location.hash = ""; + */ + return true; + } else { + return false; + } + } + + $(window).hashchange( function(){ + if (location.hash == "") { + location.reload(); + } + }); + +</script> diff --git a/docs/html-intl/intl/ru/preview/features/app-linking.jd b/docs/html-intl/intl/ru/preview/features/app-linking.jd new file mode 100644 index 0000000..f991717 --- /dev/null +++ b/docs/html-intl/intl/ru/preview/features/app-linking.jd @@ -0,0 +1,123 @@ +page.title=Связи приложений +page.image=images/cards/card-app-linking_2x.png +page.keywords=связывание приложений, прямые ссылки, намерения +@jd:body + +<div id="qv-wrapper"> + <div id="qv"> + <h2>Содержание документа</h2> + <ol> + <li><a href="#web-assoc">Объявление связи с веб-сайтом</a></li> + <li><a href="#verfy-links">Запрос проверки связи приложений</a></li> + <li><a href="#user-manage">Настройки связи приложений</a></li> + </ol> + </div> +</div> + +<p> + Система намерений Android представляет собой гибкий механизм, позволяющий приложениям обрабатывать контент и запросы. + Многие приложения могут объявлять в своих фильтрах намерений соответствующие шаблоны URI. При нажатии пользователем на веб-ссылку +, у которой нет обработчика запуска по умолчанию, платформа может выдать ему диалоговое окно со списком доступных + приложений, объявивших соответствующие фильтры намерений. +</p> + +<p> + В Android M Developer Preview представлена поддержка связей приложений. Она выгодно отличается от существующих методов обработки ссылок, + предоставляя разработчикам возможность связывать приложение с принадлежащим им веб-доменом. Благодаря этой связи +платформа автоматически, не спрашивая у пользователя, определит приложение, которое следует использовать по умолчанию для обработки определенной +веб-ссылки. +</p> + + +<h2 id="web-assoc">Объявление связи с веб-сайтом</h2> + +<p> + Чтобы установить связь, владельцу сайта следует объявить связь с приложением. Для этого владелец +размещает в домене файл JSON с именем {@code statements.json}. Местопложение файла должно быть хорошо известно. + +</p> + +<pre>http://<domain>:<optional port>/.well-known/statements.json</pre> + +<p class="note"> + <strong>Примечание.</strong> + В период использования M Developer Preview проверка файла JSON выполняется по протоколу HTTP. В официальном +выпуске платформы она будет осуществляться по зашифрованному протоколу HTTPS. +</p> + +<p> + В этом файле JSON содержатся сведения о приложении Android, которое следует использовать в качестве обработчика по умолчанию для URL +в этом домене. Для определения приложения используются следующие поля: +</p> + +<ul> + <li>{@code package_name}: имя пакета, объявленное в манифесте приложения;</li> + + <li>{@code sha256_cert_fingerprints}: контрольная сумма SHA256 сертификата, который использовался для подписи вашего приложения. + Чтобы сгенерировать контрольную сумму, можно выполнить следующую команду в программе Java keytool: + <pre>keytool -list -v -keystore my-release-key.keystore</pre> + </li> +</ul> + +<p> + Ниже представлен пример содержимого и формата файла +{@code statements.json}. +</p> + +<pre> +[{ + "relation": ["delegate_permission/common.handle_all_urls"], + "target": { + "namespace": "android_app", + "package_name": "<strong><package name></strong>", + "sha256_cert_fingerprints": ["<strong>6C:EC:C5:0E:34:AE....EB:0C:9B</strong>"] + } +}] +</pre> + + +<h2 id="verfy-links">Запрос проверки связи приложений</h2> + +<p> + Приложение может отправить платформе запрос об автоматической проверке любых связей приложений, определенных в именах узлов в элементах данных +его фильтров намерений, с использованием файлов {@code statements.json}, размещенных в +соответствующих веб-доменах. Чтобы запросить проверку связи приложений, добавьте к каждому необходимому фильтру намерений в манифесте атрибут {@code android:autoVerify}, +как показано в следующем фрагменте кода +манифеста: +</p> + +<pre> +<activity ...> + <intent-filter <strong>android:autoVerify="true"</strong>> + <action android:name="android.intent.action.VIEW" /> + <category android:name="android.intent.category.DEFAULT" /> + <category android:name="android.intent.category.BROWSABLE" /> + <data android:scheme="http" android:host="www.android.com" /> + <data android:scheme="https" android:host="www.android.com" /> + </intent-filter> +</activity> +</pre> + +<p> + Если в манифесте приложения присутствует атрибут {@code android:autoVerify}, платформа пытается +проверить связи приложений при установке приложения. Если платформе не +удается сделать это, приложение не выбирается в качестве предпочтительного для обработки веб-ссылок. В следующий раз, когда пользователь +нажмет на одну из ссылок, платформа снова отобразит для него +соответствующее диалоговое окно. +</p> + +<p class="note"> + <strong>Примечание.</strong> При тестировании существует вероятность ложных срабатываний, когда проверка завершается +сбоем, но при этом пользователь установил в системном приложении «Настройки» ваше приложение как используемое по умолчанию при вызове поддерживаемых ссылок +. В таком случае диалоговое окно не отображается, а ссылка ведет напрямую в ваше приложение, +однако это происходит из-за настроек пользователя и не означает, что проверка пройдена успешно. +</p> + + +<h2 id="user-manage">Настройки связи приложений</h2> + +<p> + Пользователи могут изменить настройки связи приложений и выбрать предпочтительный для них способ обработки URL. Для просмотра связей приложений и управления ими +можно воспользоваться системным приложением «Настройки» (в разделе <strong>Настройки > Приложения > Информация о приложении > +Открывать по умолчанию</strong>. +</p> diff --git a/docs/html-intl/intl/ru/preview/index.jd b/docs/html-intl/intl/ru/preview/index.jd new file mode 100644 index 0000000..27adbf9 --- /dev/null +++ b/docs/html-intl/intl/ru/preview/index.jd @@ -0,0 +1,67 @@ +page.title=Android M Developer Preview +page.tags="preview", +meta.tags="preview, M preview", androidm +fullpage=true +section.landing=true +header.hide=1 +footer.hide=1 +@jd:body + +<section class="dac-expand dac-hero dac-light" > + <div class="wrap"> + <div class="cols dac-hero-content"> + <div class="col-9of16 col-push-7of16 dac-hero-figure"> + <img class="dac-hero-image" src="{@docRoot}images/home/devices-hero_620px_2x.png" srcset="{@docRoot}images/home/devices-hero_620px.png 1x, + {@docRoot}images/home/devices-hero_620px_2x.png 2x"> + </div> + <div class="col-7of16 col-pull-9of16"> + <h1 class="dac-hero-title">Android M Developer Preview</h1> + <p class="dac-hero-description"> + Подготовьтесь к выходу следующей версии платформы Android. Протестируйте ваши приложения на устройствах Nexus 5, 6, 9 и +Player. Узнайте о новых возможностях:— <strong>разрешениях на выполнение</strong>, +новых функциях энергосбережения — <strong>режим «Doze»</strong> и <strong>ждущий режим для приложений</strong>, о новом +<strong>помощнике</strong> и о многом другом. + </p> + + <a class="dac-hero-cta" href="{@docRoot}preview/overview.html"> + <span class="dac-sprite dac-auto-chevron"></span> + Итак, приступим! +</a><br> + </div> + </div> + <div class="dac-section dac-small"> + <div class="resource-widget resource-flow-layout col-16" + data-query="collection:preview/landing/resources" + data-cardSizes="6x2" + data-maxResults="6"></div> + </div> + </div> +</section> + +<section class="dac-section dac-gray"><div class="wrap"> + <h1 class="dac-section-title">Ресурсы</h1> + <div class="dac-section-subtitle"> + Важная информация, которая поможет вам подготовить ваши приложения для работы в Android M. + </div> + + <div class="resource-widget resource-flow-layout col-16" + data-query="collection:preview/landing/more" + data-cardSizes="6x6" + data-maxResults="16"></div> + + <ul class="dac-section-links"> + <li class="dac-section-link"> + <a href="https://code.google.com/p/android-developer-preview/"> + <span class="dac-sprite dac-auto-chevron"></span> + Сообщить о проблеме +</a> + </li> + <li class="dac-section-link"><a href="http://g.co/dev/AndroidMDevPreview"> + <span class="dac-sprite dac-auto-chevron"></span> + Присоединиться к сообществу в G+ +</a> + </li> + </ul> + </div> +</section> + diff --git a/docs/html-intl/intl/ru/preview/license.jd b/docs/html-intl/intl/ru/preview/license.jd new file mode 100644 index 0000000..fe9901b --- /dev/null +++ b/docs/html-intl/intl/ru/preview/license.jd @@ -0,0 +1,143 @@ +page.title=Лицензионное соглашение + +@jd:body + +<p> +Чтобы приступить к работе с пакетом SDK Android Preview, примите указанные ниже положения и условия. +Как описано ниже, обратите внимание, что это предварительная версия пакета SDK Android, которая может быть изменена и которую вы используете на свой страх и риск. Пакет SDK Android Preview не является стабильным и может содержать ошибки и дефекты, которые могут повредить ваши компьютеры, устройства и данные. +</p> + +<p> +Это лицензионное соглашение для пакета SDK Android Preview (далее «Лицензионное соглашение»). +</p> +<div class="sdk-terms" style="height:auto;border:0;padding:0;width:700px"> +1. Введение + +1.1. Лицензия на пакет SDK Android Preview (далее по тексту настоящего Лицензионного соглашения – «Preview», который включает системные файлы Android, пакеты API-интерфейсов и файлы библиотеки Preview, если такие доступны) передается в соответствии с положениями настоящего Лицензионного соглашения. Настоящее Лицензионное соглашение является юридически обязывающим договором между компанией Google и любым лицом, использующим Preview. + +1.2. В настоящем Лицензионном соглашении термин «Android» означает набор программного обеспечения Android для устройств, предлагаемый к использованию в рамках проекта Android Open Source Project, который доступен на веб-сайте http://source.android.com/ (сведения, размещенные на этом сайте, могут периодически обновляться). + +1.3. Под термином «Google» понимается корпорация Google Inc., главный офис которой находится по адресу 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States (США). + +2. Принятие лицензионного соглашения + +2.1. Использование Preview возможно только после принятия условий настоящего Лицензионного соглашения. Запрещается использовать Preview, если вы не согласны с указанными в настоящем документе условиями и положениями. + +2.2. Нажатие кнопки принятия условий и/или использование Preview означает, что вы согласны с положениями настоящего Лицензионного соглашения. + +2.3. Вы не вправе использовать Preview и принимать условия данного Лицензионного соглашения, если по законам США или иных стран, включая страну вашего проживания или использования Preview, запрещается передавать Preview в ваш адрес. + +2.4. Если вы используете Preview в рамках своей компании или организации, вы соглашаетесь взять на себя обязательства по соблюдению настоящего Лицензионного соглашения от имени своего работодателя или другого юридического лица, и вы тем самым подтверждаете и гарантируете, что обладаете полными юридическими полномочиями связать вашего работодателя или иное подобное юридическое лицо обязательствами по настоящему Лицензионному соглашению. Если вы не обладаете требуемыми полномочиями, вы не вправе принимать указанные в настоящем документе условия и положения или использовать Preview от имени вашего работодателя или другого юридического лица. + +3. Лицензия на Preview от Google + +3.1. В соответствии с условиями настоящего Лицензионного соглашения Google предоставляет вам ограниченную, бесплатную и неэксклюзивную лицензию без права передачи и подлежащую отмене, на использование Preview, лично или в рамках своей компании или организации, исключительно в целях разработки приложений для платформы Android. + +3.2. Вы соглашаетесь с тем, что Google или третьим сторонам принадлежат все юридические и имущественные права, а также правовой интерес в отношении Preview, в том числе любые права на объекты интеллектуальной собственности, которые имеются в Preview. Термин «Права на интеллектуальную собственность» означает все возможные права в рамках патентного права, авторского права, закона о коммерческой тайне, закона о товарных знаках, а также иные возможные имущественные права. Google оставляет за собой все права, не предоставленные вам в явном виде. + +3.3. Вам запрещается использовать Preview в любых целях, которые однозначно не определены в настоящем Лицензионном соглашении. За исключением случаев, предусмотренных применимыми сторонними лицензиями, вам запрещается: (a) копировать (за исключением резервного копирования), изменять, адаптировать, повторно распространять, декомпилировать, осуществлять инженерный анализ, деассемблировать или создавать производные элементы Preview или иной его части; а также (b) загружать любую часть Preview в мобильные телефоны или иные устройства, помимо персонального компьютера, объединять любые части Preview с другим программным обеспечением, распространять любое программное обеспечение или устройства, содержащие части Preview. + +3.4. Вы соглашаетесь с тем, что не будете предпринимать никаких действий, которые прямо или косвенно могут привести к фрагментированию платформы Android, включая помимо прочего распространение набора средств разработки программного обеспечения, полученных из Preview, участие в создании таких средств и содействие их продвижению в любой форме. + +3.5. Использование, воспроизведение и распространение компонентов Preview, на которые распространяется лицензия на программное обеспечение с открытым исходным кодом, регулируются исключительно положениями и условиями такой лицензии на программное обеспечение с открытым исходным кодом, а не настоящим Лицензионным соглашением. Вы соглашаетесь обеспечивать хорошую репутацию получателя лицензии в отношении таких лицензии на программное обеспечение с открытым исходным кодом в рамках всех предоставленных ему прав, а также не допускать каких-либо действий, которые могут привести к аннулированию, приостановлению или нарушению таких прав + +3.6. Вы соглашаетесь с тем, что форма и содержание Preview , предоставляемого Google, могут быть изменены без предварительного уведомления, а также с тем, что будущие версии Preview могут оказаться несовместимыми с приложениями, разработанными в предыдущих версиях Preview. Вы соглашаетесь с тем, что Google вправе на свое собственное усмотрение и без предварительного уведомления прекратить (временно или навсегда) предоставление Preview (или любых функций в составе Preview) вам или пользователям. + +3.7. Ни одна из частей настоящего Лицензионного соглашения не предусматривает предоставления вам права использовать любые торговые наименования, товарные знаки, знаки обслуживания, логотипы, имена доменов или иные отличительные фирменные знаки, принадлежащие Google. + +3.8. Вы соглашаетесь с тем, что обязуетесь не удалять, не скрывать или не изменять любые уведомления об имущественных правах (включая уведомления об авторских правах и товарных знаках), которые могут сопровождать Preview или содержаться в нем. + +4. Использование Preview + +4.1. Компания Google выражает согласие с тем, что ни по какому положению настоящего Лицензионного соглашения не получает от вас (или ваших лицензиаров) каких-либо юридических и имущественных прав, а также правового интереса в отношении любых программных приложений, разработанных вами с помощью Preview, включая любые права на объекты интеллектуальной собственности, которые имеются в таких приложениях. + +4.2. Вы соглашаетесь использовать Preview и создавать приложения исключительно в целях, предусмотренных (a) настоящим Лицензионным соглашением и (b) любым применимым законом, нормативным актом или общепринятыми правилами или рекомендациями в соответствующей юрисдикции (включая любые законы, касающиеся экспорта данных или программного обеспечения из США или иных соответствующих стран, а также импорта в них).4.3. Вы соглашаетесь с тем, что при использовании Preview для разработки приложений вы обязуетесь обеспечивать конфиденциальность данных и защищать юридические права пользователей. + +4.3. Вы соглашаетесь с тем, что при использовании SDK для разработки приложений для неопределенного круга пользователей вы обязуетесь обеспечивать конфиденциальность данных и защищать юридические права таких пользователей. В случае если пользователи предоставляют вам свои имена, пароли или иные данные для входа либо свои персональные сведения, вы обязуетесь уведомить пользователей о том, что такая информация будет присутствовать в вашем приложении, и вы также обязуетесь предоставить таким пользователям юридически соответствующее уведомление о конфиденциальности и средства правовой защиты. Если в вашем приложении хранится персональная или конфиденциальная информация, предоставленная пользователями, вы обязуетесь обеспечить ее надлежащую защиту. Если пользователь предоставляет вам сведения о своей учетной записи Google, то ваше приложение может использовать такую информацию для доступа к учетной записи Google пользователя только тогда, когда пользователь предоставил вам разрешение на это, и только в тех целях, которые обозначил пользователь. + +4.4. Вы соглашаетесь с тем, что обязуетесь не использовать Preview для любого рода деятельности, в том числе для разработки или распространения приложений, в целях нарушения работы и повреждения серверов, сетей или иной собственности или служб Google или любой третьей стороны. + +4.5. Вы соглашаетесь с тем, что несете единоличную ответственность (и признаете, что компания Google не несет ответственности ни перед вами, ни перед любой третьей стороной) за любые данные, содержимое или ресурсы, которые вы создаете, передаете или демонстрируете посредством Android и/или приложений для Android, а также за любые последствия ваших действий, связанных с этим (в том числе за любые убытки и любой ущерб, которые могут быть причинены Google). + +4.6. Вы соглашаетесь с тем, что несете единоличную ответственность (и признаете, что компания Google не несет ответственности ни перед вами, ни перед любой третьей стороной) за любое несоблюдение обязательств по настоящему Лицензионному соглашению, обязательств по любому применимому договору с третьей стороной или предусмотренных Условиями и положениями, за нарушение любых применимых законов или нормативных актов, а также за любые последствия ваших действий, связанных с таким нарушением (в том числе за любые убытки и любой ущерб, которые могут быть причинены Google). + +4.7 Preview находится на стадии разработки, поэтому ваши отзывы и результаты тестирования являются важной частью процесса разработки. Используя Preview, вы признаете, что реализация некоторых функций по-прежнему находится на этапе разработки и вам не следует рассчитывать на полную функциональность стабильной версии. Вы соглашаетесь не распространять или предоставлять любые приложения, использующие Preview, поскольку поддержка Preview будет прекращена после выпуска официальной версии пакета SDK Android. + +5. Ваши учетные данные разработчика + +5.1. Вы соглашаетесь с тем, что несете ответственность за обеспечение конфиденциальности любых учетных данных разработчика, которые компания Google может вам предоставить или которые вы можете самостоятельно выбрать, а также с тем, что вы несете единоличную ответственность за все приложения, разработанные с использованием ваших учетных данных разработчика. + +6. Конфиденциальность и личная информация + +6.1. В целях постоянного совершенствования и улучшения Preview компания Google вправе собирать определенные статистические данные об использовании программного обеспечения, включая уникальный идентификатор, связанный IP-адрес, номер версии программного обеспечения, а также сведения об используемых в Preview инструментах и/или службах и способах их применения. Перед тем как любые из таких данных будут отправлены в Google, в Preview отобразится соответствующее уведомление с просьбой дать свое согласие. В случае вашего отказа предоставить такие сведения соответствующие данные собираться не будут. + +6.2. Собранные данные изучаются в обобщенном виде с целью улучшения Preview и хранятся в соответствии с Политикой конфиденциальности Google, которая опубликована на веб-сайте по адресу http://www.google.com/policies/privacy/. + +7. Сторонние приложения + +7.1. Если вы используете Preview для запуска приложений, разработанных третьими сторонами или получающих доступ к данным, содержимому или ресурсам, предоставляемым третьей стороной, вы соглашаетесь с тем, что Google не несет ответственности за такие приложения, данные, содержимое или ресурсы. Вы осознаете, что единоличную ответственность за все данные, содержимое или ресурсы, доступ к которым вы можете получить посредством таких приложений третьих сторон, несет лицо, предоставившее их, а также то, что Google не несет ответственности за любые убытки или любой ущерб, которые могут возникнуть в результате использования вами любых таких сторонних приложений, данных, содержимого или ресурсов и в результате обращения к ним. + +7.2. Вы должны быть осведомлены о том, что данные, содержимое и ресурсы, предоставляемые вам посредством таких сторонних приложений, могут быть защищены правами на объекты интеллектуальной собственности, принадлежащие предоставляющим их лицам (или иным лицам либо компаниям от их имени). Вам запрещается изменять, сдавать в аренду, передавать, продавать, распространять такие данные, содержимое или ресурсы (полностью или частично), а также создавать на их основе производные элементы, если у вас нет на это разрешения от соответствующих владельцев. + +7.3. Вы осознаете, что использование вами таких сторонних приложений, данных или ресурсов может регулироваться отдельными условиями, заключенными между вами и соответствующей третьей стороной. + +8. Использование API-интерфейсов Google + +8.1. API-интерфейсы для получения данных Google. + +8.1.1. В случае использования вами любых API для получения данных из Google вы осознаете, что такие данные могут быть защищены правами на объекты интеллектуальной собственности, принадлежащие Google или предоставляющим их сторонам (или иным лицам либо компаниям от их имени). Использование вами подобных API может регулироваться дополнительными Условиями использования. Вам запрещается изменять, сдавать в аренду, передавать, продавать, распространять такие данные (полностью или частично), а также создавать на их основе производные элементы, если это не разрешено соответствующими Условиями использования. + +8.1.2. Если вы используете какие-либо API-интерфейсы для получения данных пользователя из Google, вы осознаете и соглашаетесь с тем, что вы обязуетесь получать такие данные исключительно с прямого согласия пользователя и только в тех целях, которые обозначил пользователь. + +9. Прекращение действия Лицензионного соглашения + +9.1 Настоящее Лицензионное соглашение остается в силе до тех пор, пока его действие не будет прекращено вами или Google, как указано ниже. + +9.2. Если вы желаете прекратить действие настоящего Лицензионного соглашения, вы вправе сделать это, прекратив использование Preview и любых соответствующих учетных данных разработчика. + +9.3. Google вправе в любое время прекратить действие настоящего Лицензионного соглашения, отправив предварительное уведомление или без него. + +9.4 Действие настоящего Лицензионного соглашения автоматически прекращается без предварительного уведомления или выполнения иных действий сразу после следующего: +(A) компания Google прекращает предоставление Preview или определенных частей Preview пользователям в той стране, в которой вы проживаете или используете услуги компании; +(B) компания Google выпускает окончательную версию SDK Android. + +9.5 В случае прекращения действия настоящего Лицензионного соглашения прекращается действие лицензии, предоставленной в рамках Лицензионного соглашения, и вам следует незамедлительно прекратить любое использование Preview, тогда как положения, изложенные в разделах 10, 11, 12 и 14 продолжают действовать бессрочно. + +10. ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ + +10.1. ВЫ ЧЕТКО ОСОЗНАЕТЕ И БЕЗОГОВОРОЧНО СОГЛАШАЕТЕСЬ С ТЕМ, ЧТО ВЫ ИСПОЛЬЗУЕТЕ PREVIEW ИСКЛЮЧИТЕЛЬНО НА СВОЙ СТРАХ И РИСК И ЧТО PREVIEW ПРЕДОСТАВЛЯЕТСЯ ВАМ НА УСЛОВИЯХ «КАК ЕСТЬ» И «КАК ДОСТУПНО» БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ СО СТОРОНЫ КОМПАНИИ GOOGLE. + +10.2 ИСПОЛЬЗОВАНИЕ ВАМИ PREVIEW И ЗАГРУЗКА ЛЮБЫХ МАТЕРИАЛОВ И ИХ ПОЛУЧЕНИЕ ИНЫМ СПОСОБОМ С ПОМОЩЬЮ PREVIEW ВЫПОЛНЯЕТСЯ ПО ВАШЕМУ СОБСТВЕННОМУ УСМОТРЕНИЮ НА СВОЙ СТРАХ И РИСК. ВСЯ ОТВЕТСТВЕННОСТЬ ЗА ЛЮБОЙ УЩЕРБ, ПРИЧИНЕННЫЙ ВАШЕЙ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЕ ИЛИ ДРУГОМУ ОБОРУДОВАНИЮ, А ТАКЖЕ ЗА ПОТЕРЮ ДАННЫХ, ВЫЗВАННУЮ ПОДОБНЫМ ИСПОЛЬЗОВАНИЕМ, ВОЗЛАГАЕТСЯ НА ВАС. НЕ ОГРАНИЧИВАЯ ВЫШЕСКАЗАННОЕ, ВЫ ПОНИМАЕТЕ, ЧТО PREVIEW НЕ ЯВЛЯЕТСЯ СТАБИЛЬНЫМ ВЫПУСКОМ И МОЖЕТ СОДЕРЖАТЬ ОШИБКИ, ДЕФЕКТЫ И УЯЗВИМОСТИ В СИСТЕМЕ БЕЗОПАСНОСТИ, КОТОРЫЕ МОГУТ ПРИВЕСТИ К СЕРЬЕЗНЫМ ПОВРЕЖДЕНИЯМ, ВКЛЮЧАЯ ПОЛНУЮ И БЕЗВОЗВРАТНУЮ ПОТЕРЮ РАБОТОСПОСОБНОСТИ ВАШЕГО КОМПЬЮТЕРА ИЛИ ИНОГО УСТРОЙСТВА. + +10.3. КОМПАНИЯ GOOGLE БЕЗОГОВОРОЧНО ОТКАЗЫВАЕТСЯ ОТ ЯВНЫХ И НЕЯВНЫХ ГАРАНТИЙ И УСЛОВИЙ ЛЮБОГО РОДА, ВКЛЮЧАЯ ПОМИМО ПРОЧЕГО НЕЯВНЫЕ ГАРАНТИИ И УСЛОВИЯ ТОВАРНОГО СОСТОЯНИЯ, ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ И ОТСУТСТВИЯ НАРУШЕНИЙ ПРАВ СОБСТВЕННОСТИ. + +11. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ + +11.1. ВЫ ЧЕТКО ОСОЗНАЕТЕ И БЕЗОГОВОРОЧНО СОГЛАШАЕТЕСЬ С ТЕМ, ЧТО КОМПАНИЯ GOOGLE, ЕЕ ДОЧЕРНИЕ И АФФИЛИРОВАННЫЕ КОМПАНИИ И ЛИЦЕНЗИАРЫ НЕ НЕСУТ ПЕРЕД ВАМИ ОТВЕТСТВЕННОСТИ, НЕЗАВИСИМО ОТ ЕЕ ПРИЧИНЫ И ВИДА, ЗА КАКИЕ-ЛИБО ПРЯМЫЕ, КОСВЕННЫЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ, ОПОСРЕДОВАННЫЕ И ШТРАФНЫЕ УБЫТКИ, ПОНЕСЕННЫЕ ВАМИ, ВКЛЮЧАЯ ПОМИМО ПРОЧЕГО ПОТЕРЮ ДАННЫХ, ВНЕ ЗАВИСИМОСТИ ОТ ТОГО, БЫЛА ЛИ КОМПАНИЯ GOOGLE ИЛИ ЕЕ ПРЕДСТАВИТЕЛИ ИЗВЕЩЕНЫ О ВОЗМОЖНОСТИ ТАКОГО УЩЕРБА. + +12 Освобождение от ответственности + +12.1. В максимально допустимой законом степени вы соглашаетесь защищать, освобождать от ответственности и возможных претензий компанию Google, ее аффилированные компании и их соответствующих руководителей, служащих, сотрудников и агентов от всех возможных правовых требований, действий, судебных исков или разбирательств, а также от всех возможных убытков, обязательств, ущерба, издержек и расходов (включая обоснованные вознаграждения для адвокатов), возникающих (a) в связи с использованием вами Preview, (b) в связи с любыми приложениями, разрабатываемыми вами с помощью Preview и нарушающими любые права на объекты интеллектуальной собственности любого лица, а также порочащие любое лицо либо нарушающие права таких лиц на публичность и конфиденциальность, а также (c) в связи с любым несоблюдением вами положений настоящего Лицензионного соглашения. + +13. Изменения в Лицензионном соглашении + +13.1. Компания Google вправе вносить изменения в настоящее Лицензионное соглашение по мере выхода новых версий Preview. При внесении изменений Google создает новую версию Лицензионного соглашения и размещает ее на веб-сайте, на котором размещена Preview. + +14. Общие правовые условия + +14.1. Настоящее Лицензионное соглашение составляет полный текст юридического соглашения между вами и компанией Google, регулирует использование вами Preview (за исключением услуг, которые Google предоставляет на основании отдельного письменного соглашения) и полностью заменяет собой все предыдущие соглашения между вами и компанией Google в отношении Preview. + +14.2. Вы соглашаетесь с тем, что отсутствие каких-либо действий или судебных исков со стороны Google, направленных на соблюдение каких-либо правовых норм или исполнение средств правовой защиты, установленных настоящим Лицензионным соглашением (или которыми Google обладает в соответствии с каким-либо действующим законом), не означает отказ компании Google от своих прав и не препятствует компании Google использовать эти права или средства защиты. + +14.3. Если какой-либо судебный орган, уполномоченный рассматривать этот вопрос, признает недействительность какого-либо положения данного Лицензионного соглашения, то соответствующее положение будет исключено из Лицензионного соглашения с сохранением действия всех остальных его положений. Остальные положения Лицензионного соглашения по-прежнему будут действовать, и их соблюдение может обеспечиваться в судебном порядке. + +14.4. Вы признаете и соглашаетесь с тем, что все участники группы компаний, среди которых Google является материнской компанией, являются сторонними бенефициарами Лицензионного соглашения и что эти компании имеют право пользоваться привилегиями (или правами), предоставляемыми по настоящему Лицензионному соглашению, и напрямую требовать их соблюдения в судебном порядке. Все остальные физические и юридические лица не являются сторонними бенефициарами Лицензионного соглашения. + +14.5. ОГРАНИЧЕНИЯ НА ЭКСПОРТ. ИСПОЛЬЗОВАНИЕ PREVIEW РЕГУЛИРУЕТСЯ ЗАКОНАМИ И НОРМАТИВНЫМИ АКТАМИ США, КАСАЮЩИМИСЯ ЭКСПОРТА. ВЫ ОБЯЗУЕТЕСЬ СОБЛЮДАТЬ ВСЕ НАЦИОНАЛЬНЫЕ И МЕЖДУНАРОДНЫЕ ЗАКОНЫ ОБ ЭКСПОРТЕ, ПРИМЕНИМЫЕ К PREVIEW. ДАННЫЕ ЗАКОНЫ НАЛАГАЮТ ОГРАНИЧЕНИЯ НА РЕГИОНЫ, КРУГ ЛИЦ И СПОСОБ КОНЕЧНОГО ИСПОЛЬЗОВАНИЯ. + +14.6. Вы не вправе переуступать либо передавать права, предоставляемые по настоящему Лицензионному соглашению, без предварительного письменного согласия Google; любые попытки переуступки без такого согласия считаются недействительными. Вы обязуетесь не делегировать свои полномочия или обязательства по настоящему Лицензионному соглашению без предварительного письменного согласия Google. + +14.7. Лицензионное соглашение, а также взаимоотношения между вами и компанией Google в рамках настоящего Лицензионного соглашения регулируются законодательством штата Калифорния за исключением его норм коллизионного права. Вы и компания Google признаете, что урегулирование любых правовых вопросов, связанных с данным Лицензионным соглашением, относится исключительно к юрисдикции судов округа Санта-Клара, штат Калифорния. Несмотря на это, вы соглашаетесь с тем, что компания Google по-прежнему имеет право обращаться за наложением судебного запрета (или за получением аналогичного вида неотложной судебной защиты) в суды любой юрисдикции. + + +</div>
\ No newline at end of file diff --git a/docs/html-intl/intl/ru/preview/samples.jd b/docs/html-intl/intl/ru/preview/samples.jd new file mode 100644 index 0000000..f8115e7 --- /dev/null +++ b/docs/html-intl/intl/ru/preview/samples.jd @@ -0,0 +1,70 @@ +page.title=Примеры +page.image=images/cards/samples-new_2x.png +@jd:body + +<p> + Ниже представлены примеры кода для M Developer Preview. Чтобы загрузить примеры в +Android Studio, выберите <b>File > Import Samples</b>. +</p> + +<p class="note"> + <strong>Примечание.</strong> Эти проекты предназначены для использования +в Gradle и Android Studio. +</p> + + +<h3 id="RuntimePermissions">Разрешения на выполнение</h3> + +<p> + В Android M изменился подход к использованию системных разрешений. Пользователям теперь предлагается предоставить разрешения +во время выполнения, а не во время установки приложения. В примере ниже показано, как запрашивать такие разрешения. + +</p> + +<p><a href="https://github.com/googlesamples/android-RuntimePermissions">Загрузить с сайта GitHub</a></p> + +<h3 id="ConfirmCredentials">Подтверждение учетных данных</h3> + +<p> + В этом примере проиллюстрировано, как использовать учетные данные устройства для авторизации в приложении. +</p> + +<p><a href="https://github.com/googlesamples/android-ConfirmCredential">Загрузить с сайта +GitHub</a></p> + +<h3 id="FingerprintDialog">Диалоговое окно авторизации по отпечатку пальца</h3> + +<p> + В этом примере показано, как распознавать зарегистрированные отпечатки пальцев для авторизации пользователя в +приложении. +</p> + +<p><a href="https://github.com/googlesamples/android-FingerprintDialog">Загрузить с сайта GitHub</a></p> + +<h3 id="AutomaticBackup">Автоматическое резервное копирование для приложений</h3> + +<p> + В Android M представлена функция автоматического резервного копирования настроек приложений. В примере кода ниже показано, +как добавить в приложение правила фильтрации для управления резервным копированием настроек. +</p> + +<p><a href="https://github.com/googlesamples/android-AutoBackupForApps">Загрузить с сайта GitHub</a></p> + +<h3 id="CameraRaw">Camera 2 RAW</h3> + +<p> + В этом примере кода можно увидеть порядок использования API-интерфейса <code>Camera2</code> для получения буферов камеры RAW и сохранения их +в виде файлов <code>DNG</code>. +</p> + +<p><a href="https://github.com/googlesamples/android-Camera2Raw">Загрузить с сайта GitHub</a></p> + +<h3 id="ActiveNotification">Активные уведомления</h3> + +<p> + В примере кода ниже показано, как +<a href="{@docRoot}reference/android/app/NotificationManager.html"><code>NotificationManager</code></a> +может сообщить о количестве уведомлений, которое в настоящее время отображает ваше приложение. +</p> + +<p><a href="https://github.com/googlesamples/android-ActiveNotifications">Загрузить с сайта GitHub</a></p> diff --git a/docs/html-intl/intl/ru/preview/setup-sdk.jd b/docs/html-intl/intl/ru/preview/setup-sdk.jd new file mode 100644 index 0000000..1ffc2cd --- /dev/null +++ b/docs/html-intl/intl/ru/preview/setup-sdk.jd @@ -0,0 +1,207 @@ +page.title=Настройка пакета SDK Preview +page.image=images/cards/card-set-up_16-9_2x.png + +@jd:body + + +<div id="qv-wrapper"> + <div id="qv"> + <h2>Содержание документа</h2> + <ol> + <li><a href="#get-as13">Загрузка Android Studio 1.3</a></li> + <li><a href="#get-sdk">Загрузка пакета SDK Preview</a></li> + <li><a href="#create-update">Создание или обновление проекта</a></li> + <li><a href="#setup-test">Настройка для тестирования</a></li> + </ol> + </div> +</div> + +<p>Пакет SDK M Developer Preview можно загрузить с помощью менеджера SDK Android. +В этой статье мы исходим из того, что вы уже знакомы с разработкой приложений Android и умеете работать с +менеджером SDK Android и создавать проекты. Тем, кто только начинает работу с +Android, рекомендуется сначала обратиться к разделу <a href="{@docRoot}training/basics/firstapp/index.html">Создание +первого приложения</a>.</a></p> + +<h2 id="get-as13">Загрузка Android Studio 1.3</h2> + +<p>Для работы Developer Preview лучше всего подходит Android Studio 1.3, которая, кстати, +также является предварительной версией. Для работы с пакетом SDK Preview настоятельно рекомендуется установить предварительную версию +Android Studio 1.3.</p> + +<p class="caution"><strong>Внимание!</strong> Предварительная версия Android +Studio 1.3 (сборка Canary) по-прежнему находится на стадии разработки. Если для тестирования + M Developer Preview вы используете свой основной компьютер для разработки, вы можете дополнительно установить +Android Studio для целей тестирования.</p> + +<p>Порядок установки предварительной версии Android Studio 1.3</p> + +<ol> + <li>Загрузите и запустите <a href="{@docRoot}tools/studio/index.html">Android +Studio</a>. + </li> + + <li>Откройте окно <strong>Settings</strong> (в ОС Windows для этого выберите +<strong>File > Settings</strong>). Перейдите к панели +<strong>Appearance & Behavior > System +Settings > Updates</strong>. + + <p class="aside">В операционной системе OSX панель <strong>Appearance & +Behavior</strong> +находится в Android Studio в окне <strong>Preferences</strong>.</p> + </li> + + <li> На панели <strong>Updates</strong> выберите +<strong>Automatically check updates for: Canary Channel</strong>. + </li> + + <li>На панели <strong>Updates</strong> выберите <strong>Check Now</strong>, +чтобы проверить наличие актуальных обновлений для сборки Canary. При появлении соответствующего запроса загрузите +и установите сборку. + </li> +</ol> + +<h2 id="get-sdk">Загрузка пакета SDK Preview</h2> + +<p>Порядок добавления компонентов SDK Preview в среду разработки</p> + +<ol> + <li>Запустите предварительную версию Android Studio 1.3. + </li> + + <li>Откройте окно <strong>Settings</strong> (в ОС Windows для этого выберите +<strong>File > Settings</strong>). Перейдите к панели +<strong>Appearance & Behavior > System +Settings > Updates</strong>. + + <p class="aside">В операционной системе OSX панель <strong>Appearance & +Behavior</strong> +находится в Android Studio в окне <strong>Preferences</strong>.</p> + </li> + + <li>На панели <strong>Updates</strong> выберите параметры +<strong>Automatically check updates for: Canary Channel</strong> и +<strong>Automatically check updates for Android SDK: Preview Channel</strong>. + </li> + + <li>Запустите <strong>менеджер SDK Android</strong>. (Менеджер SDK входит в состав Android Studio 1.3; +теперь это не отдельное +приложение.) + </li> + + <li>В разделе <strong>Platforms</strong> выберите <strong>Android MNC +Preview</strong>. + </li> + + <li>В разделе <strong>Tools</strong> выберите последние инструменты +<strong>SDK Tools</strong>, <strong>Platform-tools</strong> и +<strong>Build-tools</strong> для Android. + </li> + + <li>Нажмите на кнопку <strong>Install packages</strong> и примите условия лицензионного соглашения +для всех пакетов. + </li> + + <li>Убедитесь, что платформа M Developer Preview установлена. Для этого откройте окно +<strong>Settings</strong> и перейдите к панели<strong>Appearance & Behavior +> System Settings > Android SDK</strong>.</li> + + <li>На панели <strong>Android SDK</strong> выберите вкладку +<strong>SDK Platforms</strong>. Для элемента <strong>Android MNC +Preview</strong> должно быть указано <em>Installed</em>. Кроме того, перейдите на вкладку +<strong>SDK Tools</strong> и убедитесь в том, что установлены актуальные +версии инструментов. + </li> +</ol> +<p>После выполнения этих действий компоненты предварительной версии +доступны для использования в вашей среде разработки. </p> + + +<h2 id="create-update">Создание или обновление проекта</h2> + +<p> + Если вы хотите воспользоваться API-интерфейсами предварительной версии, создайте или обновите проект разработки так, чтобы в нем использовались +компоненты предварительной версии. +</p> + + +<h3 id="create">Создание нового проекта</h3> + +<p> + Для создания проекта в предварительной версии рекомендуется использовать Android Studio. Выполните действия, +приведенные в разделе <a href="{@docRoot}sdk/installing/create-project.html">Создание проекта</a>, +пока в мастере проекта не появится экран <em>Form Factors</em>. Затем выполните +действия по созданию проекта, настроенного для предварительной версии. +</p> + +<ul> + <li>Установите флажок <strong>Phone and Tablet</strong>.</li> + <li>Выберите <strong>MNC: Android M (Preview)</strong> в разделе <strong>Minimum +SDK</strong>.</li> +</ul> + + +<h3 id="update">Обновление существующего проекта</h3> + +<p> + В существующем проекте следует изменить его конфигурацию и настроить его на использование API-интерфейсов предварительной версии. В +среде разработки откройте файл <code>build.gradle</code> для вашего модуля и задайте +значения следующим образом: +</p> + +<ul> + <li>для параметра <code>compileSdkVersion</code> задайте значение <code>'android-MNC'</code>;</li> + <li>для параметра <code>minSdkVersion</code> задайте значение <code>'MNC'</code>;</li> + <li>для параметра <code>targetSdkVersion</code> задайте значение <code>'MNC'</code>.</li> +</ul> + + +<h2 id="setup-test">Настройка для тестирования</h2> + +<p> + Для тестирования приложения в предварительной версии необходимо физическое или виртуальное устройство, настроенное с помощью +предварительной версии платформы. Если имеется совместимое устройство, можно установить предварительную версию +платформы для тестирования. Для тестирования также можно настроить виртуальное устройство. +</p> + +<h3 id="setup-device">Настройка физического устройства</h3> + +<p> + Если у вас имеется устройство Nexus 5, Nexus 6, Nexus 9 или Android TV, для тестирования приложений вы можете установить на эти устройства +системный образ предварительной версии. +Также в Android Studio можно настроить виртуальное устройство с предварительной версией платформы, +используя для этого диспетчер виртуальных устройств Android. +</p> + +<p class="caution"> + <strong>Внимание!</strong> Установка на устройство образа с предварительной версией платформы <em>приведет к удалению всех данных с +устройства</em>, поэтому перед установкой обязательно создайте резервные копии необходимых данных. +</p> + +<h3 id="setupAVD">Настройка виртуального устройства</h3> + +<p> + В Android Studio можно настроить виртуальное устройство с предварительной версией платформы, +используя для этого диспетчер виртуальных устройств Android. +</p> + +<p>Порядок настройки AVD в диспетчере AVD</p> + +<ol> + <li>Установите SDK Preview в свою среду разработки, как описано в разделе +<a href="{@docRoot}preview/setup-sdk.html">Настройка пакета +SDK Preview</a>.</li> + <li>Выполните действия, указанные в статье +<a href="{@docRoot}tools/devices/managing-avds.html">Управление виртуальными устройствами с помощью диспетчера +AVD</a>. Используйте следующие настройки: + <ul> + <li><strong>Device:</strong> Nexus 5, Nexus 6, Nexus 9 или Android TV</li> + <li><strong>Target:</strong> + Android M (Preview) – API Level M</li> + <li><strong>ABI:</strong> x86</li> + </ul> + </li> +</ol> + +<p> + Дополнительные сведения о создании виртуальных устройств для тестирования представлены в статье <a href="{@docRoot}tools/devices/index.html">Управление виртуальными устройствами</a>. +</p> diff --git a/docs/html-intl/intl/ru/preview/support.jd b/docs/html-intl/intl/ru/preview/support.jd new file mode 100644 index 0000000..816dc7f --- /dev/null +++ b/docs/html-intl/intl/ru/preview/support.jd @@ -0,0 +1,67 @@ +page.title=Поддержка +page.image=images/cards/card-support_16-9_2x.png + +@jd:body + +<p> + Если вы обнаружили ошибки или желаете поделиться своим отзывом о платформе M Developer Preview, +<a href="https://code.google.com/p/android-developer-preview/">создайте заявку</a> +в нашей системе отслеживания проблем. +</p> + +<p> + Для получения дополнительной поддержки присоединяйтесь к +<a href="http://g.co/dev/AndroidMDevPreview">сообществу M Developer +Preview в Google+</a> и делитесь своим опытом разработки с единомышленниками. +</p> + +<h2 id="release-notes">Примечания к выпуску</h2> + +<!-- +<div class="toggle-content opened"> + <p><a href="#" onclick="return toggleContent(this)"> + <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-content-img" + alt=""/>M Developer Preview, Revision 2</a> <em>(Month 2015)</em> + </p> + + <div class="toggle-content-toggleme"> + + <dl> + + <dt>Fix Category 1</dt> + <dd> + <ul> + <li>Fixed issue X.</li> + <li>Fixed issue Y.</li> + <li>Fixed issue Z.</li> + </ul> + </dd> + + <dt>Fix Category 2</dt> + <dd> + <ul> + <li>Fixed issue X.</li> + <li>Fixed issue Y.</li> + <li>Fixed issue Z.</li> + </ul> + </dd> + + </dl> + </div> +</div> +--> + +<div class="toggle-content opened"> + <p><a href="#" onclick="return toggleContent(this)"> +<img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-content-img" alt="" />M Developer Preview, версия 1</a> <em>(май 2015 г.)</em> + </p> + + <div class="toggle-content-toggleme"> + + <dl> + <dt>Первоначальный выпуск.</dt> + </dl> + </div> +</div> + + diff --git a/docs/html-intl/intl/ru/preview/testing/guide.jd b/docs/html-intl/intl/ru/preview/testing/guide.jd new file mode 100644 index 0000000..8beb0ed --- /dev/null +++ b/docs/html-intl/intl/ru/preview/testing/guide.jd @@ -0,0 +1,187 @@ +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> diff --git a/docs/html-intl/intl/ru/preview/testing/performance.jd b/docs/html-intl/intl/ru/preview/testing/performance.jd new file mode 100644 index 0000000..fc88cbd --- /dev/null +++ b/docs/html-intl/intl/ru/preview/testing/performance.jd @@ -0,0 +1,656 @@ +page.title=Тестирование скорости отображения +page.image=images/cards/card-test-performance_2x.png +page.keywords=скорость отображения, кадр/с, инструменты + +@jd:body + + +<div id="qv-wrapper"> + <div id="qv"> + <h2>Содержание документа</h2> + <ol> + <li><a href="#measure">Измерение производительности интерфейса</a> + <ul> + <li><a href="#aggregate">Агрегированные статические данные о кадрах</a></li> + <li><a href="#timing-info">Точная информация о кадровой синхронизации</a></li> + <li><a href="#timing-dump">Дамп простой кадровой синхронизации</a></li> + <li><a href="#collection-window">Управление промежутком времени для сбора статистических данных</a></li> + <li><a href="#diagnose">Диагностика снижения производительности</a></li> + <li><a href="#resources">Дополнительные ресурсы</a></li> + </ul> + </li> + <li><a href="#automate">Автоматизация тестирования производительности интерфейса</a> + <ul> + <li><a href="#ui-tests">Настройка тестов интерфейса</a></li> + <li><a href="#automated-tests">Настройка автоматизированного тестирования интерфейса</a></li> + <li><a href="#triage">Определение и устранение обнаруженных проблем</a></li> + </ul> + </li> + </ol> + </div> +</div> + + +<p> + Тестирование производительности интерфейса позволяет убедиться в том, что ваше приложение не только соответствует функциональным требованиям, +но и гарантирует пользователю безупречное взаимодействие с интерфейсом с постоянной частотой отображения +60 кадров в секунду (<a href="https://www.youtube.com/watch?v=CaMTIgxCSqU&index=25&list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE">почему именно +60 кадров/с?</a>), без каких-либо задержек и пропущенных кадров или, как их называют, <em>глюков</em>. В этой +статье рассматриваются инструменты для измерения производительности интерфейса, а также предлагается подход к +интеграции этих процедур измерения производительности в ваши методы тестирования приложений. +</p> + + +<h2 id="measure">Измерение производительности интерфейса</h2> + +<p> + Чтобы улучшить производительность, прежде всего у вас должна иметься возможность измерить производительность +вашей системы. Когда это сделано, необходимо диагностировать и определить проблемы, которые могут возникнуть на разных этапах +процесса разработки. +</p> + +<p> + <em><a href="https://source.android.com/devices/tech/debug/dumpsys.html">dumpsys</a></em> +– это инструмент Android, который запускается на устройстве и создает дамп интересной информации о состоянии системных +служб. После передачи в dumpsys команды <em>gfxinfo</em> в журнал устройства (logcat) +записываются сведения о производительности, касающиеся скорости анимации на этапе +записи. +</p> + +<pre> +> adb shell dumpsys gfxinfo <PACKAGE_NAME> +</pre> + +<p> + Эта команда может создавать множество различных вариантов данных кадровой синхронизации. +</p> + +<h3 id="aggregate">Агрегированные статические данные о кадрах</h3> + +<p> + В M Preview эта команда фиксирует в logcat агрегированный анализ данных о кадрах, полученных +за весь жизненный цикл процесса. Например: +</p> + +<pre class="noprettyprint"> +Stats since: 752958278148ns +Total frames rendered: 82189 +Janky frames: 35335 (42.99%) +90th percentile: 34ms +95th percentile: 42ms +99th percentile: 69ms +Number Missed Vsync: 4706 +Number High input latency: 142 +Number Slow UI thread: 17270 +Number Slow bitmap uploads: 1542 +Number Slow draw: 23342 +</pre> + +<p> + Приведенные выше статистические данные высокого уровня демонстрируют производительность отрисовки, которой обладает приложение, +а также ее стабильность при обработке множества кадров. +</p> + + +<h3 id="timing-info">Точная информация о кадровой синхронизации</h3> + +<p> + В M Preview представлена новая команда для gfxinfo – <em>framestats</em>. Она позволяет получить +чрезвычайно точную информацию о кадровой синхронизации из последних кадров, что поможет вам отслеживать проблемы +и устранять их. +</p> + +<pre> +>adb shell dumpsys gfxinfo <PACKAGE_NAME> framestats +</pre> + +<p> + Данная команда предоставляет информацию о кадровой синхронизации буквально по наносекундам на основании последних 120 +кадров, созданных приложением. Ниже приводится пример необработанного результата из журнала adb после выполнения команды dumpsys gfxinfo +<PACKAGE_NAME> framestats: +</p> + +<pre class="noprettyprint"> +0,49762224585003,49762241251670,9223372036854775807,0,49762257627204,49762257646058,49762257969704,49762258002100,49762265541631,49762273951162,49762300914808,49762303675954, +0,49762445152142,49762445152142,9223372036854775807,0,49762446678818,49762446705589,49762447268818,49762447388037,49762453551527,49762457134131,49762474889027,49762476150120, +0,49762462118845,49762462118845,9223372036854775807,0,49762462595381,49762462619287,49762462919964,49762462968454,49762476194547,49762476483454,49762480214964,49762480911527, +0,49762479085548,49762479085548,9223372036854775807,0,49762480066370,49762480099339,49762481013089,49762481085850,49762482232152,49762482478350,49762485657620,49762486116683, +</pre> + +<p> + Каждая строка здесь представляет собой кадр, созданный приложением. В каждой строке имеется фиксированное количество +столбцов, где указано время, затраченное на каждом этапе процесса создания кадра. Более подробно этот формат рассматривается в следующем разделе, +включая сведения о том, что означает каждый столбец. +</p> + + +<h4 id="fs-data-format">Формат данных, возвращаемых командой framestats</h4> + +<p> + Поскольку блок данных выводится в формате CSV, вы можете с легкостью вставить его в любую программу +для работы с электронными таблицами, а также собрать и обработать данные с помощью сценария. Ниже рассматривается формат +столбцов выходных данных. Все временные метки указаны в наносекундах. +</p> + +<ul> + <li>FLAGS + <ul> + <li>В строках, в которых в столбце FLAGS указано «0», общее время смены кадра вычислялось путем +вычитания значения в столбце INTENDED_VSYNC из значения в столбце FRAME_COMPLETED. + </li> + + <li>Если это значение не равно нулю, то строку следует пропустить, поскольку кадр был определен как отличающийся от +обычной производительности, при которой ожидается, что размещение и прорисовка кадра займут +больше 16 мс. Причина этого может заключаться в следующем: + <ul> + <li>макет окна был изменен (например, первый кадр приложения или после +вращения); + </li> + + <li>также, возможно, кадр был пропущен, в результате чего временные метки некоторых значений +содержат бессмысленную информацию; кадр можно пропустить, если, например, скорость отображения превышает 60 кадров/с или если +на экране от этого не появяются шумы; это не обязательно указывает на проблему +в приложении. + </li> + </ul> + </li> + </ul> + </li> + + <li>INTENDED_VSYNC + <ul> + <li>Предполагаемая начальная точка кадра. Если данное значение отличается от значения в столбце VSYNC, это указывает на то, +что поток был занят и не смог своевременно среагировать на сигнал +vsync. + </li> + </ul> + </li> + + <li>VSYNC + <ul> + <li>Значение времени, которое использовалось во всех приемниках vsync, а также которое было затрачено на прорисовку кадра +(обратные вызовы кадров Choreographer и анимации, View.getDrawingTime() и т. д.) + </li> + + <li>Чтобы узнать подробнее о VSYNC и о том, какое значение это имеет для вашего приложения, просмотрите +видеоролик, +<a href="https://www.youtube.com/watch?v=1iaHxmfZGGc&list=PLOU2XLYxmsIKEOXh5TwZEv89aofHzNCiu&index=23">посвященный общим сведениям о VSYNC</a>. + </li> + </ul> + </li> + + <li>OLDEST_INPUT_EVENT + <ul> + <li>Временная метка для самого старого события ввода в очереди ввода или Long.MAX_VALUE, если +для кадра отсутствуют события ввода. + </li> + + <li>Это значение в первую очередь предназначено для платформы и имеет ограниченную практическую ценность для разработчиков +приложений. + </li> + </ul> + </li> + + <li>NEWEST_INPUT_EVENT + <ul> + <li>Временная метка для самого нового события ввода в очереди ввода или 0, если +для кадра отсутствуют события ввода. + </li> + + <li>Это значение в первую очередь предназначено для платформы и имеет ограниченную практическую ценность для разработчиков +приложений. + </li> + + <li>Однако оно позволяет получить приблизительное представление о том, какая задержка возникает у приложения, +обратившись к значению разницы (FRAME_COMPLETED - NEWEST_INPUT_EVENT). + </li> + </ul> + </li> + + <li>HANDLE_INPUT_START + <ul> + <li>Временная метка отправки событий ввода в приложение. + </li> + + <li>Разность между этим значением и значением ANIMATION_START позволяет определить, +сколько времени было затрачено приложением на обработку событий ввода. + </li> + + <li>Если разность достаточно велика (>2 мс), это означает, что приложение затрачивает очень +много времени на обработку событий ввода, таких как View.onTouchEvent(). В свою очередь, это может указывать на +необходимость оптимизации этого процесса обработки или переноса этой нагрузки в другой поток. Следует помнить, что существуют +сценарии, когда такое +поведение ожидается и является приемлемым. Имеются в виду нажатия или аналогичные сценарии, в которых запускаются новые операции. + </li> + </ul> + </li> + + <li>ANIMATION_START + <ul> + <li>Временная метка запуска анимаций, зарегистрированных с помощью Choreographer. + </li> + + <li>Разность между этим значением и PERFORM_TRANVERSALS_START позволяет +определить, сколько времени потребовалось на оценку всех запущенных аниматоров (ObjectAnimator, +ViewPropertyAnimator и общих переходов). + </li> + + <li>Если разность достаточно велика (>2 мс), проверьте наличие в приложении настраиваемых +аниматоров, а также то, какие поля анимируют классы ObjectAnimator. Убедитесь, что +эти поля подходят для анимации. + </li> + + <li>Чтобы узнать подробнее о Choreographer, просмотрите видео <a href="https://developers.google.com/events/io/sessions/325418001">For Butter or Worse</a>. + + </li> + </ul> + </li> + + <li>PERFORM_TRAVERSALS_START + <ul> + <li>Если вычесть значение DRAW_START из этого значения, вы можете узнать, сколько времени было затрачено на разметку и +измерение. (Обратите внимание, что во время прокрутки или анимации это значение должно быть близко +к нулю.) + </li> + + <li>Чтобы узнать подробнее об этапах разметки и измерения во время рендеринга интерфейса приложения, просмотрите +видео, посвященное +<a href="https://www.youtube.com/watch?v=we6poP0kw6E&list=PLOU2XLYxmsIKEOXh5TwZEv89aofHzNCiu&index=27">аннулированию, макетам и производительности</a>. + </li> + </ul> + </li> + + <li>DRAW_START + <ul> + <li>Время начала этапа отрисовки с помощью метода performTraversals. Это точка начала +записи списков отображения любых представлений, которые были аннулированы. + </li> + + <li>Разность между этим значением и значением SYNC_START означает, сколько времени потребовалось на вызов метода View.draw() для всех +аннулированных представлений в дереве. + </li> + + <li>Дополнительные сведения о модели отрисовки представлены в видео, посвященном <a href="{@docRoot}guide/topics/graphics/hardware-accel.html#hardware-model">аппаратному ускорению</a> +или +<a href="https://www.youtube.com/watch?v=we6poP0kw6E&list=PLOU2XLYxmsIKEOXh5TwZEv89aofHzNCiu&index=27">аннулированию, макетам и производительности</a>. + </li> + </ul> + </li> + + <li>SYNC_START + <ul> + <li>Время начала этапа синхронизации отрисовки. + </li> + + <li>Если разность между этим значением и значением ISSUE_DRAW_COMMANDS_START достаточно велика (>0,4 мс или около этого), +обычно это указывает на наличие большого количество новых растровых изображений, которые следует передать +ЦП. + </li> + + <li>Чтобы узнать подробнее об этапе синхронизации, просмотрите видео, посвященное +<a href="https://www.youtube.com/watch?v=VzYkVL1n4M8&index=24&list=PLOU2XLYxmsIKEOXh5TwZEv89aofHzNCiu">рендерингу профиля с помощью ЦП</a>. + </li> + </ul> + </li> + + <li>ISSUE_DRAW_COMMANDS_START + <ul> + <li>Время начала отправки аппаратным обработчиком команд на отрисовку для ЦП. + </li> + + <li>Разность между этим значением и значением FRAME_COMPLETED позволяет получить приблизительное представление об объеме ресурсов ЦП, используемых +приложением. Здесь отображаются такие проблемы, как превышение или недостаток эффектов рендеринга. + + </li> + </ul> + </li> + + <li>SWAP_BUFFERS + <ul> + <li>Время вызова eglSwapBuffers; +относится к работе платформы и имеет ограниченную практическую ценность для разработчиков приложений. + </li> + </ul> + </li> + + <li>FRAME_COMPLETED + <ul> + <li>Все готово! Общее время, затраченное на обработку этого кадра, вычисленное по следующей формуле: +FRAME_COMPLETED - INTENDED_VSYNC. + </li> + </ul> + </li> + +</ul> + +<p> + Эти данные можно использовать несколькими способами. Простым, но полезным примером может служить +график, иллюстрирующий распределение времени кадров (FRAME_COMPLETED - INTENDED_VSYNC) в +различных диапазонах задержки (см. рисунок ниже). На графике ясно видно, что с большинством кадров +никаких проблем не возникло (ниже отметки в 16 мс; обозначено красным), однако для некоторых кадров +это значение значительно превышено. Можно обратиться к этому графику и пронаблюдать изменения по времени, +чтобы увидеть общую картину смещения или новые отличающиеся значения. Также можно создать график задержи ввода, +времени, затраченного на разметку или других интересующих вас показателей, руководствуясь множеством временных меток, +имеющихся в данных. +</p> + +<img src="{@docRoot}preview/images/perf-test-framestats.png"> + + +<h3 id="timing-dump">Дамп простой кадровой синхронизации</h3> + +<p> + Если в разделе настроек для разработчиков для параметра <strong>Profile GPU rendering</strong> задано значение <strong>In adb shell dumpsys gfxinfo</strong>, +команда <code>adb shell dumpsys gfxinfo</code> выдает сведения о синхронизации +по времени для последних 120 кадров. При этом вы увидите несколько категорий значений, +разделенные знаком табуляции. Эти данные могут оказаться полезными для определения частей конвейера отрисовки, которые могут работать с задержкой +при высоком уровне обработки. +</p> + +<p> + Как и в случае с командой +<a href="#fs-data-format">framestats</a>, описанной выше, вы можете с легкостью вставить полученные данные в любую программу +для работы с электронными таблицами, а также собрать и обработать их с помощью сценария. На графике ниже иллюстрируется разбивка со сведениями о количестве созданных кадров и времени, которое приложение затратило на +это. +</p> + +<img src="{@docRoot}preview/images/perf-test-frame-latency.png"> + +<p> + Результаты выполнения команды gfxinfo, копирования полученного результата, передачи его в приложение для работы +с электронными таблицами и построения графика представлены в виде столбцов. +</p> + +<p> + Каждый столбец представляет собой один кадр анимации; его высота обозначает количество миллисекунд, +затраченных на вычисление этого кадра. Каждый цветной сегмент столбца +обозначает различный этап процесса рендеринга, что позволяет определить проблемные компоненты +приложения в плане производительности. Дополнительные сведения о +процессе рендеринга, а также о том, как оптимизировать его, представлены в видео, посвященном +<a href="https://www.youtube.com/watch?v=we6poP0kw6E&index=27&list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE">аннулированию, макетам и производительности</a>. +</p> + + +<h3 id="collection-window">Управление промежутком времени для сбора статистических данных</h3> + +<p> + При выполнении команды framestats, равно как и при вычислении простой кадровой синхронизации, данные собираются за достаточно короткий промежуток времени – порядка +двух секунд рендеринга. Чтобы точно указать этот промежуток времени (например, +чтобы ограничить данные определенной анимацией), можно сбросить все счетчики +и объединить собранные статистические данные. +</p> + +<pre> +>adb shell dumpsys gfxinfo <PACKAGE_NAME> reset +</pre> + +<p> + Это также можно сделать совместно с выполнением самих команд создания дампа, чтобы выполнять сбор +и сброс регулярно, непрерывно получая данные за промежутки времени продолжительностью менее двух секунд. + +</p> + + +<h3 id="diagnose">Диагностика снижения производительности</h3> + +<p> + Определение снижений производительности послужит отличным началом для отслеживания проблем, а также позволит всегда поддерживать +хорошую работоспособность приложения. Однако инструмент dumpsys позволяет лишь определить наличие проблем и приблизительный уровень их +серьезности. Вам же требуется диагностировать каждую конкретную проблему с +производительностью и найти подходящие способы ее устранения. Для этих целей прекрасно +подходит инструмент <a href="{@docRoot}tools/help/systrace.html">systrace</a>. +</p> + + +<h3 id="resources">Дополнительные ресурсы</h3> + +<p> + Дополнительные сведения о принципе работы конвейера рендеринга платформы Android, информация об общих проблемах, с которыми можно столкнуться при его использовании, +а также способы их устранения представлены на указанных ниже +полезных ресурсах. +</p> + +<ul> + <li>Производительность визуализации 101 + </li> + <li>Частота 60 кадров в секунду + </li> + <li>Пользовательский интерфейс Android и графический процессор + </li> + <li>Аннулирование макетов и производительность + </li> + <li>Анализ производительности интерфейса с помощью systrace + </li> +</ul> + + +<h2 id="automate">Автоматизация тестирования производительности интерфейса</h2> + +<p> + Один из подходов к тестированию производительности интерфейса заключается в простом привлечении тестировщиков, чтобы они выполнили ряд +операций с целевым приложением, а также либо просто визуально убедились в отсутствии глюков, либо уделили достаточно много времени +тестированию приложения с помощью соответствующего инструмента. Однако такой подход имеет один важный недостаток +– человек физически не способен обрабатывать информацию при очень быстрой смене кадров. +Кроме того, такая работа занимает много времени, утомляет и не гарантирует полное отсутствие ошибок. +</p> + +<p> + Гораздо эффективнее записать ключевые показатели производительности, полученные в ходе автоматического +тестирования интерфейса, и проанализировать их. В состав Android M Developer Preview входят новые функции ведения журналов, которые позволяют с легкостью +определить объем и серьезность глюков анимации в приложении. +Их также можно использовать для того, чтобы создать строгий процесс определения текущей производительности и отслеживать соответствие требованиям будущих задач +производительности. +</p> + +<p> + В этой статье мы расскажем вам, как мы рекомендуем использовать такие данные, чтобы автоматизировать +тестирование производительности. +</p> + +<p> + Этот подход большей частью сводится к двум ключевым шагам. Шаг первый: определите, что вы +тестируете и как вы это делаете. Шаг второй: произведите настройку +среды автоматизированного тестирования и ее обслуживание. +</p> + + +<h3 id="ui-tests">Настройка тестов интерфейса</h3> + +<p> + Прежде чем приступить к автоматизированному тестированию, необходимо принять ряд важных решений, +чтобы правильно определить область тестирования и ваши требования. +</p> + +<h4> + Определение ключевых анимаций или потоков для тестирования +</h4> + +<p> + Помните, что плохая производительность чаще всего выражается для пользователей в отсутствии плавной +анимации. Поэтому при определении того, какие типы действий в пользовательском интерфейсе следует протестировать, полезно +сосредоточить внимание на ключевых анимациях, наиболее важных для +взаимодействия пользователя с приложением. Ниже представлены примеры наиболее распространенных сценариев, которые может оказаться полезным определить. +</p> + +<ul> + <li>Прокрутка основного представления ListView или RecyclerView + </li> + + <li>Анимации во время циклов асинхронного ожидания + </li> + + <li>Любые анимации, включающие загрузку растровых изображений или манипуляции с ними + </li> + + <li>Анимации, включающие смешивание альфа-канала + </li> + + <li>Отрисовка настраиваемого представления на экране + </li> +</ul> + +<p> + Определите, какие из этих +ключевых анимаций следует протестироваит в первую очередь. При принятии решения подключите инженеров, дизайнеров и менеджеров по продукту. +</p> + +<h4> + Определите свои будущие задачи и отслеживайте их выполнение +</h4> + +<p> + С профессиональной точки зрения, может оказаться крайне важным решить, каких именно показателей производительности вы хотите добиться, и +сосредоточить усилия на создании необходимых тестов и сборе соответствующих данных. Например: +</p> + +<ul> + <li>Вы только хотите начать отслеживание производительности интерфейса, чтобы получить дополнительные сведения? + </li> + + <li>Вы хотите предотвратить возможно снижение производительности в будущем? + </li> + + <li>На сегодняшний день 90% кадров анимируются плавно. Вы хотите увеличить этот показатель до 98% в этом квартале? + </li> + + <li>На сегодняшний день 98% кадров анимируются плавно. Вы не хотите, чтобы производительность снизилась? + </li> + + <li>Вы хотите улучшить производительность на бюджетных устройствах? + </li> +</ul> + +<p> + Во всех перечисленных случаях вам потребуется хронологическое отслеживание показателей, демонстрирующих производительность +разных версий вашего приложения. +</p> + +<h4> + Определение устройств для тестирования +</h4> + +<p> + Производительность приложения может меняться в зависимости от того, на каком устройстве оно установлено. Некоторые устройства могут обладать недостаточным +объемом памяти, менее производительными графическими процессорами или слабыми ЦП. Это означает, что анимации, +которые прекрасно работают на устройстве с одним оборудованием, могут вообще не работать на устройстве с другим оборудованием, и, что хуже всего, препятствовать +нормальной работе другой части конвейера. Поэтому, учитывая такую разницу +в отображении интерфейса для пользователей, выберите диапазон устройств для выполнения тестов, включив в него +как современные высокотехнологичные, так и бюджетные устройства, планшеты и т. д. При выборе диапазона устройств учитывайте разницу в производительности ЦП +, ОЗУ, разрешение экрана, его размер и т. д. Тесты, которые успешно прошли на устройстве верхнего ценового сегмента, +могут завершиться сбоем на бюджетных моделях. +</p> + +<h4> + Базовые средства для тестирования пользовательского интерфейса +</h4> + +<p> + Такие наборы инструментов, как <a href="{@docRoot}training/testing/ui-testing/uiautomator-testing.html">UI Automator</a> и +<a href="{@docRoot}training/testing/ui-testing/espresso-testing.html">Espresso</a>, +призваны помочь автоматизировать действия пользователей при взаимодействии с вашим приложением. Это простые инструменты, +имитирующие работу пользователя на устройстве. Для использования этих инструментов +вам необходимо создать уникальные сценарии, которые будут включать выполнение ряда действий, и воспроизвести +их на устройстве. +</p> + +<p> + Используя эти автоматизированные тесты в сочетании с командой <code>dumpsys gfxinfo</code>, вы можете быстро создать +воспроизводимую систему, позволяющую выполнять тестирование и анализировать +полученную информацию о производительности для каждого определенного условия. +</p> + + +<h3 id="automated-tests">Настройка автоматизированного тестирования интерфейса</h3> + +<p> + Получив возможность протестировать интерфейс, а также настроив конвейер на сбор результатов +отдельного теста, важно выбрать инструмент, который позволит многократно выполнить +тест на нескольких устройствах, а также объединить данные о результатах +тестирования производительности для их дальнейшего анализа вашими специалистами по разработке. +</p> + +<h4> + Инструмент для автоматизации тестирования +</h4> + +<p> + Следует отметить, что инструменты для тестирования интерфейса (такие как <a href="{@docRoot}training/testing/ui-testing/uiautomator-testing.html">UI Automator</a>) +можно запускать прямо на целевом устройстве или в эмуляторе. Тогда как сбор командой +<em>dumpsys gfxinfo</em> информации о производительности выполняется на хост-компьютере, который отправляет команды из ADB. Чтобы объединить +усилия этих двух инструментов, был разработан <a href="{@docRoot}tools/help/monkeyrunner_concepts.html">MonkeyRunner</a>. +Эта система написания сценариев, работающая на хост-компьютере, отправляет команды на +подключенные устройства, а также получает данные от них. +</p> + +<p> + Набор сценариев для надлежащей автоматизации тестирования производительности интерфейса должен включать использование +системы MonkeyRunner хотя бы для выполнения следующих задач: +</p> + +<ul> + <li>загрузка и запуск на целевые устройства или в эмулятор необходимого пакета APK; + </li> + + <li>запуск теста UI Automator и его выполнение; + </li> + + <li>сбор информации о производительности с помощью <em>dumpsys gfxinfo</em><em>;</em> + </li> + + <li>объединение полученной информации и ее отображение для разработчика в удобочитаемой форме. + </li> +</ul> + + +<h3 id="triage">Определение и устранение обнаруженных проблем</h3> + +<p> + После обнаружения проблемных мест или причин снижения производительности необходимо понять, что должно быть исправлено +и внести соответствующие изменения. Если используемый инструмент для автоматизированного тестирования обеспечивает соблюдение точной разбивки +кадровой синхронизации по времени, то с его помощью можно тщательно изучить недавние подозрительные изменения в коде или макете (в случае +со снижением производительности), а также ограничить область системы, которая подлежит анализу, когда вы переключаетесь на изучение проблемы +вручную. В последнем случае прекрасно подойдет <a href="{@docRoot}tools/help/systrace.html">systrace</a>. С помощью этого инструмента вы можете получить подробнейшую информацию +о синхронизации относительно каждого этапа конвейера рендеринга, относительно каждого потока и каждого ядра +системы, а также относительно любых настраиваемых маркеров событий, которые вы задаете. +</p> + +<h4> + Надлежащее профилирование синхронизации по времени +</h4> + +<p> + Важно отметить трудности, с которыми можно столкнуться при получении и анализе данных синхронизации, связанных +с производительностью визуализации. Результаты по своей природе недетерминированные и зачастую +изменяются в зависимости от состояния системы, объема доступной памяти, температурного +дросселирования и времени суток. Смысл в том, что +вы можете выполнить один и тот же тест дважды и получить результаты, +которые будут похожи, но не совпадут в точности. +</p> + +<p> + Правильный сбор и профилирование данных означает выполнение одного и того же теста +несколько раз и накопление результатов для вычисления среднего значения (для простоты назовем это +пакетом результатов). Это позволяет получить приблизительное представление о производительности +теста, когда нет необходимости в точных данных. +</p> + +<p> + Пакеты можно использовать при изучении изменений кода, чтобы увидеть их относительное влияние на +производительность. Если средняя частота кадров для пакета результатов, полученных до изменения, больше значения для пакета, полученного +после изменения, обычно вы получаете общее повышение производительности в результате этого конкретного +изменения. +</p> + +<p> + При выполнении любого автоматизированного тестирования интерфейса следует учитывать этот момент, +равно как и любые аномалии, которые могут возникнуть во время теста. Например, +если производительность вашего приложения неожиданно резко падает из-за проблем с оборудованием устройства (которые +не вызваны вашим приложением), возможно, вы захотите выполнить пакет повторно, чтобы получить +менее беспорядочные данные о синхронизации. +</p> + +<p> + Итак, сколько раз следует выполнять тест, прежде чем его результаты станут значимыми? Не менее 10! + Чем больше раз вы выполняете тест (например, можно сделать 50–100 прогонов), тем выше точность результатов +(хотя, конечно, ради точности приходится поступаться временем). +</p> |