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 &mdash; 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&lt;?xml version="1.0" encoding="utf-8"?&gt;
74
75<a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a>
76
77    <a href="{@docRoot}guide/topics/manifest/uses-permission-element.html">&lt;uses-permission /&gt;</a>
78    <a href="{@docRoot}guide/topics/manifest/permission-element.html">&lt;permission /&gt;</a>
79    <a href="{@docRoot}guide/topics/manifest/permission-tree-element.html">&lt;permission-tree /&gt;</a>
80    <a href="{@docRoot}guide/topics/manifest/permission-group-element.html">&lt;permission-group /&gt;</a>
81    <a href="{@docRoot}guide/topics/manifest/instrumentation-element.html">&lt;instrumentation /&gt;</a>
82    <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk /&gt;</a>
83    <a href="{@docRoot}guide/topics/manifest/uses-configuration-element.html">&lt;uses-configuration /&gt;</a>  <!-- ##api level 3## -->
84    <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">&lt;uses-feature /&gt;</a>  <!-- ##api level 4## -->
85    <a href="{@docRoot}guide/topics/manifest/supports-screens-element.html">&lt;supports-screens /&gt;</a>  <!-- ##api level 4## -->
86    <a href="{@docRoot}guide/topics/manifest/compatible-screens-element.html">&lt;compatible-screens /&gt;</a>  <!-- ##api level 9## -->
87    <a href="{@docRoot}guide/topics/manifest/supports-gl-texture-element.html">&lt;supports-gl-texture /&gt;</a>  <!-- ##api level 11## -->
88
89    <a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a>
90
91        <a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a>
92            <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a>
93                <a href="{@docRoot}guide/topics/manifest/action-element.html">&lt;action /&gt;</a>
94                <a href="{@docRoot}guide/topics/manifest/category-element.html">&lt;category /&gt;</a>
95                <a href="{@docRoot}guide/topics/manifest/data-element.html">&lt;data /&gt;</a>
96            <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;/intent-filter&gt;</a>
97            <a href="{@docRoot}guide/topics/manifest/meta-data-element.html">&lt;meta-data /&gt;</a>
98        <a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;/activity&gt;</a>
99
100        <a href="{@docRoot}guide/topics/manifest/activity-alias-element.html">&lt;activity-alias&gt;</a>
101            <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a> . . . <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;/intent-filter&gt;</a>
102            <a href="{@docRoot}guide/topics/manifest/meta-data-element.html">&lt;meta-data /&gt;</a>
103        <a href="{@docRoot}guide/topics/manifest/activity-alias-element.html">&lt;/activity-alias&gt;</a>
104
105        <a href="{@docRoot}guide/topics/manifest/service-element.html">&lt;service&gt;</a>
106            <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a> . . . <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;/intent-filter&gt;</a>
107            <a href="{@docRoot}guide/topics/manifest/meta-data-element.html">&lt;meta-data/&gt;</a>
108        <a href="{@docRoot}guide/topics/manifest/service-element.html">&lt;/service&gt;</a>
109
110        <a href="{@docRoot}guide/topics/manifest/receiver-element.html">&lt;receiver&gt;</a>
111            <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a> . . . <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;/intent-filter&gt;</a>
112            <a href="{@docRoot}guide/topics/manifest/meta-data-element.html">&lt;meta-data /&gt;</a>
113        <a href="{@docRoot}guide/topics/manifest/receiver-element.html">&lt;/receiver&gt;</a>
114
115        <a href="{@docRoot}guide/topics/manifest/provider-element.html">&lt;provider&gt;</a>
116            <a href="{@docRoot}guide/topics/manifest/grant-uri-permission-element.html">&lt;grant-uri-permission /&gt;</a>
117            <a href="{@docRoot}guide/topics/manifest/meta-data-element.html">&lt;meta-data /&gt;</a>
118            <a href="{@docRoot}guide/topics/manifest/path-permission-element.html">&lt;path-permission /&gt;</a>
119        <a href="{@docRoot}guide/topics/manifest/provider-element.html">&lt;/provider&gt;</a>
120
121        <a href="{@docRoot}guide/topics/manifest/uses-library-element.html">&lt;uses-library /&gt;</a>
122
123    <a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;/application&gt;</a>
124
125<a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;/manifest&gt;</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">&lt;action&gt;</a></code>
136<br/><code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code>
137<br/><code><a href="{@docRoot}guide/topics/manifest/activity-alias-element.html">&lt;activity-alias&gt;</a></code>
138<br/><code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code>
139<br/><code><a href="{@docRoot}guide/topics/manifest/category-element.html">&lt;category&gt;</a></code>
140<br/><code><a href="{@docRoot}guide/topics/manifest/data-element.html">&lt;data&gt;</a></code>
141<br/><code><a href="{@docRoot}guide/topics/manifest/grant-uri-permission-element.html">&lt;grant-uri-permission&gt;</a></code>
142<br/><code><a href="{@docRoot}guide/topics/manifest/instrumentation-element.html">&lt;instrumentation&gt;</a></code>
143<br/><code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a></code>
144<br/><code><a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a></code>
145<br/><code><a href="{@docRoot}guide/topics/manifest/meta-data-element.html">&lt;meta-data&gt;</a></code>
146<br/><code><a href="{@docRoot}guide/topics/manifest/permission-element.html">&lt;permission&gt;</a></code>
147<br/><code><a href="{@docRoot}guide/topics/manifest/permission-group-element.html">&lt;permission-group&gt;</a></code>
148<br/><code><a href="{@docRoot}guide/topics/manifest/permission-tree-element.html">&lt;permission-tree&gt;</a></code>
149<br/><code><a href="{@docRoot}guide/topics/manifest/provider-element.html">&lt;provider&gt;</a></code>
150<br/><code><a href="{@docRoot}guide/topics/manifest/receiver-element.html">&lt;receiver&gt;</a></code>
151<br/><code><a href="{@docRoot}guide/topics/manifest/service-element.html">&lt;service&gt;</a></code>
152<br/><code><a href="{@docRoot}guide/topics/manifest/supports-screens-element.html">&lt;supports-screens&gt;</a></code>  <!-- ##api level 4## -->
153<br/><code><a href="{@docRoot}guide/topics/manifest/uses-configuration-element.html">&lt;uses-configuration&gt;</a></code>  <!-- ##api level 3## -->
154<br/><code><a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">&lt;uses-feature&gt;</a></code>  <!-- ##api level 4## -->
155<br/><code><a href="{@docRoot}guide/topics/manifest/uses-library-element.html">&lt;uses-library&gt;</a></code>
156<br/><code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html">&lt;uses-permission&gt;</a></code>
157<br/><code><a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk&gt;</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">&lt;manifest&gt;</a></code>
174e <code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</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 &mdash; 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">&lt;activity&gt;</a></code>,
188<code><a href="{@docRoot}guide/topics/manifest/provider-element.html">&lt;provider&gt;</a></code>
189e <code><a href="{@docRoot}guide/topics/manifest/service-element.html">&lt;service&gt;</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">&lt;activity-alias&gt;</a></code>
192é uma exceção a essa regra:  ele deve seguir o
193<code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</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">&lt;manifest&gt;</a></code>
205raiz, todos os nomes de atributo têm um prefixo {@code android:} &mdash;
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">&lt;application&gt;</a></code>
214) e seus componentes principais &mdash; atividades
215(<code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code>),
216serviços
217(<code><a href="{@docRoot}guide/topics/manifest/service-element.html">&lt;service&gt;</a></code>),
218receptores de transmissão
219(<code><a href="{@docRoot}guide/topics/manifest/receiver-element.html">&lt;receiver&gt;</a></code>)
220e provedores de conteúdo
221(<code><a href="{@docRoot}guide/topics/manifest/provider-element.html">&lt;provider&gt;</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>&lt;manifest . . . &gt;
233    &lt;application . . . &gt;
234        &lt;service android:name="com.example.project.SecretService" . . . &gt;
235            . . .
236        &lt;/service&gt;
237        . . .
238    &lt;/application&gt;
239&lt;/manifest&gt;</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">&lt;manifest&gt;</a></code>
247).  A seguinte atribuição é igual à atribuição acima:
248</p>
249
250<pre>&lt;manifest package="com.example.project" . . . &gt;
251    &lt;application . . . &gt;
252        &lt;service android:name=".SecretService" . . . &gt;
253            . . .
254        &lt;/service&gt;
255        . . .
256    &lt;/application&gt;
257&lt;/manifest&gt;</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>&lt;intent-filter . . . &gt;
270    &lt;action android:name="android.intent.action.EDIT" /&gt;
271    &lt;action android:name="android.intent.action.INSERT" /&gt;
272    &lt;action android:name="android.intent.action.DELETE" /&gt;
273    . . .
274&lt;/intent-filter&gt;</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 &mdash; 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 &mdash; como uma "string" ou
287"drawable" (desenhável) &mdash; e <i>nome</i> é o nome que identifica o recurso específico.
288Por exemplo:
289</p>
290
291<pre>&lt;activity android:icon="@drawable/smallPic" . . . &gt</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 &mdash; 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 &mdash; 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 &mdash; os tipos de intenção aos quais eles podem
331responder &mdash; 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">&lt;intent-filter&gt;</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">&lt;permission&gt;</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">&lt;application&gt;</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 &mdash; por exemplo, um elemento
375<code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code>
376 &mdash; são as configurações padrão para cada um dos elementos
377<code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a></code>
378do componente.  Se um elemento
379<code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</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 &mdash; 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">&lt;uses-permission&gt;</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">&lt;permission&gt;</a></code>.
441  Por exemplo: uma atividade pode ser protegida da seguinte forma:
442</p>
443
444<pre>
445&lt;manifest . . . &gt;
446    &lt;permission android:name="com.example.project.DEBIT_ACCT" . . . /&gt;
447    &lt;uses-permission android:name="com.example.project.DEBIT_ACCT" /&gt;
448    . . .
449    &lt;application . . .&gt;
450        &lt;activity android:name="com.example.project.FreneticActivity"
451                  android:permission="com.example.project.DEBIT_ACCT"
452                  . . . &gt;
453            . . .
454        &lt;/activity&gt;
455    &lt;/application&gt;
456&lt;/manifest&gt;
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">&lt;permission&gt;</a></code>
463, tem seu uso solicitado com o elemento
464<code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html">&lt;uses-permission&gt;</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">&lt;permission&gt;</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">&lt;uses-permission&gt;</a></code>.
478</p>
479
480<p>
481O elemento
482<code><a href="{@docRoot}guide/topics/manifest/permission-tree-element.html">&lt;permission-tree&gt;</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">&lt;permission-group&gt;</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">&lt;permission&gt;</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">&lt;permission-group&gt;</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">&lt;permission&gt;</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">&lt;uses-library&gt;</a></code>
515 separado para nomear cada uma das bibliotecas  (o nome da biblioteca se encontra
516na documentação do pacote).
517</p>
518