1page.title=Manifes Aplikasi 2@jd:body 3 4<div id="qv-wrapper"> 5<div id="qv"> 6 7<h2>Dalam dokumen ini</h2> 8<ol> 9<li><a href="#filestruct">Struktur File Manifes</a></li> 10<li><a href="#filec">Konvensi File</a> 11<li><a href="#filef">Fitur File</a> 12 <ol> 13 <li><a href="#ifs">Filter Intent</a></li> 14 <li><a href="#iconlabel">Ikon dan Label</a></li> 15 <li><a href="#perms">Izin</a></li> 16 <li><a href="#libs">Pustaka</a></li> 17 </ol></li> 18</ol> 19</div> 20</div> 21 22<p> 23 Setiap aplikasi harus memiliki file AndroidManifest.xml (bernama persis seperti ini) di direktori akar. 24 <span itemprop="description">File manifes 25 menyediakan informasi penting tentang aplikasi ke sistem Android, 26 informasi yang harus dimiliki sistem agar bisa menjalankan setiap kode 27aplikasi.</span> Di antaranya, manifes melakukan hal berikut ini: 28</p> 29 30<ul> 31<li>Menamai paket Java untuk aplikasi. 32Nama paket berfungsi sebagai identifier unik untuk aplikasi.</li> 33 34<li>Menjelaskan berbagai komponen aplikasi—aktivitas, 35 layanan, penerima siaran, dan penyedia konten 36yang membentuk aplikasi. Menamai kelas yang mengimplementasikan setiap komponen dan 37mempublikasikan kemampuannya (misalnya, pesan {@link android.content.Intent 38Intent} mana yang bisa ditanganinya). Deklarasi ini memberi tahu sistem Android mengenai 39komponennya dan dalam kondisi apa bisa diluncurkan.</li> 40 41<li>Menentukan proses yang akan menjadi host komponen aplikasi.</li> 42 43<li>Mendeklarasikan izin aplikasi mana yang harus dimiliki untuk 44mengakses bagian yang dilindungi pada API dan berinteraksi dengan aplikasi lain.</li> 45 46<li>Juga mendeklarasikan izin lain yang harus dimiliki untuk 47untuk berinteraksi dengan komponen aplikasi.</li> 48 49<li>Mencantumkan daftar kelas {@link android.app.Instrumentation} yang memberikan 50profil dan informasi lain saat aplikasi berjalan. Deklarasi ini 51hanya ada di manifes saat aplikasi dibuat dan diuji; 52 deklarasi dihapus sebelum aplikasi dipublikasikan.</li> 53 54<li>Mendeklarasikan tingkat minimum API Android yang diperlukan 55aplikasi.</li> 56 57<li>Mencantumkan daftar pustaka yang harus ditautkan aplikasi.</li> 58</ul> 59 60 61<h2 id="filestruct">Struktur File Manifes</h2> 62 63<p> 64Diagram di bawah ini menampilkan struktur umum file manifes dan setiap 65elemen yang bisa ditampungnya. Setiap elemen, bersama 66atributnya, didokumentasikan secara lengkap dalam file terpisah. Untuk melihat 67informasi terperinci tentang setiap elemen, klik nama elemen dalam diagram, 68dalam daftar abjad elemen yang mengikuti diagram, atau penyebutan nama 69elemen lainnya. 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> 129Semua elemen yang bisa muncul dalam file manifes tercantum di bawah ini 130dalam urutan abjad. Ini adalah satu-satunya elemen legal; Anda tidak bisa 131menambahkan elemen atau atribut sendiri. 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">Konvensi File</h2> 164 165<p> 166Sebagian konvensi dan aturan berlaku secara umum untuk semua elemen 167dan atribut di manifes: 168</p> 169 170<dl> 171<dt><b>Elemen</b></dt> 172<dd>Hanya elemen 173<code><a href="{@docRoot}guide/topics/manifest/manifest-element.html"><manifest></a></code> dan 174<code><a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code> 175yang diwajibkan, masing-masing harus ada dan hanya boleh terjadi sekali. 176Umumnya elemen lain bisa terjadi berkali-kali atau sama sekali tidak terjadi — meskipun 177setidaknya sebagian dari elemen itu harus ada untuk agar manifes mencapai sesuatu yang 178berarti. 179 180<p> 181Jika elemen tidak berisi apa pun, berarti elemen itu berisi elemen lain. 182Semua nilai diatur melalui atribut, bukan sebagai data karakter dalam elemen. 183</p> 184 185<p> 186Elemen yang sama tingkatan umumnya tidak diurutkan. Misalnya, elemen 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>, dan 189<code><a href="{@docRoot}guide/topics/manifest/service-element.html"><service></a></code> 190bisa dicampur dalam urutan apa pun. (Elemen 191<code><a href="{@docRoot}guide/topics/manifest/activity-alias-element.html"><activity-alias></a></code> 192 merupakan eksepsi untuk aturan ini: Elemen ini harus mengikuti 193<code><a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code> 194ini aliasnya.) 195</p></dd> 196 197<dt><b>Atribut</b></dt> 198<dd>Secara formal, semua atribut opsional. Akan tetapi, ada sebagian 199yang harus ditetapkan agar elemen bisa mencapai tujuannya. Gunakan 200dokumentasi sebagai panduan. Bagi atribut yang benar-benar opsional, ini menyebutkan 201nilai default atau menyatakan apa yang terjadi jika tidak ada spesifikasi. 202 203<p>Selain untuk beberapa atribut elemen akar 204<code><a href="{@docRoot}guide/topics/manifest/manifest-element.html"><manifest></a></code>, 205 semua nama atribut dimulai dengan awalan {@code android:} — 206misalnya, {@code android:alwaysRetainTaskState}. Karena awalan ini universal, dokumentasi umumnya meniadakannya saat mengacu atribut 207dengan nama. 208</p></dd> 209 210<dt><b>Mendeklarasikan nama kelas</b></dt> 211<dd>Banyak elemen berhubungan dengan objek Java, termasuk elemen 212aplikasi itu sendiri (elemen 213<code><a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code> 214) dan aktivitas komponen — utamanya 215(<code><a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code>), 216layanan 217(<code><a href="{@docRoot}guide/topics/manifest/service-element.html"><service></a></code>), 218penerima siaran 219(<code><a href="{@docRoot}guide/topics/manifest/receiver-element.html"><receiver></a></code>), 220dan penyedia konten 221(<code><a href="{@docRoot}guide/topics/manifest/provider-element.html"><provider></a></code>). 222 223<p> 224Jika mendefinisikan subkelas, seperti yang selalu Anda definisikan untuk kelas komponen 225({@link android.app.Activity}, {@link android.app.Service}, 226{@link android.content.BroadcastReceiver}, dan {@link android.content.ContentProvider}), 227subkelas dideklarasikan melalui atribut {@code name}. Nama harus menyertakan tujuan 228paket lengkap. 229Misalnya, subkelas {@link android.app.Service} mungkin dideklarasikan sebagai berikut: 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> 242Akan tetapi, sebagai shorthand, jika karakter pertama string adalah titik, 243string akan ditambahkan ke nama paket aplikasi (seperti yang ditetapkan dalam elemen 244<code><a href="{@docRoot}guide/topics/manifest/manifest-element.html"><manifest></a></code> 245 melalui atribut 246<code><a href="{@docRoot}guide/topics/manifest/manifest-element.html#package">package</a></code> 247). Penetapan berikut sama dengan di atas: 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> 260Saat memulai komponen, Android akan membuat instance subkelas yang diberi nama. 261Jika subkelas tidak ditetapkan, maka akak dibuat instance kelas dasar. 262</p></dd> 263 264<dt><b>Banyak nilai</b></dt> 265<dd>Jika lebih dari satu nilai yang dapat ditetapkan, elemen ini hampir selalu 266diulangi, bukan menampilkan daftar banyak nilai dalam satu elemen. 267Misalnya, filter intent dapat mencantumkan beberapa tindakan: 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>Nilai sumber daya</b></dt> 277<dd>Beberapa atribut memiliki nilai yang bisa ditampilkan kepada pengguna — misalnya 278, label dan ikon aktivitas. Nilai atribut ini 279harus dilokalkan dan karenanya ditetapkan dari sumber daya atau tema. Nilai sumber 280daya dinyatakan dalam format berikut,</p> 281 282<p style="margin-left: 2em">{@code @[<i>package</i>:]<i>type</i>:<i>name</i>}</p> 283 284<p> 285dalam hal ini nama <i>package</i> boleh dihilangkan jika sumber daya ada dalam paket yang sama dengan 286dengan aplikasi, <i>type</i> adalah tipe sumber daya — seperti "string" atau 287"drawable" — dan <i>name</i> adalah nama yang mengidentifikasi sumber daya tertentu. 288Misalnya: 289</p> 290 291<pre><activity android:icon="@drawable/smallPic" . . . ></pre> 292 293<p> 294Nilai tema diekspresikan dengan cara yang sama, namun dengan awal '{@code ?}' 295dan bukan '{@code @}': 296</p> 297 298<p style="margin-left: 2em">{@code ?[<i>package</i>:]<i>type</i>:<i>name</i>} 299</p></dd> 300 301<dt><b>Nilai-nilai string</b></dt> 302<dd>Bila nilai atribut adalah string, dua garis miring kiri ('{@code \\}') 303harus digunakan untuk meninggalkan karakter — misalnya, '{@code \\n}' untuk 304baris baru atau '{@code \\uxxxx}' untuk karakter Unicode.</dd> 305</dl> 306 307 308<h2 id="filef">Fitur File</h2> 309 310<p> 311Bagian berikut menjelaskan cara menerapkan sebagian fitur Android 312dalam file manifest. 313</p> 314 315 316<h3 id="ifs">Filter Intent</h3> 317 318<p> 319Komponen inti dari aplikasi (aktivitasnya, layanannya, dan penerima 320siaran) diaktifkan oleh <i>intent</i>. Intent adalah 321sekumpulan informasi (objek {@link android.content.Intent}) yang menjelaskan 322tindakan yang diinginkan — termasuk data yang akan ditindaklanjuti, kategori 323komponen yang harus melakukan tindakan, dan petunjuk terkait lainnya. 324Android mencari komponen yang sesuai untuk merespons intent, meluncurkan 325instance komponen baru jika diperlukan, dan meneruskannya ke 326objek Intent. 327</p> 328 329<p> 330Komponen mengiklankan kemampuannya — jenis intent yang bisa diresponsnya 331 — melalui <i>filter intent</i>. Karena sistem Android 332harus mempelajari intent yang dapat ditangani komponen sebelum meluncurkan komponen, 333filter intent ditetapkan dalam manifes sebagai elemen 334<code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"><intent-filter></a></code> 335. Sebuah komponen dapat memiliki filter dalam jumlah berapa saja, masing-masing menjelaskan 336kemampuan yang berbeda. 337</p> 338 339<p> 340Intent yang secara eksplisit menamai komponen target akan mengaktifkan komponen itu; 341filter tidak berperan. Namun intent yang tidak menetapkan target 342dengan nama dapat mengaktifkan komponen hanya jika dapat melewati salah satu filter 343komponen. 344</p> 345 346<p> 347Untuk informasi tentang cara objek Intent diuji terhadap filter intent, 348lihat dokumen terpisah, 349<a href="{@docRoot}guide/components/intents-filters.html">Intent 350dan Filter Intent</a>. 351</p> 352 353 354<h3 id="iconlabel">Ikon dan Label</h3> 355 356<p> 357Sejumlah elemen memiliki atribut {@code icon} dan {@code label} untuk 358ikon kecil dan label teks yang bisa ditampilkan kepada pengguna. Sebagian ada juga yang memiliki atribut 359{@code description}untuk teks penjelasan yang lebih panjang yang juga bisa 360ditampilkan pada layar. Misalnya, elemen 361<code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code> 362 memiliki ketiga atribut ini, jadi saat pengguna ditanya apakah akan 363memberi izin bagi aplikasi yang memintanya, ikon yang mewakili 364izin, nama izin, dan keterangan yang 365mengikutinya bisa ditampilkan kepada pengguna. 366</p> 367 368<p> 369Dalam setiap kasus, ikon dan label yang ditetapkan dalam elemen yang memuatnya menjadi 370{@code icon} default dan pengaturan {@code label} untuk semua subelemen kontainer ini. 371Karena itu, ikon dan label yang ditetapkan dalam elemen 372<code><a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code> 373adalah ikon dan label default untuk setiap komponen aplikasi. 374Demikian pula, ikon dan label yang ditetapkan untuk komponen — misalnya, elemen 375<code><a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code> 376— adalah pengaturan default untuk setiap elemen komponen 377<code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"><intent-filter></a></code> 378. Jika elemen 379<code><a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code> 380menetapkan label, namun suatu aktivitas dan filter intent-nya tidak menetapkan label, 381maka label aplikasi akan dianggap sama-sama sebagai label aktvitas dan 382filter intent. 383</p> 384 385<p> 386Ikon dan label yang ditetapkan untuk filter intent digunakan untuk mewakili komponen 387kapan saja komponen ditampilkan kepada pengguna saat memenuhi fungsi yang 388diiklankan oleh filter. Misalnya, filter dengan pengaturan 389"{@code android.intent.action.MAIN}" dan 390"{@code android.intent.category.LAUNCHER}" mengiklankan aktivitas 391sebagai aktivitas yang memulai aplikasi—, yaitu 392sebagai salah satu aktivitas yang harus ditampilkan dalam launcher aplikasi. Ikon dan label yang 393diatur dalam filter karenanya adalah ikon dan label yang ditampilkan dalam launcher. 394</p> 395 396 397<h3 id="perms">Izin</h3> 398 399<p> 400Sebuah <i>izin</i> adalah pembatasan yang membatasi akses ke bagian 401kode atau ke data pada perangkat. Pembatasan diberlakukan untuk melindungi data dan kode 402penting yang bisa disalahgunakan untuk mengganggu atau merusak pengalaman pengguna. 403</p> 404 405<p> 406Setiap izin diidentifikasi melalui label yang unik. Sering kali, label menunjukkan 407tindakan yang dibatasi. Misalnya, berikut ini adalah beberapa izin yang didefinisikan 408oleh 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> 417Sebuah fitur bisa dilindungi paling banyak oleh satu izin. 418</p> 419 420<p> 421Jika aplikasi memerlukan akses ke fitur yang dilindungi oleh izin, 422aplikasi harus mendeklarasikan bahwa aplikasi memerlukan izin itu dengan elemen 423<code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission></a></code> 424 dalam manifes. Kemudian, bila aplikasi telah diinstal pada 425perangkat, installer akan menentukan apakah izin yang diminta akan diberikan atau tidak 426dengan memeriksa otoritas yang menandatangani 427sertifikat aplikasi dan, dalam beberapa kasus, bertanya pada pengguna. 428Jika izin diberikan, aplikasi tersebut bisa menggunakan 429fitur yang dilindungi. Jika tidak, upaya aplikasi untuk mengakses fitur tersebut akan gagal 430tanpa ada pemberitahuan apa pun kepada pengguna. 431</p> 432 433<p> 434Aplikasi juga bisa melindungi komponennya sendiri (aktivitas, layanan, 435penerima siaran, dan penyedia konten) dengan izin. Aplikasi bisa menerapkan 436izin mana pun yang didefinisikan oleh Android (tercantum dalam 437{@link android.Manifest.permission android.Manifest.permission}) atau dideklarasikan 438oleh aplikasi lain. Atau aplikasi bisa mendefinisikannya sendiri. Izin baru dideklarasikan 439dengan elemen 440<code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code> 441. Misalnya, aktivitas dapat dilindungi sebagai berikut: 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> 460Perhatikan, dalam contoh ini izin {@code DEBIT_ACCT} tidak hanya 461dideklarasikan dengan elemen 462<code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code> 463, penggunaannya juga diminta dengan elemen 464<code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission></a></code> 465. Penggunaannya harus diminta agar komponen 466aplikasi lainnya bisa menjalankan aktivitas yang dilindungi, meskipun perlindungan itu 467diberlakukan oleh aplikasi itu sendiri. 468</p> 469 470<p> 471Dalam contoh yang sama, jika atribut {@code permission} ditetapkan 472untuk izin yang dideklarasikan di tempat lain 473lain (seperti {@code android.permission.CALL_EMERGENCY_NUMBERS}, maka atribut 474tidak perlu mendeklarasikannya lagi dengan elemen 475<code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code> 476. Akan tetapi, penggunaannya masih perlu dengan 477<code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission></a></code>. 478</p> 479 480<p> 481Elemen 482<code><a href="{@docRoot}guide/topics/manifest/permission-tree-element.html"><permission-tree></a></code> 483mendeklarasikan namespace untuk grup izin yang akan didefinisikan dalam 484kode. Dan 485<code><a href="{@docRoot}guide/topics/manifest/permission-group-element.html"><permission-group></a></code> 486mendefinisikan label untuk seperangkat izin (yang sama-sama dideklarasikan dalam manifes dengan elemen 487<code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code> 488dan yang dideklarasikan di tempat lain). Ini hanya memengaruhi cara izin 489dikelompokkan saat ditampilkan kepada pengguna. Elemen 490<code><a href="{@docRoot}guide/topics/manifest/permission-group-element.html"><permission-group></a></code> 491 tidak menetapkan izin mana dimiliki grup; 492elemen hanya memberi nama grup. Izin ditempatkan dalam grup 493dengan memberikan nama grup ke elemen 494<code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code> 495 melalui atribut 496<code><a href="{@docRoot}guide/topics/manifest/permission-element.html#pgroup">permissionGroup</a></code> 497. 498</p> 499 500 501<h3 id="libs">Pustaka</h3> 502 503<p> 504Setiap aplikasi ditautkan dengan pustaka default Android, yang 505menyertakan paket dasar untuk membangun aplikasi (dengan kelas umum 506seperti Activity, Service, Intent, View, Button, Application, ContentProvider, 507dan sebagainya). 508</p> 509 510<p> 511Akan tetapi, sebagian paket berada dalam pustakanya sendiri. Jika aplikasi Anda 512menggunakan kode salah satu paket ini, aplikasi secara eksplisit meminta untuk ditautkan dengan 513paket tersebut. Manifes harus berisi elemen 514<code><a href="{@docRoot}guide/topics/manifest/uses-library-element.html"><uses-library></a></code> yang 515terpisah untuk menamai setiap pustaka. (Nama pustaka bisa ditemukan 516dalam dokumentasi paket.) 517</p> 518