每个应用程序在它的根目录中都必须要有一个AndroidManifest.xml文件。这个清单把应用程序的基本信息提交给Android系统,在应用程序的代码能够运行之前,这个信息系统必须建立。以下是清单文件要做的一些事情:
1、 用Java包给应用程序命名。这个包名是应用程序的唯一标识;
2、 描述应用程序的组件---组成应用程序的Activity、Service、Broadcast Receiver以及Content Provider。它要用每个组件的实现类来命名,并向外发布对应组件功能(例如,组件所能处理的Intent消息)。这些声明会让Android系统了解应用程序中组件,以及这些组件被加载的条件。
3、判断哪些进程是主应用程序组件。
4、 声明应用程序所必须的权限,以便能够访问被保护的API,以及能够跟其他应用程序进行交互。
5、为了跟应用程序组件进行交互,还声明了其他要求有的权限。
6、列出了能够提供应用程序运行时的分析和其他信息的Instrumentation类。只有在开发和测试应用程序时才在清单文件中声明这些类,在应用程序被发布之前,要删除这些类。
7、声明应用程序所要求的最小的Android API级别。
8、列出应用程序必须链接的外部库。
Manifest文件的结构
下图中包含了清单文件的一般性结构,并且包含所有能包含的元素。每个元素所带有的全部元素会在它们各自的文档中介绍。
<?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>
以下按字母顺序列出了清单文件中的所有元素,这些元素是Android系统的法定元素,不能添加自定义的元素或属性。
<action>
<activity>
<activity-alias>
<application>
<category>
<data>
<grant-uri-permission>
<instrumentation>
<intent-filter>
<manifest>
<meta-data>
<permission>
<permission-group>
<permission-tree>
<provider>
<receiver>
<service>
<supports-screens>
<uses-configuration>
<uses-feature>
<uses-library>
<uses-permission>
<uses-sdk>