AndroidManifest.xml是Android应用程序中重要的文件之一,位于我们开发的应用程序的根目录下,描述了package中的全局数据,包括package中暴露的组件 (activities, services, 等等),以及他们各自的实现类,各种能被处理的数据和启动位置等重要信息。
            代码:AndroidManifest.xml
            <?xml version="1.0" encoding="utf-8"?> 
                <LinearLayout xmlns:android="//schemas.android.com/apk/res/android" 
                package=" com.examples.android.helloactivity"
                    android:versionCode="1" 
                android:versionName="1.0" >
                <application android:icon="@drawable/icon" 
                                          android:label="@string/app_name">
                        <activity android:name=".HelloActivity" 
                                  android:label="@string/app_name"> 
                            <intent-filter> 
                                <action android:name="android.intent.action.MAIN" />
 
                                <category 
                android:name="android.intent.category.LAUNCHER" /> 
                            </intent-filter>
 
                        </activity> 
                    </application>
                 </manifest>
  
            上述代码中,intent-filters描述了Activity启动的位置和时间。每当一个Activity(或操作系统)要执行一个操作时,它将创建出一个Intent的对象,这个Intent对象能承载的信息可描述你想做什么,你想处理什么数据,数据的类型,以及一些其他信息。而Android则会和每个Application所暴露的intent-filter的数据进行比较,找到合适Activity来处理调用者所指定的数据和操作。下面我们来仔细分析AndroidManifest.xml文件,如表1-1所示。
 
            表1-1  AndroidManifest.xml分析
           
            创建虚拟设备完成后,在建立好的项目上单击鼠标右键,在弹出的快捷菜单中选择"Run As" →"Android Application"命令,如图1-3所示。
            
            
            | manifest | 根节点,描述了package中所有的内容 | 
            
            | xmlns:android | 包含命名空间的声明。xmlns:android=//schemas.android.com/apk/res/android,使得Android中各种标准属性能在文件中使用,提供了大部分元素中的数据 | 
            
            | package | 声明应用程序包 | 
            
            | application | 包含Package中Application级别组件声明的根节点。此元素也可包含Application的一些全局和默认的属性,如标签、icon、主题、必要的权限,等等。一个manifest能包含零个或一个此元素(不能大于一个) | 
            
            | ndroid:icon | 应用程序图标 | 
            
            | android:label | 应用程序名字 | 
            
            | activity | 用来与用户交互的主要工具。Activity是用户打开一个应用程序的初始页面,大部分被使用到的其他页面也由不同的Activity所实现,并声明在另外的Activity标记中。注意,每一个Activity必须有一个标记对应,无论它给外部使用或是只用于自己的Package中。如果一个Activity没有对应的标记,你将不能运行它。另外,为了支持运行时查找Activity,可包含一个或多个元素来描述Activity所支持的操作 | 
            
            | android:name | 应用程序默认启动的Activity | 
            
            | intent-filter | 声明了指定的一组组件支持的Intent值,从而形成了IntentFilter。除了能在此元素下指定不同类型的值,属性也能放在这里来描述一个操作所需的唯一的标签、icon和其他信息 | 
            
            | action | 组件支持的Intent action | 
            
            | category | 组件支持的Intent Category。这里指定了应用程序默认启动的Activity | 
            
            | uses-sdk | 该应用程序所使用的SDK版本相关 | 
            
 
            补充说明:
            1,几乎所有的AndroidManifest.xml(以及许多其他Android的xml的文件)在第一个元素中包含了命名空间的声明
            xmlns:android="//schemas.android.com/apk/res/android"。这样使得Android中各 种标准属性能在文件中使用,提供了大部分元素中的数据。
            2,大部分manifests包含了单个的元素,它定义了所有的application级别组件和属性,并能在package中使用。
            3,任何被用户看作顶层应用程序,并能被程序启动器所用的package,需要包含至少一个Activity组件来支持MAIN操作和LAUNCHER种 类。动作android.intent.action.MAIN指示这是应用程序的入口点。类别 android.intent.category.LAUNCHER将此Activity放在启动器窗口中。
            总之,AndroidManifest.xml文件虽然看起来复杂,但是,只要我们理清中里面各元素的作用,那么一切就变得简单了。