Open top menu



Why we Used Manifest file in android App ?

Explain:-the manifest file in its root Directory.  Must every application Manifest File.The manifest file provide all essential information about your app to the android system.
1.       Its name the java package for the application .package name serves as a unique identifier for the application.
2.       Described the components of the application, which include the activites,services,broadcast receivers, and content providers .
3.       The classes that implement each of the components and publishes the capabilities.
4.       It determines the processes that host the application component.
5.       Declares the permissions that the application must have in order to access protected parts of the API and interact with other application.
6.       It declares the minimum level of the Android API that the application requires.



Here is an example of the Manifest file.

xml version=”1.” Encoding=”utf-8”?>

<manifest>

<uses-permission />

<permission />

<permission- group />

<instrumentation />

<uses-sdk />

<uses-configuraton />

<uses-feature />

<support-screen />

<support-gl-texture />



<application >

    <activity>

        <intent-filter>

            <action />

            <category />



            <data />

        </intent-filter>

    </activity>



    <activity–alias>

    <intent-filter />

    < Meta-data />

</activity–alias>





<service>

    <intent-filter />

    <mete-data />

</service>


<
receiver>
    <
intent-filter />
    <
meta-data />
</
receiver>

<
provider >
    <
grant-uri-permission/>
    <
path-permission />
    <
meta-data />
</
provider>

<
uses-library />

</
application>

    </
manifest>


Action

Add action to an intent filter .for eg

<intent-filter>
<
action android:name="android.intent.action.EDIT" />
<
action android:name="android.intent.action.INSERT" />
<
action android:name="android.intent.action.DELETE" />
</
intent-filter>

An element must contain multiple  element.
But to assigine  one of these action to the attribute

<action android:name="com.example.project.TRANSMOGRIFY" />


Activity-alias

 The target must be in the same Application as the alias and it must be declared before the alias in the manifest.


    android:exported=["true" | "false"]
    android:icon="drawable resource"
    android:label="string resource"
    android:name="string"
    android:permission="string"
    android:targetActivity="string" >
    . . .
   
 
 

Category

Adds a category name to an intent filter. See Intents and Intent Filters for details on intent filters and the role of category specifications within a filter.

Syntax-
<category android:name="string" />
 


Data

The specification can be just a data type (the mimeType attribute), just a URI, or both a data type and a URI.

Syntax-

<data android:scheme="string"
   
android:host="string"
   
android:port="string"
   
android:path="string"
   
android:pathPattern="string"
   
android:pathPrefix="string"
   
android:mimeType="string" />

 
 
Grant-URI-Permission

Data subsets are indicated by the path part of a content: URI. (The authority part of the URI identifies the content provider.) Granting permission is a way of enabling clients of the provider that don't normally have permission to access its data to overcome that restriction on a one-time basis.

Syntax-
<grant-uri-permission android:path="string"
   
android:pathPattern="string"
   
android:pathPrefix="string"
/>

Instrumentation

Base class for implementing application instrumentation code . class that enables you to monitor an application's interaction with the system.

Syntax –

<instrumentation android:functionalTest=["true" | "false"]
android:handleProfiling=["true" | "false"]
android:icon="drawable resource"
android:label="string resource"
android:name="string"
android:targetPackage="string" />

 
Meta –Data

A name-value pair for an item of additional, arbitrary data that can be supplied to the parent component. A component element can contain any number of <meta-data> subelements.

Syntax-
<meta-data android:name="string"
   
android:resource="resource specification"
   
android:value="string" />


Receiver

Declares a broadcast receiver (a BroadcastReceiver subclass) as one of the application's components. Broadcast receivers enable applications to receive intents that are broadcast by the system or by other applications, even when other components of the application are not running.

Syntax-
  <receiver android:directBootAware=["true" | "false"]
    android:enabled=["true" | "false"]
    android:exported=["true" | "false"]
    android:icon="drawable resource"
    android:label="string resource"
    android:name="string"
    android:permission="string"
    android:process="string" >
    
</
receiver>
Read more






Example- How to Implement Material Spinner in android?


Step 1 - For normal look use

compile 'com.weiwangcn.betterspinner:library:1.1.0'
 
If you have appcompat-v7 in your dependencies make sure to exclude it :

compile ('com.weiwangcn.betterspinner:library:1.1.0') {
    exclude
group: 'com.android.support', module: 'appcompat-v7'
}



Step 2- Add View main_activity.xml.



<com.weiwangcn.betterspinner.library.BetterSpinner
    android:id="@+id/spinner_sp"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/edittext_view"
    android:hint="@string/select"
    android:padding="8dp"

     />
 
 
Step 3- Find View id in MainActivity.Java.

public class MainActivity extends AppCompatActivity {
 String[] age = {"12", "13","14","15","16","17","18","19","20",};

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        BetterSpinner Age_Sppiner = (BetterSpinner)
                                    findViewById(R.id.Age_Sppiner);

        ArrayAdapter arrayAdapterage = 
        new ArrayAdapter(listener, android.R.layout.
                                  simple_spinner_dropdown_item, age); 
                                
        Age_Sppiner.setAdapter(arrayAdapterage);
 

    }

}



Read more