Tiap aplikasi android hanya memiliki satu file manifest (AndroidManifest.xml). File manifest berisi semua informasi penting terkait aplikasi. File manifest menjelaskan struktur aplikasi seperti nama, versi, komponen yang digunakan (Activity, Service, dan Broadcast Receiver), daftar intent yang ditangani, izin yang diminta, dan fitur hardware yang dibutuhkan. File manifest terdiri dari beragam tag yang masing - masing punya kegunaan. berikut daftar tag dalam file manifest yang paling sering digunakan.
<manifest xmlnx:android="http://schemas.android.com/apk/res/android"
package="com.araysama.demo.helloworld"
android:versionCode=”1”
android:versionName="1.0">
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name=".HelloActivity"
android:label="@string/title_Activity_hello">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
a. <manifest>
Tag <manifest> adalah tag terluar yang
menyusun AndroidManifest.xml. Atribut penting dalam tag ini
adalah package yang berisi nama package bersangkutan
dimana aplikasi berada. Atribut lain yang disematkan adalah versi aplikasi,
yakni android:versionCode dan android:versionName masing
- masing adala nilai integer kode versi dan string berisi versi aplikasi
dalam teks. Keduanya digunakan untuk membedakan versi rilis aplikasi.
b. <uses-sdk>
Tag <uses-sdk> digunakan untuk mengatur
versi Android API yang digunakan aplikasi. Atribut yang dapat digunakan adalah
Item
|
Keterangan
|
android:minSdkVersion
|
Api
level minimum yang diperlukan aplikasi.
Contoh,
aplikasi anda membutuhkan pustaka OpenGL ES 2.0 untuk bekerja. Karena pustaka
OpenGL ES 2.0 baru tersedia di API level 8 (Android Froyo), maka atribut ini
wajib anda isi dengan 8.
Aplikasi
anda hanya dapat diinstal pada piranti dengan versi Android API level 8 atau
lebih baru.
|
android:targetSdkVersion
|
Veris
API level yang digunakan saat build.
Atribut
ini menentukan beberapa fitur yang tersedia bagi aplikasi anda. Umumnya,
atribut ini diisi dengan versi API terbaru yang ada dikomputer, yang
digunakan untuk mengembangkan aplikasi.
Contoh,
jika aplikasi anda menggunakan target API level 11, maka fitur Fragment dapat
anda gunakan saat menulis program. Bila minSdKVersion lebih
kecil dari targetSdKVersion dan aplikasi menggunakan fitur
yang hanya tersedia pada API level yang lebih baru disbanding minSdKVersion. Aplikasi
dapat memanfaatkan pustaka dukungan kompatibilitas. Jadi, aplikasi tetap
dapat dijalankan menggunakan fitur Fragment meskipun
diinstal Android Froyo karena fitur tersebut akan disertakan bersama file
pustaka tambahan
|
android:maxSdkVersion
|
API
level maksimum yang digunakan.
Umumnya,
aplikasi tidak boleh membatasi versi android terbaru yang boleh diinstal
karena bersifat backward-compatible. Aplikasi yang anda tulis
untuk android Froyo dapat dijalankan tanpa perlu modifikasi di android
KitKat. Namun, ada saat dimana anda tidak ingin aplikasi diinstal di API level
baru yang belum diuji.
|
c. <uses-feature>
Tag <uses-feature>digunakan untuk memberitahu android fitur hardware mana yang diperlukan aplikasi. Tag ini dapat mencegah aplikasi diinstal pada piranti yang tidak memiliki hardware yang diperlukan. contohnya, aplikasi editor gambar kamera yang hanya bekerja bila piranti memiliki kamera yang dapat menggunakan android.hardware.camera. piranti bergerak yang tidak memiliki kamera tidak akan menginstal aplikasi anda.
<uses-feature android:name="android.hardware.camera"/>
d. <uses-permission>
Tag <uses-permission>digunakan untuk menentukan izin yang diminta ole aplikasi. Contohnya
apabila aplikasi membutuhkan akses internet untuk bekerja, maka anda wajib
menyertakan android.permission.INTERNET pada atribut android:name
<uses-permission android:name="android.permission.INTERNET" />
Tiap - tiap izin yang aplikasi anda perlukan akan diberitahhukan kepada pengguna. Bila pengguna setuju semua izin diminta, aplikasi baru dapat diinstal.
e. <application>
Dalam Tag <manifest> hanya boleh mengandung sebuah tag <application>. Tag ini digunakan untuk mengatur informasi aplikasi seperti nama dan ikon yang digunakan.
<application
android:icon="@drawable/app_icon"
android:logo="@drawable/app_logo"
android:thema="@android:style/Theme.Light"
android:name=".MyApplicationClass">
....
<application
Tag <application> juga merupakan pembungkus daftar komponen yang ada didalam aplikasi seperti activity yang digunakan, Broadcast Receiver, Service, dan Content Provider bila ada.
f. <activity>
Deklarasi Activity menggunakan tag <activity> dan harus berada dalam tag <application>. Tiap Activity yang gunakan adalam aplikasi wajib didaftarkan dalam manifest. Menjalankan Activity yang tidak tercantum dalam manifest akan menyebabkan pesan kesalahan (runtime exception) dibangkitkan . Tag <activity> harus disematkan sebuah atribut wajib atau android:name yang diisi dengan nama kelas Activity. nama ini dapat berupa nama kelas lengkap dengan nama package seperti com.araysama.demo.helloworld.MyActivity atau nama singkat .MyActivity. Penggunaan nama singkat diawali karakter titik berarti memerintahkan android untuk mencari kelas MyActivity dalam package yang namanya tercantum dalam atribut package pada tag <manifest> dalam hal ini com.araysama.demo.helloworld. Atribut android:label akan digunakan sebagai judul Activity.
<application>
<activity
android:name=".MyActivity"
android:label="@string/app_name"
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Tag <uses-feature> bertindak sebagai pembungkus tag <intent-filter>
g. <receiver>
Tag<receiver>harus diletakkan didalam tag <appication> dan digunakan untuk mendaftarkan Broadcast Receiver. Atribyt wajib tag ini adalah android.name yang berisi nama kelasa Broadcast Receiver. Nama kelas dapat berupa nama lengkap beserta nam package maupun nama singkat diawali karakter titik. Dalam tag <receiver> harus disertakan tag <intent-filter> yang menentukan intent apa yang dapat direspons oleh Broadcast Receiver ini.
<receiver android:name=".MyIntentReceiver">
<intent-filter>
<action android:name="com.araysama.broadcastaction" />
</intent-filter>
</receiver>
h. <service>
Tag<service>mendaftarkan Service dalam manifest. Atribut yang wajib ada adalah android:name berisi nama kelas service lengkap atau nama singkat diawalai karakter titik.
<service android:name=".MyService">
</service>
i. <provider>
Tag<sprovider>harus berada dalam tag <application> dan digunakan untuk mendaftarkan Content Provider
Tag<sprovider>harus berada dalam tag <application> dan digunakan untuk mendaftarkan Content Provider
<provider android:name".MyContentProvider"
android:authorities="com.araysama.myapp.MyContentProvider"/>
j. <intent-filter>
Tag ini menentukan daftar intent yang dapat direspons oleh activity, Broadcast Receiver, atau Service dalam tag ini harus ada paling tidak satu tag <action> yang merupakan aksi yang dapat dijalankan .Tag <action> mengharapkan atribut wajib android:name berisi nama aksi yang dapat direspons. Tag<category> digunakan untuk mengelompokkan Intent berdasarkan kategori tertentu.
Tag ini menentukan daftar intent yang dapat direspons oleh activity, Broadcast Receiver, atau Service dalam tag ini harus ada paling tidak satu tag <action> yang merupakan aksi yang dapat dijalankan .Tag <action> mengharapkan atribut wajib android:name berisi nama aksi yang dapat direspons. Tag<category> digunakan untuk mengelompokkan Intent berdasarkan kategori tertentu.