Android开发权威指南(第二版)
上QQ阅读APP看书,第一时间看更新

4.3 AndroidManifest.xml文件的结构

每一个Android应用程序必须有一个AndroidManifest.xml文件(不能改成其他的文件名),而且该文件必须在应用程序的根目录中。在这个文件中定义了应用程序的基本信息,在运行Android应用程序之前必须设置这些信息。下面是AndroidManifest.xml文件在Android应用程序中所起的作用。

定义应用程序的Java包。这个包名将作为应用程序的唯一标识。在DDMS透视图的“File Explorer”视图中可以看到data/data目录中的每一个目录名都代表着一个应用程序,而目录名本身就是在AndroidManifest.xml文件中定义的包名。

上一节讲的4个应用程序组件在使用之前,必须在AndroidManifest.xml文件中定义。定义的信息主要是与组件对应的类名以及这些组件所具有的能力。通过AndroidManifest.xml文件中的配置信息可以让Android系统知道如何处理这些应用程序组件。

确定哪一个Activity将作为第一个运行的Activity。

在默认情况下,Android系统会限制使用某些API,因此,需要在AndroidManifest.xml文件中为这些API授权后才可以使用它们。

可以在AndroidManifest.xml文件中配置一些特殊的类,这些类可以在应用程序运行时提供调试及其他的信息。但这些类只在开发和测试时使用,当应用程序发布时这些配置将被删除。

定义了Android应用程序所需要的最小API级别,Android1.1对应的API级别是2,Android1.5对应的API级别是3,依此类推,最新的Android 4.1对应的API级别是16。

指定应用程序中引用的程序库。

下面是AndroidManifest.xml文件的标准格式,这个格式中的各种标签将在后面的内容中逐渐讲到。读者也可以从http://developer.android.com/guide/topics/manifest/manifest-intro.html中获取AndroidManifest.xml文件更详细的介绍。

<?xml version="1.0" encoding="utf-8"?>

<manifest>

  <uses-permission />

  <permission />

  <permission-tree />

  <permission-group />

  <instrumentation />

  <uses-sdk />

  <uses-configuration />

  <uses-feature />

  <supports-screens />

  <compatible-screens />

  <supports-gl-texture />

  <application>

    <activity>

      <intent-filter>

        <action />

        <category />

        <data />

      </intent-filter>

      <meta-data />

    </activity>

    <activity-alias>

      <intent-filter> . . . </intent-filter>

      <meta-data />

    </activity-alias>

    <service>

      <intent-filter> . . . </intent-filter>

      <meta-data/>

    </service>

    <receiver>

      <intent-filter> . . . </intent-filter>

      <meta-data />

    </receiver>

    <provider>

      <grant-uri-permission />

      <meta-data />

    </provider>

    <uses-library />

  </application>

</manifest>