1page.title=Manifesto do aplicativo 2@jd:body 3 4<div id="qv-wrapper"> 5<div id="qv"> 6 7<h2>Neste documento</h2> 8<ol> 9<li><a href="#filestruct">Estrutura do arquivo de manifesto</a></li> 10<li><a href="#filec">Convenções de arquivos</a> 11<li><a href="#filef">Características do arquivo</a> 12 <ol> 13 <li><a href="#ifs">Filtros de intenções</a></li> 14 <li><a href="#iconlabel">Ícones e etiquetas</a></li> 15 <li><a href="#perms">Permissões</a></li> 16 <li><a href="#libs">Bibliotecas</a></li> 17 </ol></li> 18</ol> 19</div> 20</div> 21 22<p> 23 Todo aplicativo tem que ter um arquivo AndroidManifest.xml (precisamente 24com esse nome) no seu diretório raiz. <span itemprop="description">O arquivo de manifesto 25apresenta informações essenciais sobre o aplicativo ao sistema Android, 26necessárias para o sistema antes que ele possa executar o código 27do aplicativo.</span> Entre outras coisas, o manifesto serve para: 28</p> 29 30<ul> 31<li>Nomear o pacote Java para o aplicativo. 32O nome do pacote serve como identificador exclusivo para o aplicativo.</li> 33 34<li>Descrever os componentes do aplicativo — as atividades, 35os serviços, os receptores de transmissão e os provedores de conteúdo que compõem 36o aplicativo. Nomear as classes que implementam os componentes 37e publicam seus recursos (por exemplo, que mensagens {@link android.content.Intent 38Intent} eles podem tratar). Essas declarações permitem ao sistema Android 39saber quais são os componentes e em que condições eles podem ser iniciados.</li> 40 41<li>Determinar que processos hospedarão componentes de aplicativo.</li> 42 43<li>Declarar as permissões que o aplicativo deve ter para acessar 44partes protegidas da API e interagir com outros aplicativos.</li> 45 46<li>Declarar também as permissões que outros devem ter 47para interagir com os componentes do aplicativo.</li> 48 49<li>Listar as classes {@link android.app.Instrumentation} que fornecem 50geração de perfil e outras informações durante a execução do aplicativo. Essas declarações 51estão presentes no manifesto somente enquanto o aplicativo está em desenvolvimento 52e teste — elas são removidas antes da publicação do aplicativo.</li> 53 54<li>Declarar o nível mínimo da API do Android que o aplicativo 55exige.</li> 56 57<li>Listar as bibliotecas às quais o aplicativo deve se vincular.</li> 58</ul> 59 60 61<h2 id="filestruct">Estrutura do arquivo de manifesto</h2> 62 63<p> 64O diagrama ilustra a estrutura geral do arquivo de manifesto e cada 65elemento que ele pode conter. Cada elemento e seus atributos 66são documentados na totalidade em um arquivo separado. Para exibir informações detalhadas 67sobre cada elemento, clique no nome do elemento no diagrama, 68na lista de elementos em ordem alfabética que acompanha o diagrama 69ou em qualquer outra menção ao nome do elemento. 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> 129Todos os elementos que podem aparecer no arquivo de manifesto estão 130relacionados abaixo em ordem alfabética. Estes são os únicos elementos legais. Não é possível 131adicionar elementos ou atributos próprios. 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">Convenções de arquivos</h2> 164 165<p> 166Algumas convenções e regras se aplicam geralmente a todos os elementos e atributos 167no manifesto: 168</p> 169 170<dl> 171<dt><b>Elementos</b></dt> 172<dd>Somente os elementos 173<code><a href="{@docRoot}guide/topics/manifest/manifest-element.html"><manifest></a></code> 174e <code><a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code> 175são necessários — eles devem estar presentes e ocorrer somente uma vez. 176A maioria dos outros pode ocorrer diversas vezes ou nunca — embora 177pelo menos alguns deles devam estar presentes para que o manifesto 178realize algo significativo. 179 180<p> 181Se um elemento contiver qualquer coisa, ele conterá outros elementos. 182Todos os valores são definidos por meio de atributos, e não como dados de caracteres dentro de um elemento. 183</p> 184 185<p> 186Elementos de mesmo nível geralmente não são ordenados. Por exemplo: os elementos 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> 189e <code><a href="{@docRoot}guide/topics/manifest/service-element.html"><service></a></code> 190podem ser combinados entre si em qualquer sequência. (O elemento 191<code><a href="{@docRoot}guide/topics/manifest/activity-alias-element.html"><activity-alias></a></code> 192é uma exceção a essa regra: ele deve seguir o 193<code><a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code> 194para o qual é alias.) 195</p></dd> 196 197<dt><b>Atributos</b></dt> 198<dd>Formalmente, todos os atributos são opcionais. No entanto, alguns deles 199devem ser especificados para um elemento para cumprir a sua finalidade. Use 200a documentação como guia. Para atributos verdadeiramente opcionais, ele menciona 201um valor padrão ou declara o que acontece na ausência de uma especificação. 202 203<p>Exceto por alguns atributos do elemento 204<code><a href="{@docRoot}guide/topics/manifest/manifest-element.html"><manifest></a></code> 205raiz, todos os nomes de atributo têm um prefixo {@code android:} — 206por exemplo, {@code android:alwaysRetainTaskState}. Como o prefixo é universal, 207a documentação geralmente o omite ao referir-se a atributos 208pelo nome.</p></dd> 209 210<dt><b>Declaração de nomes de classe</b></dt> 211<dd>Muitos elementos correspondem a objetos Java, inclusive elementos do próprio 212aplicativo (o elemento 213<code><a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code> 214) e seus componentes principais — atividades 215(<code><a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code>), 216serviços 217(<code><a href="{@docRoot}guide/topics/manifest/service-element.html"><service></a></code>), 218receptores de transmissão 219(<code><a href="{@docRoot}guide/topics/manifest/receiver-element.html"><receiver></a></code>) 220e provedores de conteúdo 221(<code><a href="{@docRoot}guide/topics/manifest/provider-element.html"><provider></a></code>). 222 223<p> 224Se uma subclasse for definida, como quase sempre acontece para classes de componentes 225({@link android.app.Activity}, {@link android.app.Service}, 226{@link android.content.BroadcastReceiver} e {@link android.content.ContentProvider}), 227a subclasse será declarada por meio de um atributo {@code name}. O nome deve conter 228toda a designação do pacote. 229Por exemplo: uma subclasse {@link android.app.Service} pode ser declarada assim: 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> 242No entanto, para encurtar, se o primeiro caractere da string for um ponto, 243a string será acrescentada ao nome do pacote do aplicativo (conforme especificado pelo atributo 244<code><a href="{@docRoot}guide/topics/manifest/manifest-element.html#package">package</a></code> 245 do elemento 246<code><a href="{@docRoot}guide/topics/manifest/manifest-element.html"><manifest></a></code> 247). A seguinte atribuição é igual à atribuição acima: 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> 260Ao iniciar um componente, o Android cria uma instância da subclasse nomeada. 261Se nenhuma subclasse for especificada, ele criará uma instância da classe base. 262</p></dd> 263 264<dt><b>Vários valores</b></dt> 265<dd>Se for especificado mais de um valor, o elemento sempre será repetido 266em vez de listar os vários valores dentro de um único elemento. 267Por exemplo, um filtro de intenção pode listar algumas ações: 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>Valores de recurso</b></dt> 277<dd>Alguns atributos têm valores que podem ser exibidos aos usuários — por exemplo, 278uma etiqueta e um ícone de uma atividade. Os valores desses atributos 279devem ser localizados e, por tanto, definidos a partir de um recurso ou tema. Os valores 280de recurso são expressos no formato a seguir:</p> 281 282<p style="margin-left: 2em">{@code @[<i>pacote</i>:]<i>tipo</i>:<i>nome</i>}</p> 283 284<p> 285em que o nome do <i>pacote</i> pode ser omitido se o recurso estiver no mesmo pacote 286que o aplicativo <i>tipo</i> é um tipo de recurso — como uma "string" ou 287"drawable" (desenhável) — e <i>nome</i> é o nome que identifica o recurso específico. 288Por exemplo: 289</p> 290 291<pre><activity android:icon="@drawable/smallPic" . . . ></pre> 292 293<p> 294Os valores de um tema são expressos de forma semelhante, mas, com um '{@code ?}' 295em vez de '{@code @}': 296</p> 297 298<p style="margin-left: 2em">{@code ?[<i>pacote</i>:]<i>tipo</i>:<i>nome</i>} 299</p></dd> 300 301<dt><b>Valores de string</b></dt> 302<dd>Quando o valor de um atributo é uma string, devem-se usar duas barras invertidas ('{@code \\}') 303para caracteres de escape — por exemplo, '{@code \\n}' para 304uma nova linha ou '{@code \\uxxxx}' para um caractere Unicode.</dd> 305</dl> 306 307 308<h2 id="filef">Características do arquivo</h2> 309 310<p> 311As seções a seguir descrevem como alguns recursos do Android se refletem 312no arquivo de manifesto. 313</p> 314 315 316<h3 id="ifs">Filtros de intenções</h3> 317 318<p> 319Os componentes fundamentais de um aplicativo (suas atividades, serviços e receptores 320de transmissão) são ativados por <i>intenções</i>. Intenções são 321pacotes de informações (objetos {@link android.content.Intent}) que descrevem 322uma ação desejada — inclusive os dados usados em ações, a categoria 323do componente que deve executar a ação e outras instruções pertinentes. 324O Android localiza um componente adequado para responder à intenção, inicia 325uma nova instância do componente se necessário e passa-o 326ao objeto da intenção. 327</p> 328 329<p> 330Os componentes anunciam seus recursos — os tipos de intenção aos quais eles podem 331responder — por meio de <i>filtros de intenções</i>. Como o sistema Android 332precisa saber que intenções um componente pode tratar antes de iniciá-lo, os filtros 333de intenções são especificados no manifesto como elementos 334<code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"><intent-filter></a></code> 335. Os componentes podem ter qualquer quantidade de filtros, em que cada um descreve 336um recurso diferente. 337</p> 338 339<p> 340A intenção que nomeia explicitamente um componente alvo ativará 341aquele componente — o filtro não desempenha nenhuma função. Porém, uma intenção que não especifica nenhum alvo 342pelo nome pode ativar um componente somente se ele puder passar por um dos filtros 343do componente. 344</p> 345 346<p> 347Para ver como os objetos de intenção são testados em relação aos filtros de intenções, 348consulte o documento 349<a href="{@docRoot}guide/components/intents-filters.html">Intenções 350e filtros de intenções</a> em separado. 351</p> 352 353 354<h3 id="iconlabel">Ícones e etiquetas</h3> 355 356<p> 357Alguns elementos têm atributos {@code icon} e {@code label} de um pequeno ícone 358e uma etiqueta de texto que pode ficar visível para os usuários. Alguns deles também têm um atributo 359{@code description} para um texto explicativo mais longo que também pode ser 360exibido na tela. Por exemplo: o elemento 361<code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code> 362tem todos os três atributos; assim, quando o usuário é consultado para dar 363permissão a um aplicativo que a solicitou, serão apresentados ao usuário um ícone 364que representa a permissão, o nome da permissão e uma descrição 365de tudo o que está envolvido. 366</p> 367 368<p> 369Em todo caso, o ícone e a etiqueta definidos em um elemento recipiente se tornam as configurações 370{@code icon} e {@code label} padrão de todos os subelementos do contêiner. 371Assim, o ícone e a etiqueta definidos no elemento 372<code><a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code> 373são o ícone e a etiqueta padrão para cada um dos componentes do aplicativo. 374Da mesma forma, o ícone e a etiqueta definidos para um componente — por exemplo, um elemento 375<code><a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code> 376 — são as configurações padrão para cada um dos elementos 377<code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"><intent-filter></a></code> 378do componente. Se um elemento 379<code><a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code> 380define uma etiqueta, mas uma atividade e seu filtro de intenção não definem, 381a etiqueta do aplicativo é tratada como a etiqueta de atividade 382e do filtro de intenção. 383</p> 384 385<p> 386O ícone e a etiqueta definidos para um filtro de intenção são usados para representar um componente 387apresentado para o usuário para preencher a função 388anunciada pelo filtro. Por exemplo: um filtro com as configurações 389"{@code android.intent.action.MAIN}" e 390"{@code android.intent.category.LAUNCHER}" anuncia uma atividade 391como uma que inicia um aplicativo — ou seja, 392que deve ser exibida no inicializador do aplicativo. O ícone e a etiqueta 393definidos no filtro são, portanto, as exibidas no inicializador. 394</p> 395 396 397<h3 id="perms">Permissões</h3> 398 399<p> 400As <i>permissões</i> são restrições que limitam o acesso a parte do código 401ou aos dados de um dispositivo. A limitação é imposta para proteger dados 402essenciais que podem sofrer mau uso e distorções ou prejudicar a experiência do usuário. 403</p> 404 405<p> 406Cada permissão é identificada por uma etiqueta exclusiva. Geralmente a etiqueta indica 407a ação que foi restringida. A seguir há alguns exemplos de permissões definidas 408pelo 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> 417Um recurso pode ser protegido por, no máximo, uma permissão. 418</p> 419 420<p> 421Se um aplicativo precisar de acesso a um recurso protegido por uma permissão, 422ele deve declarar que precisa da permissão com um elemento 423<code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission></a></code> 424no manifesto. Assim, quando o aplicativo é instalado 425no dispositivo, o instalador determina se concederá ou não a permissão 426solicitada, marcando as autoridades que assinaram os certificados 427do aplicativo e, em alguns casos, perguntando ao usuário. 428Se a permissão for concedida, o aplicativo será capaz de usar os recursos 429protegidos. Caso contrário, sua tentativa de acessar esses recursos simplesmente falhará 430sem nenhuma notificação ao usuário. 431</p> 432 433<p> 434Um aplicativo também pode proteger seus componentes (atividades, serviços, 435receptores de transmissão e provedores de conteúdo) com permissões. Ele pode empregar 436qualquer uma das permissões definidas pelo Android (listadas em 437{@link android.Manifest.permission android.Manifest.permission}) ou declaradas 438por outros aplicativos. Ou então, ele pode definir as suas próprias. As novas permissões são declaradas 439com o elemento 440<code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code>. 441 Por exemplo: uma atividade pode ser protegida da seguinte forma: 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> 460Observe que, nesse exemplo, a permissão {@code DEBIT_ACCT}, além de declarada 461com o elemento 462<code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code> 463, tem seu uso solicitado com o elemento 464<code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission></a></code>. 465 Ela deve ser solicitada para que outros componentes do aplicativo 466iniciem a atividade protegida, mesmo que a proteção 467seja imposta pelo próprio aplicativo. 468</p> 469 470<p> 471Se, no mesmo exemplo, o atributo {@code permission} fosse definido 472como uma permissão declarada em outro lugar 473(como {@code android.permission.CALL_EMERGENCY_NUMBERS}), não seria 474necessário declará-la novamente com um elemento 475<code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code>. 476 No entanto, ainda seria necessário solicitar seu uso com 477<code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission></a></code>. 478</p> 479 480<p> 481O elemento 482<code><a href="{@docRoot}guide/topics/manifest/permission-tree-element.html"><permission-tree></a></code> 483declara um espaço de nome de um grupo de permissões que será definido 484no código. E 485<code><a href="{@docRoot}guide/topics/manifest/permission-group-element.html"><permission-group></a></code> 486define um etiqueta de um conjunto de permissões (os dois declarados no manifesto com elementos 487<code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code> 488e as declaradas em outro lugar). Ele afeta somente a forma com que as permissões estão 489agrupadas quando apresentadas ao usuário. O elemento 490<code><a href="{@docRoot}guide/topics/manifest/permission-group-element.html"><permission-group></a></code> 491não especifica que permissões pertencem ao grupo; 492ele só dá um nome ao grupo. Para incluir uma permissão no grupo, 493designa-se o nome do grupo ao atributo 494<code><a href="{@docRoot}guide/topics/manifest/permission-element.html#pgroup">permissionGroup</a></code> 495 do elemento 496<code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code>. 497 498</p> 499 500 501<h3 id="libs">Bibliotecas</h3> 502 503<p> 504Todo aplicativo está vinculado à biblioteca Android padrão, que 505contém os pacotes básicos para programar aplicativos (com classes comuns 506tais como Activity, Service, Intent, View, Button, Application, ContentProvider 507etc.). 508</p> 509 510<p> 511No entanto, alguns pacotes residem em suas próprias bibliotecas. Se o aplicativo 512usar código de algum desses pacotes, ele deve receber solicitação explícita para ser 513vinculado a eles. O manifesto deve conter um elemento 514<code><a href="{@docRoot}guide/topics/manifest/uses-library-element.html"><uses-library></a></code> 515 separado para nomear cada uma das bibliotecas (o nome da biblioteca se encontra 516na documentação do pacote). 517</p> 518