当Android启动一个应用程序组件之前,它必须知道哪些个组件是存在的,所以开发人员在开发过程中,必须将应用程序中出现的组件一一在 AndroidManifest.xml文件中申明,最终这个AndroidManifest.xml文件也会被一起打包到.apk文件中去。
在前面一系列的中级进阶文件中,我们提到了Android的四大组件分别是: Activity、 BroadCast receiver、 service、 Content Provider,所以我们如果在程序中用到了这些组件,我们一定要在AndroidManifest.xml文件中申明,否则Android应用程序在运行时,在需要跳转到、或者需要用到组件找不到时报错。
在前面一系列的中级进阶文件中,我们提到了Android的四大组件分别是: Activity、 BroadCast receiver、 service、 Content Provider,所以我们如果在程序中用到了这些组件,我们一定要在AndroidManifest.xml文件中申明,否则Android应用程序在运行时,在需要跳转到、或者需要用到组件找不到时报错。
这 个manifest文件以XML作为结构格式,而且对于所有应用程序,都叫做AndroidManifest.xml。为声明一个应用程序组件,它还会做 很多额外工作,比如指明应用程序所需链接到的库的名称(除了默认的Android库之外)以及声明应用程序期望获得的各种权限。
但manifest文件的主要功能仍然是向Android声明应用程序的组件。举例说明,一个activity可以如下声明:
XML/HTML代码
- <?xml version="1.0" encoding="utf-8"?>
- <manifest . . . >
- <application . . . >
- <activity android:name="com.example.project.FreneticActivity"
- android:icon="@drawable/small_pic.png"
- android:label="@string/freneticLabel"
- . . . >
- </activity>
- . . .
- </application>
- </manifest>
<activity>元素的name属性指定了实现了这个activity的 Activity的子类。icon和label属性指向了包含展示给用户的此activity的图标和标签的资源文件。
其 它组件也以类似的方法声明──<service> 元素用于声明服务, <receiver> 元素用于声明广播接收器,而 <provider> 元素用于声明内容提供者。 manifest文件中未进行声明的activity、服务以及内容提供者将不为系统所见,从而也就不会被运行。需要注意的是,广播接收器既可以在 manifest文件中声明,也可以在代码中进行动态的创建,并以调用Context.registerReceiver()的方式注册至系统。