当Android启动一个应用程序组件之前,它必须知道那个组件是存在的。所以,应用程序会在一个manifest.xml文件中声明它的组件,这个文件会被打包到Android包中。这个.apk文件还将涵括应用程序的代码、文件以及其它资源。
这个manifest文件以XML作为结构格式,而且对于所有应用程序,都叫做AndroidManifest.xml。为声明一个应用程序组件,它还会 做很多额外工作,比如指明应用程序所需链接到的库的名称(除了默认的Android库之外)以及声明应用程序期望获得的各种权限。
但manifest文件的主要功能仍然是向Android声明应用程序的组件。举例说明,一个activity可以如下声明:
<activity
android:name="com.wbw.iloveyou.FirstActivity"
android:label="@string/app_name"
android:icon="@drawable/a1"
</activity>
<activity>
元素的name属性指定了实现了这个activity的 Activity的子类。icon和label属性指向了包含展示给用户的此activity的图标和标签的资源文件。
其它组件也以类似的方法声明──<service>
元素用于声明服务, <receiver>
元素用于声明广播接收器,而 <provider>
元素用于声明内容提供者。 manifest文件中未进行声明的activity、服务以及内容提供者将不为系统所见,从而也就不会被运行。然而,广播接收器既可以在manifest文件中声明,也可以在代码中进行动态的创建,并以调用
Context.registerReceiver()
的方式注册至系统。
待续、、、