转自:http://blog.csdn.net/think_soft/article/details/7584895
语法(SYNTAX):
<serviceAndroid:enabled=["true" | "false"]
android:exported=["true" | "false"]
android:icon="drawable resource"
android:label="string resource"
android:name="string"
android:permission="string"
android:process="string">
. . .
</service>
被包含于(CONTAINED IN):
<application>
可能包含的元素(CAN CONTAIN):
<intent-filter>
<meta-data>
说明(DESCRIPTION):
这个元素用于声明一个服务(Service类的子类)作为应用程序的组件之一。跟Activity不一样,服务没有可见的用户界面。它们被用于实现长时的后台操作,或提供能够被其他应用程序调用的通信API。
所有的服务都必须用清单文件中的<service>元素来代表。任何没有在清单中声明的服务都不能被系统看到,也不会被运行。
属性(ATTRIBUTES):
android:enabled
这个属性用于指示该服务是否能够被实例化。如果设置为true,则能够被实例化,否则不能被实例化。默认值是true。
<application>元素有它自己的enabled属性,它的这个属性适用于应用中所有的组件,包括service组件。对于被启用的服务,<application>和<service>元素的enabled属性都必须是true(默认值都是true)。如果有一个元素的enabled属性被设置为false,该服务就会被禁用,而不能被实例化。
android:exported
这个属性用于指示该服务是否能够被其他应用程序组件调用或跟它交互。如果设置为true,则能够被调用或交互,否则不能。设置为false时,只有同一个应用程序的组件或带有相同用户ID的应用程序才能启动或绑定该服务。
它的默认值依赖与该服务所包含的过滤器。没有过滤器则意味着该服务只能通过指定明确的类名来调用,这样就是说该服务只能在应用程序的内部使用(因为其他外部使用者不会知道该服务的类名),因此这种情况下,这个属性的默认值是false。另一方面,如果至少包含了一个过滤器,则意味着该服务可以给外部的其他应用提供服务,因此默认值是true。
这个属性不是限制把服务暴露给其他应用程序的唯一方法。还可以使用权限来限制能够跟该服务交互的外部实体。
android:icon
这个属性定义了一个代表服务的图标,它必须要引用一个包含图片定义的可绘制资源。如果这个属性没有设置,则会使用<application>元素的icon属性所设定的图标来代替。
无论是<application>元素设置的图标,还是<service>元素所设置的图标,它们都是该服务所有的Intent过滤器的默认图标。
android:label
这个属性用于设定一个要显示给用户的服务的名称。如果没有设置这个属性,则会使用<application>元素的label属性值来代替。
无论是<service>设定的标签,还是<application>元素设定的标签,它们都是该服务所有的Intent过滤器的默认标签。
这个标签应用引用一个字符串资源,以便它能够像用户界面中的字符串一样能够被本地化。但是,为了开发应用程序方便,也可以使用原生字符串来设置这个属性。
android:name
这个属性用于指定实现该服务的Service子类的类名。它应该是完整的Java类名(如:com.example.project.RoomService)。但是,也可以使用简写(如:.RoomService),系统会把<manifest>元素中package属性所设定的值添加到简写名称的前面。
一旦发布了应用程序,就不应该改变这个名称(除非android:exported=”false”)。
这个属性没有默认值,名称必须要指定。
android:permission
这个属性定义了要启动或绑定服务的实体必须要有的权限。如果调用者的startService()、bindService()和stopService()方法没有被授予这个权限,那么这些方法就不会工作,并且Intent对象也不会发送给改服务。
如果这个属性没被设置,那么通过<appliction>元素的permission属性所设定的权限就会适用于该服务。如果<application>元素也没有设置权限,则该服务不受权限保护。
android:process
这个属性用于设定服务所运行的进程名称。通常,应用程序的所有组件都运行在给应用程序创建的进程中,进程名与应用程序的包名相同。<application>元素的process属性能够给应用程序的所有组件设置一个不同的默认名称。但是每个组件自己的process属性都能够覆盖这个默认值,这样允许把应用程序分离到不同的多个进程中。
如果这个属性值用“:”开头,则在需要的时候系统会创建一个新的,应用程序私有的进程,并且该服务也会运行在这个进程中。如果这个属性值用小写字母开头,那该服务就会运行在以这个属性值命名的全局进程中,它提供了使其工作的权限。这样就允许不同的应用程序组件来共享这个进程,从而降低资源的使用。
相关推荐
### AndroidManifest.xml 文件详解 #### 一、关于 AndroidManifest.xml `AndroidManifest.xml` 是 Android 应用程序中不可或缺的一部分,通常位于项目的根目录下。该文件定义了应用程序的架构和元数据,包括应用...
2. 组件安全问题:AndroidManifest.xml 文件中可以声明应用程序的组件,例如 Activity、Service、Broadcast Receiver 和 Content Provider。这些组件如果不当配置,可能会导致安全问题。例如,如果一个 Activity 被...
二、AndroidManifest.xml 文件的节点详解 ### `<manifest>` 节点 * `xmlns:android`:定义了 Android 命名空间,一般为 http://schemas.android.com/apk/res/android。 * `package`:指定了应用程序的包名,也是...
《AndroidManifest.xml文件详解》 AndroidManifest.xml是每个Android应用的核心配置文件,它定义了应用程序的基本属性、组件及其权限等信息。对这个文件有深入的理解是优化应用性能和提升维护性的关键。 首先,...
《AndroidManifest.xml文件综合详解》 AndroidManifest.xml文件是Android应用程序的核心组成部分,它包含了应用程序的全局配置信息,是每个Android应用不可或缺的文件。这个文件的作用在于向Android系统提供应用...
《AndroidManifest.xml文件详解》 AndroidManifest.xml是每个Android应用的核心配置文件,它定义了应用程序的基本属性、组件以及它们如何相互交互。理解并熟练运用这个文件对于任何Android开发者来说都是至关重要的...
`Manifest.xml` 是 Android 应用程序的核心配置文件之一,它定义了应用程序的基本结构和行为,包括应用的组件(如 Activity、Service 和 BroadcastReceiver 等)、权限声明、硬件需求等。在 `Manifest.xml` 中,每个...
Android 中Manifest.xml文件详解 Android 中的Manifest.xml文件是每一个Android项目必备的文件,它存储在项目层次中的最底层,定义了应用程序及其组件的结构和元数据。它包含了组成应用程序的每一个组件(活动、...
"AndroidManifest.xml 详解" AndroidManifest.xml 是 Android 应用程序中最重要的文件之一,它位于项目的根目录,描述了应用程序中的组件、权限、Intent-filter 和其他配置信息。下面是对 AndroidManifest.xml 的...
在Android应用开发中,`AndroidManifest.xml`文件是至关重要的,它是每个应用的基石,包含了应用的基本信息和权限设置。本文将深入解析`AndroidManifest.xml`文件中的各种权限,以便开发者更好地理解和管理应用的...
此外,AndroidManifest.xml文件还有其他重要元素,如权限声明、活动(Activity)、服务(Service)等,它们共同决定了应用的行为和功能。了解并正确使用这些元素对于开发高质量的Android应用至关重要。开发者可以参考...
AndroidManifest 访问权限详解 AndroidManifest 访问权限是 Android 开发中必须学习的重要知识点。所有的权限都在这里了,学习下吧! AndroidManifest.xml 文件中添加权限 在 Android 开发中,所有的权限都需要...