Home  >  Blog  >   Android  > 

Android Manifest File

As we all know, every Android project includes an Android Manifest file. This file can be found in the root directory of the project source set. It's required since it gives the Android build tools all of the information they need to build the app. In this article, we'll look at the Android Manifest file.

Rating: 4

AndroidManifest.xml is a powerful file in the Android platform that allows you to describe the functionality and requirements of your application to Android. However, working with it is not easy. Xamarin.Android helps to minimize this difficulty by allowing you to add custom attributes to your classes, which will then be used to automatically generate the manifest for you.

AndroidManifest.xml is generated as part of the build process, and the XML found within Properties/AndroidManifest.xml is merged with XML that is generated from custom attributes. The resulting merged AndroidManifest.xml resides in the obj subdirectory; for example, it resides at obj/Debug/android/AndroidManifest.xml for Debug builds. The merging process is trivial: it uses custom attributes within the code to generate XML elements and inserts those elements into AndroidManifest.xml.

If you would like to Enrich your career with an Android certified professional, then visit Mindmajix - A Global online training platform:  “Android training”  Course.  This course will help you to achieve excellence in this domain.

Android Manifest File

The manifest lets you define the structure and metadata of your application, its components, and its requirements.

  • The manifest also offers attributes to specify application metadata (like its icon or theme), and additional top-level nodes can be used for security settings, unit tests, and defining hardware and platform support requirements.
  • The manifest is made up of a root tag with a package attribute set to the project‘s package.
  • It usually includes an xmlns: android attribute that supplies several system attributes used within the file.
  • Use the versionCode attribute to define the current application version as an integer. This value is used internally to compare application versions.
  • Use the versionName attribute to specify a public version number that is displayed to users.

A typical manifest node is shown in the following XML snippet:

 [ ... manifest nodes ... ]

The tag includes nodes that define the application components, security settings, test classes, and requirements that make up your application. The following list gives a summary of the available node tags, and an XML snippet demonstrating how each one is used:

  • uses-SDK: This node lets you define a minimum, maximum, and target SDK version that must be available on a device in order for your application to function properly. Using a combination of minSDKVersion, maxed version, and target SDK version attributes, you can restrict which devices your application can run on, based on the SDK version supported by the installed platform.

Checkout Android Interview Questions

The minimum SDK version specifies the lowest version of the SDK that includes the APIs you have used in your application. If you fail to specify a minimum version, one will be assumed and your application will crash if it attempts to access APIs that aren‘t available on the host device.

The maximum SDK version lets you define an upper limit you are willing to support. Your application will not be visible on the Market for devices running a higher platform release. It‘s good practice not to set the maximum SDK value unless you know your application will definitely not work on newer platform releases.

MindMajix Youtube Channel

Checkout:-Background Services In Android

The supported SDK version is not equivalent to the platform version and cannot be derived from it. For example, the Android platform release 2.0 supports SDK version 5. To find the correct SDK version for each platform uses the table at:

  • Uses-configuration Use uses-configuration nodes to specify each combination of input mechanisms supported by your application. You can specify any combination of input devices that include:

  • ReqFiveWayNav Specify true for this attribute if you require an input device capable of navigating up, down, left, and right and by clicking the current selection. This includes both trackballs and D-pads.

  • ReqHardKeyboard If your application requires a hardware keyboard specify true.

  • ReqKeyboardType Lets you specify the keyboard type as one of nokeys, qwerty, twelvekey, or undefined.

  • ReqNavigation Specify the attribute value as one of nonav, dpad, trackball, wheel, or undefined as a required navigation device.

Explore Android Sample Resumes! Download & Edit, Get Noticed by Top Employers!Download Now!
Join our newsletter

Stay updated with our newsletter, packed with Tutorials, Interview Questions, How-to's, Tips & Tricks, Latest Trends & Updates, and more ➤ Straight to your inbox!

Course Schedule
Android TrainingMar 25 to Apr 09
Android TrainingMar 28 to Apr 12
Android TrainingApr 01 to Apr 16
Android TrainingApr 04 to Apr 19
Last updated: 23 March 2023
About Author
Remy Sharp
Ravindra Savaram

Ravindra Savaram is a Content Lead at Mindmajix.com. His passion lies in writing articles on the most popular IT platforms including Machine learning, DevOps, Data Science, Artificial Intelligence, RPA, Deep Learning, and so on. You can stay up to date on all these technologies by following him on LinkedIn and Twitter.

Recommended Courses

1 /15