syntax:
:

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

contained in:
:   [<activity>](https://developer.android.com/guide/topics/manifest/activity-element)

    [<activity-alias>](https://developer.android.com/guide/topics/manifest/activity-alias-element)

    [<application>](https://developer.android.com/guide/topics/manifest/application-element)

    [<provider>](https://developer.android.com/guide/topics/manifest/provider-element)

    [<receiver>](https://developer.android.com/guide/topics/manifest/receiver-element)

    [<service>](https://developer.android.com/guide/topics/manifest/service-element)

description:
:   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. The values from all of
    them are collected in a single [Bundle](https://developer.android.com/reference/android/os/Bundle) object and made
    available to the component as the
    [PackageItemInfo.metaData](https://developer.android.com/reference/android/content/pm/PackageItemInfo#metaData) field.

    Specify ordinary values through the [value](https://developer.android.com/guide/topics/manifest/meta-data-element#val)
    attribute. To assign a resource ID as the value, use the
    [resource](https://developer.android.com/guide/topics/manifest/meta-data-element#rsrc) attribute instead. For example,
    the following code assigns whatever value is stored in the `@string/kangaroo`
    resource to the `zoo` name:


    ```xml
    <meta-data android:name="zoo" android:value="@string/kangaroo" />
    ```


    On the other hand, using the `resource` attribute assigns `zoo`
    the numeric ID of the resource, not the value stored in the resource:


    ```xml
    <meta-data android:name="zoo" android:resource="@string/kangaroo" />
    ```


    We highly recommend that you avoid supplying related data as
    multiple separate `<meta-data>` entries. Instead, if you
    have complex data to associate with a component, store it as a resource and
    use the `resource` attribute to inform the component of its ID.

attributes:
:

    `android:name`
    :   A unique name for the item. To keep the name unique, use a
        Java-style naming convention, such as
        "`com.example.project.activity.fred`".

    `android:resource`
    :   A reference to a resource. The ID of the resource is the value assigned
        to the item. The ID is retrieved from the meta-data `Bundle` using the
        [Bundle.getInt()](https://developer.android.com/reference/android/os/BaseBundle#getInt(java.lang.String)) method.

    `android:value`
    :   The value assigned to the item. The data types that can be assigned as values and the
        `Bundle` methods that components use to retrieve those values are listed in the following table:


        | Type | Bundle method |
        |---|---|
        | String: use double backslashes (`\\`) to escape characters, such as `\\n` for a new line and `\\uxxxxx` for a Unicode character | [getString()](https://developer.android.com/reference/android/os/BaseBundle#getString(java.lang.String)) |
        | Integer: for example, `100` | [getInt()](https://developer.android.com/reference/android/os/BaseBundle#getInt(java.lang.String)) |
        | Boolean: either `true` or `false` | [getBoolean()](https://developer.android.com/reference/android/os/BaseBundle#getBoolean(java.lang.String)) |
        | Color: in the form `#rgb`, `#argb`, `#rrggbb`, or `#aarrggbb` | [getInt()](https://developer.android.com/reference/android/os/BaseBundle#getInt(java.lang.String)) |
        | Float: for example, `1.23` | [getFloat()](https://developer.android.com/reference/android/os/Bundle#getFloat(java.lang.String)) |


introduced in:
:   API level 1