每一个Android项目都包含一个清单(Manifest)文件--AndroidManifest.xml,它存储在项目层次中的最底层。清单可以定义应用程序及其组件的结构和元数据。
它包含了组成应用程序的每一个组件(活动、服务、内容提供器和广播接收器)的节点,并使用Intent过滤器和权限来确定这些组件之间以及这些组件和其他应用程序是如何交互的。
它还提供了各种属性来详细地说明应用程序的元数据(如它的图标或者主题)以及额外的可用来进行安全设置和单元测试顶级节点,如下所述。
清单由一个根manifest标签构成,该标签带有一个设置项目包的package属性。它通常包含一个xmlns:android属性来提供文件内使用的某些系统属性。下面的XML代码段展示了一个典型的声明节点:
Java代码:
1 |
<manifest
xmlns:android=http: |
manifest标签包含了一些节点(node),它们定义了应用程序组件、安全设置和组成应用程序的测试类。下面列出了一些常用的manifest节点标签,并用一些XML代码段说明了它们是如何使用的。
application 一个清单只能包含一个application节点。它使用各种属性来指定应用程序的各种元数据(包括标题、图标和主题)。它还可以作为一个包含了活动、服务、内容提供器和广播接收器标签的容器,用来指定应用程序组件。
Java代码:
1 |
<application
android:icon= "@drawable/icon" |
2 |
android:theme= "@style/my_theme" >
[ ... application nodes ... ] </application> |
activity 应用程序显示的每一个Activity都要求有一个activity标签,并使用android:name属性来指定类的名称。这必须包含核心的启动Activity和其他所有可以显示的屏幕或者对话框。启动任何一个没有在清单中定义的Activity时都会抛出一个运行时异常。每一个Activity节点都允许使用intent-filter子标签来指定哪个Intent启动该活动。
Java代码:
1 |
<activity
android:name= ".MyActivity" |
2 |
android:label= "@string/app_name" > |
5 |
android:name= "android.intent.action.MAIN" /> |
7 |
android:name= "android.intent.category.LAUNCHER" /> |
provider provider标签用来说明应用程序中的每一个内容提供器。内容提供器是用来管理数据库访问以及程序内和程序间共享的,第6章将会对其进行详细讲述。
Java代码: