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