Tuesday, 12 September 2017

File Manifest Android

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
 
<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.

No comments:

Post a Comment

File Manifest Android

Tiap aplikasi android hanya memiliki satu file manifest ( AndroidManifest.xml ). File manifest berisi semua informasi penting terkait aplik...