Wednesday, April 24, 2019

Understanding Android Manifest File


                                               Android Manifest file

Every Android application must have a manifest file. Manifest file contains very essential information about the application. Having a proper understanding of manifest is necessary for Android application development.

A manifest file contains following information of Android application

  • Package name: The package name serves as a unique identifier for the application.
  • Activities : All activities are declared in manifest file.
  • Services : All the services used in you application must be declared in activities.
  • BroadcastReceivers : If your application has broadcast receiver, it must be declared in the manifest file.
  • Permissions : Lists the permissions required for your application.
  • API Level : It declares the minimum, maximum and target API level of the Android API that the application requires.
  • Application version : specifies the application version.
  • Features used in application : it specifies which android feature the application require to run properly.
  • Supported screen size : Android devices comes in many shapes and size. You need to specify which screen types your application supports.

Let us have a sample manifest file and discuss each element in detail.

<manifest xmlns:android=""
    android:versionName="1.1" >

        android:targetSdkVersion="15" />
    <!--  list of permissions  -->
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.RECEIVE_MMS" />
    <!--  Screen types supported  -->
    <!--  Features needed -->
    <uses-feature android:name="android.hardware.bluetooth" />
    <uses-feature android:name="" />

        android:theme="@style/AppTheme" >
            android:label="@string/title_activity_main" >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
         <receiver android:name=".SmsReceiver">
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
        <service  android:name="VibrateService"/>


Let us discuss each attribute
1:   package=""
package name of the application is "".
2: android:versionName="1.1"
version of application is 1.1
3: <uses-sdk
        android:targetSdkVersion="15" />

minSdkVersion attribute: specifies the lowest API level that the application supports, here it is 8.
maxSdkVersion attribute: specifies the maximum/highst API level that the application supports, here it is 16.
targetSdkVersion attribute: specifies the optimun API level that the application supports, here it is 15.

4: <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.RECEIVE_MMS" />

The application has requested four permissons
Permission to read contacts.
Permission to access internet.
Permission to vibrate the device.
Permission to receive the SMS.

Note: If you not declare the required permission in the manifest and use the feature in your application you will get “SecurityException”. List of all imporatnt permissions is given in the appendix.

5:    <supports-screens

application supports devices with small and normal screens but not support devices with large screens.

6: <uses-feature android:name="android.hardware.bluetooth" />
   <uses-feature android:name="" />

Application uses camera and Bluetooth hardware of the device.

7: the     <application> tag

In the application tag all activities, services and broadcast receivers are declared.

No comments:

Post a Comment