1page.title=Манифест приложения 2@jd:body 3 4<div id="qv-wrapper"> 5<div id="qv"> 6 7<h2>Содержание документа</h2> 8<ol> 9<li><a href="#filestruct">Структура файла манифеста</a></li> 10<li><a href="#filec">Соглашения о компонентах файла</a> 11<li><a href="#filef">Отображение функций в файле</a> 12 <ol> 13 <li><a href="#ifs">Фильтры объектов Intent</a></li> 14 <li><a href="#iconlabel">Значки и метки</a></li> 15 <li><a href="#perms">Разрешения</a></li> 16 <li><a href="#libs">Библиотеки</a></li> 17 </ol></li> 18</ol> 19</div> 20</div> 21 22<p> 23 В корневой папке каждого приложения должен находиться файл AndroidManifest.xml (который именно так и называется 24). <span itemprop="description">Файл манифеста 25 содержит важную информацию о приложении, которая требуется системе Android. 26 Только получив эту информацию, система может выполнить какой-либо код 27 приложения.</span> Среди прочего файл манифеста выполняет следующие действия: 28</p> 29 30<ul> 31<li>Он задает имя пакета Java для приложения. 32Это имя пакета служит уникальным идентификатором приложения.</li> 33 34<li>Он описывает компоненты приложения — операции, 35службы, приемники широковещательных сообщений и поставщиков контента, из которых состоит 36приложение. Он содержит имена классов, которые реализуют каждый компонент, и 37публикует их возможности (указывает, например, какие сообщения {@link android.content.Intent 38Intent} они могут принимать). На основании этих деклараций система Android 39может определить, из каких компонентов состоит приложение и при каких условиях их можно запускать.</li> 40 41<li>Он определяет, в каких процессах будут размещаться компоненты приложения.</li> 42 43<li>Он объявляет, какие разрешения должны быть выданы приложению, чтобы оно могло получить 44доступ к защищенным частям API-интерфейса и взаимодействовать с другими приложениями.</li> 45 46<li>Он также объявляет разрешения, требуемые для 47взаимодействия с компонентами данного приложения.</li> 48 49<li>Он содержит список классов {@link android.app.Instrumentation}, которые при выполнении приложения предоставляют 50сведения о профиле и прочую информацию. Эти объявления 51присутствуют в файле манифеста только во время разработки и отладки 52приложения и удаляются перед его публикацией.</li> 53 54<li>Он объявляет минимальный уровень API-интерфейса Android, который требуется 55приложению.</li> 56 57<li>Он содержит список библиотек, с которыми должно быть связано приложение.</li> 58</ul> 59 60 61<h2 id="filestruct">Структура файла манифеста</h2> 62 63<p> 64Приведенная далее схема позволяет ознакомиться с общей структурой файла манифеста и 65всеми элементами, которые могут в нем содержаться. Каждый элемент вместе со всеми своими 66атрибутами, полностью описывается в отдельном файле. Для просмотра подробных 67сведений о любом элементе, щелкните имя элемента на схеме, 68в алфавитном списке элементов, приведенном после схемы, или 69в любом другом месте, где этот элемент упоминается. 70</p> 71 72<pre> 73<?xml version="1.0" encoding="utf-8"?> 74 75<a href="{@docRoot}guide/topics/manifest/manifest-element.html"><manifest></a> 76 77 <a href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission /></a> 78 <a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission /></a> 79 <a href="{@docRoot}guide/topics/manifest/permission-tree-element.html"><permission-tree /></a> 80 <a href="{@docRoot}guide/topics/manifest/permission-group-element.html"><permission-group /></a> 81 <a href="{@docRoot}guide/topics/manifest/instrumentation-element.html"><instrumentation /></a> 82 <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><uses-sdk /></a> 83 <a href="{@docRoot}guide/topics/manifest/uses-configuration-element.html"><uses-configuration /></a> <!-- ##api level 3## --> 84 <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><uses-feature /></a> <!-- ##api level 4## --> 85 <a href="{@docRoot}guide/topics/manifest/supports-screens-element.html"><supports-screens /></a> <!-- ##api level 4## --> 86 <a href="{@docRoot}guide/topics/manifest/compatible-screens-element.html"><compatible-screens /></a> <!-- ##api level 9## --> 87 <a href="{@docRoot}guide/topics/manifest/supports-gl-texture-element.html"><supports-gl-texture /></a> <!-- ##api level 11## --> 88 89 <a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a> 90 91 <a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a> 92 <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"><intent-filter></a> 93 <a href="{@docRoot}guide/topics/manifest/action-element.html"><action /></a> 94 <a href="{@docRoot}guide/topics/manifest/category-element.html"><category /></a> 95 <a href="{@docRoot}guide/topics/manifest/data-element.html"><data /></a> 96 <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"></intent-filter></a> 97 <a href="{@docRoot}guide/topics/manifest/meta-data-element.html"><meta-data /></a> 98 <a href="{@docRoot}guide/topics/manifest/activity-element.html"></activity></a> 99 100 <a href="{@docRoot}guide/topics/manifest/activity-alias-element.html"><activity-alias></a> 101 <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"><intent-filter></a> . . . <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"></intent-filter></a> 102 <a href="{@docRoot}guide/topics/manifest/meta-data-element.html"><meta-data /></a> 103 <a href="{@docRoot}guide/topics/manifest/activity-alias-element.html"></activity-alias></a> 104 105 <a href="{@docRoot}guide/topics/manifest/service-element.html"><service></a> 106 <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"><intent-filter></a> . . . <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"></intent-filter></a> 107 <a href="{@docRoot}guide/topics/manifest/meta-data-element.html"><meta-data/></a> 108 <a href="{@docRoot}guide/topics/manifest/service-element.html"></service></a> 109 110 <a href="{@docRoot}guide/topics/manifest/receiver-element.html"><receiver></a> 111 <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"><intent-filter></a> . . . <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"></intent-filter></a> 112 <a href="{@docRoot}guide/topics/manifest/meta-data-element.html"><meta-data /></a> 113 <a href="{@docRoot}guide/topics/manifest/receiver-element.html"></receiver></a> 114 115 <a href="{@docRoot}guide/topics/manifest/provider-element.html"><provider></a> 116 <a href="{@docRoot}guide/topics/manifest/grant-uri-permission-element.html"><grant-uri-permission /></a> 117 <a href="{@docRoot}guide/topics/manifest/meta-data-element.html"><meta-data /></a> 118 <a href="{@docRoot}guide/topics/manifest/path-permission-element.html"><path-permission /></a> 119 <a href="{@docRoot}guide/topics/manifest/provider-element.html"></provider></a> 120 121 <a href="{@docRoot}guide/topics/manifest/uses-library-element.html"><uses-library /></a> 122 123 <a href="{@docRoot}guide/topics/manifest/application-element.html"></application></a> 124 125<a href="{@docRoot}guide/topics/manifest/manifest-element.html"></manifest></a> 126</pre> 127 128<p> 129Далее приведен список всех элементов, расположенных в алфавитном порядке, которые могут 130присутствовать в файле манифеста. Там могут находиться только эти элементы, а никакие другие 131элементы или атрибуты добавлять нельзя. 132</p> 133 134<p style="margin-left: 2em"> 135<code><a href="{@docRoot}guide/topics/manifest/action-element.html"><action></a></code> 136<br/><code><a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code> 137<br/><code><a href="{@docRoot}guide/topics/manifest/activity-alias-element.html"><activity-alias></a></code> 138<br/><code><a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code> 139<br/><code><a href="{@docRoot}guide/topics/manifest/category-element.html"><category></a></code> 140<br/><code><a href="{@docRoot}guide/topics/manifest/data-element.html"><data></a></code> 141<br/><code><a href="{@docRoot}guide/topics/manifest/grant-uri-permission-element.html"><grant-uri-permission></a></code> 142<br/><code><a href="{@docRoot}guide/topics/manifest/instrumentation-element.html"><instrumentation></a></code> 143<br/><code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"><intent-filter></a></code> 144<br/><code><a href="{@docRoot}guide/topics/manifest/manifest-element.html"><manifest></a></code> 145<br/><code><a href="{@docRoot}guide/topics/manifest/meta-data-element.html"><meta-data></a></code> 146<br/><code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code> 147<br/><code><a href="{@docRoot}guide/topics/manifest/permission-group-element.html"><permission-group></a></code> 148<br/><code><a href="{@docRoot}guide/topics/manifest/permission-tree-element.html"><permission-tree></a></code> 149<br/><code><a href="{@docRoot}guide/topics/manifest/provider-element.html"><provider></a></code> 150<br/><code><a href="{@docRoot}guide/topics/manifest/receiver-element.html"><receiver></a></code> 151<br/><code><a href="{@docRoot}guide/topics/manifest/service-element.html"><service></a></code> 152<br/><code><a href="{@docRoot}guide/topics/manifest/supports-screens-element.html"><supports-screens></a></code> <!-- ##api level 4## --> 153<br/><code><a href="{@docRoot}guide/topics/manifest/uses-configuration-element.html"><uses-configuration></a></code> <!-- ##api level 3## --> 154<br/><code><a href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><uses-feature></a></code> <!-- ##api level 4## --> 155<br/><code><a href="{@docRoot}guide/topics/manifest/uses-library-element.html"><uses-library></a></code> 156<br/><code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission></a></code> 157<br/><code><a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><uses-sdk></a></code> 158</p> 159 160 161 162 163<h2 id="filec">Соглашения о компонентах файла</h2> 164 165<p> 166Ко всем элементам и атрибутам 167из файла манифеста применяется рад соглашений и правил: 168</p> 169 170<dl> 171<dt><b>Элементы</b></dt> 172<dd>Обязательными 173являются только элементы<code><a href="{@docRoot}guide/topics/manifest/manifest-element.html"><manifest></a></code> и 174<code><a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code> 175. Оба они должны присутствовать в файле манифеста, при этом указать их можно только один раз. 176Большинство других элементов можно указывать по нескольку раз или не указывать вовсе — хотя по 177крайней мере некоторые из них нужны, чтобы файл манифеста был сколько-нибудь 178информативным. 179 180<p> 181Если в элементе и есть какое-то содержимое, то это другие элементы. 182Все значения задаются с помощью атрибутов, а не как символьные данные в элементе. 183</p> 184 185<p> 186Элементы, находящиеся на одном уровне, обычно не упорядочиваются. Например, 187 элементы <code><a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code>, 188<code><a href="{@docRoot}guide/topics/manifest/provider-element.html"><provider></a></code> и 189<code><a href="{@docRoot}guide/topics/manifest/service-element.html"><service></a></code> 190можно указать в любой последовательности. (Элемент 191<code><a href="{@docRoot}guide/topics/manifest/activity-alias-element.html"><activity-alias></a></code> 192является исключением из этого правила. Он должен следовать за элементом 193<code><a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code>, 194псевдонимом которого он является.) 195</p></dd> 196 197<dt><b>Атрибуты</b></dt> 198<dd>Формально все атрибуты являются необязательными. Однако некоторые их них 199указывать необходимо, чтобы файл мог выполнять свое предназначение. В качестве руководства используйте эту 200документацию. В отношении атрибутов, которые являются и вправду необязательными, в ней указывается значение, 201используемое по умолчанию, или говорится, что произойдет, если такой атрибут не будет указан. 202 203<p>За исключением некоторых атрибутов корневого элемента 204<code><a href="{@docRoot}guide/topics/manifest/manifest-element.html"><manifest></a></code> 205, имена всех атрибутов должны начинаться с префикса {@code android:} — 206например, {@code android:alwaysRetainTaskState}. Поскольку этот префикс является 207универсальным, в документации при указании атрибутов по имени 208он обычно опускается.</p></dd> 209 210<dt><b>Объявление имен классов</b></dt> 211<dd>Многие элементы соответствуют объектам Java, в том числе элементы для самого 212приложения (элемент 213<code><a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code> 214) и основных его компонентов — операций 215(<code><a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code>), 216служб 217(<code><a href="{@docRoot}guide/topics/manifest/service-element.html"><service></a></code>), 218приемников широковещательных сообщений 219(<code><a href="{@docRoot}guide/topics/manifest/receiver-element.html"><receiver></a></code>) 220и поставщиков контента 221(<code><a href="{@docRoot}guide/topics/manifest/provider-element.html"><provider></a></code>). 222 223<p> 224Если вы определяете подкласс, а это практически всегда делается для классов компонентов 225({@link android.app.Activity}, {@link android.app.Service}, 226{@link android.content.BroadcastReceiver} и {@link android.content.ContentProvider}), 227выполняется это с помощью атрибута {@code name}. В состав имени должно входить 228полное обозначение пакета. 229Например, подкласс {@link android.app.Service} можно объявить следующим образом: 230</p> 231 232<pre><manifest . . . > 233 <application . . . > 234 <service android:name="com.example.project.SecretService" . . . > 235 . . . 236 </service> 237 . . . 238 </application> 239</manifest></pre> 240 241<p> 242Однако его можно укоротить. Если первым символом в строке указать точку, эта 243строка будет добавляться к имени пакета приложения (указанного атрибутом 244<code><a href="{@docRoot}guide/topics/manifest/manifest-element.html#package">package</a></code> 245элемента 246<code><a href="{@docRoot}guide/topics/manifest/manifest-element.html#package">package</a></code> 247). Следующее назначение является таким же, как приведенное выше: 248</p> 249 250<pre><manifest package="com.example.project" . . . > 251 <application . . . > 252 <service android:name=".SecretService" . . . > 253 . . . 254 </service> 255 . . . 256 </application> 257</manifest></pre> 258 259<p> 260При запуске компонента Android создает экземпляр подкласса, указанного по имени. 261Если подкласс не указан, система создает экземпляр базового класса. 262</p></dd> 263 264<dt><b>Несколько значений</b></dt> 265<dd>Если можно указать несколько значений, элемент почти всегда 266приводится повторно. Делается это вместо перечисления нескольких значений в одном элементе. 267Например, в фильтре Intent может быть перечислено несколько действий: 268 269<pre><intent-filter . . . > 270 <action android:name="android.intent.action.EDIT" /> 271 <action android:name="android.intent.action.INSERT" /> 272 <action android:name="android.intent.action.DELETE" /> 273 . . . 274</intent-filter></pre></dd> 275 276<dt><b>Значения ресурсов</b></dt> 277<dd>Значения некоторых атрибутов могут отображаться на экране — например, 278метка и значок операции. Значения этих атрибутов 279следует локализовать, поэтому они должны задаваться в ресурсе или теме. Значения 280ресурсов выражаются в следующем формате:</p> 281 282<p style="margin-left: 2em">{@code @[<i>пакет</i>:]<i>тип</i>:<i>имя</i>}</p> 283 284<p> 285где <i>имя пакета</i> можно опустить, если ресурс находится в одном пакете 286с приложением, <i>тип —</i> это тип ресурса, — например "string" или 287"drawable", — а <i>имя —</i> это имя, определяющее ресурс. 288Например: 289</p> 290 291<pre><activity android:icon="@drawable/smallPic" . . . ></pre> 292 293<p> 294Значения из темы выражаются схожим образом, только в начале у них идет "{@code ?}", 295а не "{@code @}": 296</p> 297 298<p style="margin-left: 2em">{@code ?[<i>пакет</i>:]<i>тип</i>:<i>имя</i>} 299</p></dd> 300 301<dt><b>Строковые значения</b></dt> 302<dd>Когда значением атрибута является строка, следует использовать двойную обратную косую черту ("{@code \\}") 303для выделения управляющей последовательности символов, — например "{@code \\n}" для 304новой строки или "{@code \\uxxxx}" для символа Юникода.</dd> 305</dl> 306 307 308<h2 id="filef">Отображение функций в файле</h2> 309 310<p> 311В следующих разделах описано, как некоторые функции Android отображаются 312в файле манифеста. 313</p> 314 315 316<h3 id="ifs">Фильтры объектов Intent</h3> 317 318<p> 319Базовые компоненты приложения (его операции, службы и 320приемники широковещательных сообщений) активируются <i>объектами Intent</i>. Intent — 321это совокупность информации (объект {@link android.content.Intent}), описывающей 322требуемое действие, — в том числе в ней указаны данные, с которыми следует выполнить это действие, категория 323компонентов, которые должны выполнять это действие, и другие уместные инструкции. 324Система Android находит компонент, который отреагирует на объект Intent, запускает 325новый экземпляр компонента, если он требуется, и передает ему 326объект Intent. 327</p> 328 329<p> 330Компоненты объявляют свои возможности — виды объектов Intent, на которые они могут 331реагировать, — с помощью <i>фильтров Intent</i>. Поскольку система Android 332должна узнать, какие объекты Intent может обрабатывать тот или иной компонент, до того как она его запустит, 333фильтры Intent указываются в файле манифеста как 334элементы <code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"><intent-filter></a></code> 335. Компонент может иметь любое количество фильтров, каждый из которых описывает 336отдельную возможность компонента. 337</p> 338 339<p> 340Объект Intent, в котором целевой компонент явно указан по имени, активирует этот компонент, 341и фильтр при этом не учитывается. Но объект Intent, в котором имя целевого 342компонента не указано, может активировать компонент, только если он может пройти через один из фильтров 343компонента. 344</p> 345 346<p> 347Сведения о том, каким образом объекты Intent проверяются по фильтрам Intent, 348см. в отдельном документе 349<a href="{@docRoot}guide/components/intents-filters.html">Объекты Intent 350и фильтры объектов Intent</a>. 351</p> 352 353 354<h3 id="iconlabel">Значки и метки</h3> 355 356<p> 357У ряда элементов есть атрибуты {@code icon} и {@code label} для 358небольшого значка и текстовой метки, которые могут отображаться на экране. У некоторых из них также есть атрибут 359{@code description} для более длинного описательного текста, который также может 360отображаться на экране. Например, элемент 361<code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code> 362имеет все три таких атрибута, поэтому, когда пользователю задается вопрос, предоставить ли 363разрешение запросившему его приложению, на экране может отображаться значок, 364представляющий разрешение, имя разрешения и описание того, что оно 365за собой влечет. 366</p> 367 368<p> 369В любом случае значок и метка, заданные в элементе-контейнере, становятся параметрами 370{@code icon} и {@code label}, используемыми по умолчанию для всех вложенных в этот контейнер дочерних элементов. 371Так, значок и метка, заданные в элементе 372<code><a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code>, 373являются значком и меткой, используемыми по умолчанию для каждого компонента приложения. 374Точно так же, значок и метка, заданные для компонента, — например элемента 375<code><a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code>, — 376являются параметрами, используемыми по умолчанию для каждого элемента 377<code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"><intent-filter></a></code> 378 компонента. Если в элементе 379<code><a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code> 380задана метка, а в операции и ее фильтре Intent — нет, 381метка приложения будет считаться меткой и для операции, и для 382фильтра Intent. 383</p> 384 385<p> 386Значок и метка, заданные для фильтра Intent, используются для обозначения компонента, 387когда он представляется пользователю, для указания функции, 388которую анонсирует фильтр. Например, фильтр с параметрами 389"{@code android.intent.action.MAIN}" и 390"{@code android.intent.category.LAUNCHER}" сообщает, что эта операция 391инициирует приложение, — то есть он обозначает ее как 392 операцию, которая должна быть отображена в средстве запуска приложений. Отсюда следует, что значок и метка, 393заданные в фильтре, отображаются в средстве запуска. 394</p> 395 396 397<h3 id="perms">Разрешения</h3> 398 399<p> 400Разрешение <i>представляет</i> собой ограничение на доступ к части кода 401или к данным, имеющимся на устройстве. Это ограничение накладывается для защиты важных 402данных и кода, ненадлежащее использование которых может пагубно сказаться на работе приложения. 403</p> 404 405<p> 406Каждое разрешение обозначается уникальной меткой. Зачастую метка обозначает 407действие, выполнение которого ограничивается. Например, вот некоторые разрешения, определенные 408системой Android: 409</p> 410 411<p style="margin-left: 2em">{@code android.permission.CALL_EMERGENCY_NUMBERS} 412<br/>{@code android.permission.READ_OWNER_DATA} 413<br/>{@code android.permission.SET_WALLPAPER} 414<br/>{@code android.permission.DEVICE_POWER}</p> 415 416<p> 417Функцию можно защитить не более чем одним разрешением. 418</p> 419 420<p> 421Если приложению требуется доступ к функции, защищенной разрешением, 422оно должно объявить, что ему необходимо это разрешение, с помощью элемента 423<code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission></a></code> 424в файле манифеста. Затем, когда приложение устанавливается на 425устройство, установщик определяет, выдать ли запрошенное 426разрешение, проверяя полномочия органов, подписавших сертификаты 427приложения, а также, в некоторых случаях, спрашивая об этом пользователя. 428Если разрешение предоставляется, приложение сможет использовать защищенные 429функции. В противном случае его попытки доступа к этим функциям будут безуспешными, 430причем пользователь не получит никакого уведомления об этом. 431</p> 432 433<p> 434Приложение также может защищать с помощью разрешений собственные компоненты (операции, службы, 435приемники широковещательных сообщений и поставщиков контента). Оно может использовать 436любые разрешения, определенные системой Android (они приведены в объекте 437{@link android.Manifest.permission android.Manifest.permission}) или объявленные 438другими приложениями. Либо оно может определить разрешения самостоятельно. Новое разрешение объявляется 439с помощью элемента 440<code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code> 441. Например, операцию можно защитить следующим образом: 442</p> 443 444<pre> 445<manifest . . . > 446 <permission android:name="com.example.project.DEBIT_ACCT" . . . /> 447 <uses-permission android:name="com.example.project.DEBIT_ACCT" /> 448 . . . 449 <application . . .> 450 <activity android:name="com.example.project.FreneticActivity" 451 android:permission="com.example.project.DEBIT_ACCT" 452 . . . > 453 . . . 454 </activity> 455 </application> 456</manifest> 457</pre> 458 459<p> 460Обратите внимание, что в этом примере разрешение {@code DEBIT_ACCT} не только 461объявляется с помощью элемента 462<code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code> 463, его использование также запрашивается с помощью элемента 464<code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission></a></code> 465. Чтобы другие компоненты приложения запускали защищенную 466операцию, ее использование должно быть запрошено, даже несмотря на то, что защита 467наложена самим приложением. 468</p> 469 470<p> 471В этом же примере: если атрибут {@code permission} был бы задан как 472разрешение, объявленное где-то еще 473(например, {@code android.permission.CALL_EMERGENCY_NUMBERS}), его бы не 474нужно было объявлять еще раз с помощью элемента 475<code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code> 476. Однако все равно нужно было бы запрашивать его использование с помощью 477<code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission></a></code>. 478</p> 479 480<p> 481Элемент 482<code><a href="{@docRoot}guide/topics/manifest/permission-tree-element.html"><permission-tree></a></code> 483объявляет пространство имен для группы разрешений, которые будут определены в 484коде. А элемент 485<code><a href="{@docRoot}guide/topics/manifest/permission-group-element.html"><permission-group></a></code> 486определяет метку для набора разрешений (как для разрешений, объявленных в файле манифеста с помощью элементов 487<code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code> 488, так и для объявленных где-то еще). Это влияет только на то, каким образом разрешения 489группируются, когда отображаются пользователю. Элемент 490<code><a href="{@docRoot}guide/topics/manifest/permission-group-element.html"><permission-group></a></code> 491не указывает, какие разрешения относятся к группе. 492Он просто дает группе имя. Чтобы включить разрешение в группу, 493атрибуту 494<code><a href="{@docRoot}guide/topics/manifest/permission-element.html#pgroup">permissionGroup</a></code> 495 его элемента 496<code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code> 497необходимо присвоить имя группы. 498</p> 499 500 501<h3 id="libs">Библиотеки</h3> 502 503<p> 504Каждое приложение связывается с используемой по умолчанию библиотекой Android, в которой 505имеются базовые пакеты для построения приложений (со стандартными классами, 506например Activity, Service, Intent, View, Button, Application, ContentProvider 507и так далее). 508</p> 509 510<p> 511Однако некоторые пакеты находятся в собственных библиотеках. Если ваше приложение 512использует код из одного из таких пакетов, оно должно в явном виде потребовать, чтобы его связали 513с этим пакетом. Файл манифеста должен содержать отдельный элемент 514<code><a href="{@docRoot}guide/topics/manifest/uses-library-element.html"><uses-library></a></code> 515для указания имени каждой библиотеки. (Имя библиотеки можно найти в 516документации по пакету.) 517</p> 518