详细的看android官方文档
Service
<service android:description="string resource"
android:directBootAware=["true" | "false"]
android:enabled=["true" | "false"]
android:exported=["true" | "false"]
android:foregroundServiceType=["connectedDevice" | "dataSync" |
"location" | "mediaPlayback" | "mediaProjection" |
"phoneCall"]
android:icon="drawable resource"
android:isolatedProcess=["true" | "false"]
android:label="string resource"
android:name="string"
android:permission="string"
android:process="string" >
. . .
</service>
- android:description
向用户描述服务的字符串。您应将此标签设置为对字符串资源的引用,以便可以像对界面中的其他字符串那样对其进行本地化。
- android:directBootAware
服务是否支持直接启动,即其是否可以在用户解锁设备之前运行。
注意:在直接启动期间,应用中的服务仅可访问存储在设备保护存储区的数据。默认值为 “false”。
- android:enabled
系统是否可实例化服务 —“true”表示可以,“false”表示不可以。默认值为“true”。 元素拥有自己的 enabled 属性,该属性适用于所有应用组件,包括服务。只有在 和 属性都为“true”(因为它们都默认使用该值)时,系统才能启用服务。任何一项为“false”都会造成服务停用,从而使系统无法将其实例化。
- android:exported
其他应用的组件是否能调用服务或与之交互 —“true”表示可以,“false”表示不可以。
-
android:foregroundServiceType
阐明服务是满足特定用例要求的前台服务。例如,”location” 类型的前台服务表示应用正在获取设备的当前位置,目的通常是继续用户发起的操作,且该操作与设备位置相关。您可以将多个前台服务类型分配给特定服务。
-
android:icon
表示服务的图标
-
android:isolatedProcess
如果设置为 true,则此服务将在与系统其余部分隔离的特殊进程下运行。此服务自身没有权限,只能通过 Service API 与其进行通信(绑定和启动)。
-
android:label
可向用户显示的服务名称。如果未设置该属性,则转而使用为应用整体设置的标签(请参阅 元素的 label 属性)。 您应将此标签设置为对字符串资源的引用,以便可以像对界面中的其他字符串那样对其进行本地化。不过,为便于开发应用,您也可将其设置为原始字符串。
-
android:name
实现服务的 Service 子类的名称。
此名称应为完全限定类名称(例如“com.example.project.RoomService”)。不过,为简便起见,如果名称的第一个字符是句点(例如,“.RoomService”),则名称将追加至 元素中指定的软件包名称。 一旦发布应用,即不应更改该名称(除非您设置了 android:exported=”false”)。没有默认值。必须指定该名称。
- android:permission
实体启动服务或绑定到服务所必需的权限的名称。如果 startService()、bindService() 或 stopService() 的调用者尚未获得此权限,该方法将不起作用,且系统不会将 Intent 对象传送给服务。 如果未设置该属性,则对服务应用由 元素的 permission 属性所设置的权限。如果二者均未设置,则服务不受权限保护。
-
android:process
将运行服务的进程的名称。正常情况下,应用的所有组件都会在为应用创建的默认进程中运行。该名称与应用软件包的名称相同。 元素的 process 属性可为所有组件设置不同的默认进程名称。
组件可以使用自己的 process 属性替换默认值,让您可以将应用散布到多个进程中。 如果为此属性分配的名称以冒号(“:”)开头,则系统会在需要时创建应用专用的新进程,并且服务会在该进程中运行。如果进程名称以小写字符开头,则服务将在使用该名称的全局进程中运行,前提是它拥有相应的权限。如此一来,不同应用中的组件便可共享进程,从而减少资源使用。
provider
<provider android:authorities="list"
android:directBootAware=["true" | "false"]
android:enabled=["true" | "false"]
android:exported=["true" | "false"]
android:grantUriPermissions=["true" | "false"]
android:icon="drawable resource"
android:initOrder="integer"
android:label="string resource"
android:multiprocess=["true" | "false"]
android:name="string"
android:permission="string"
android:process="string"
android:readPermission="string"
android:syncable=["true" | "false"]
android:writePermission="string" >
. . .
</provider>
- android:authorities
一个或多个 URI 授权方的列表,这些 URI 授权方用于标识内容提供程序提供的数据。列出多个授权方时,用分号将其名称分隔开来。为避免冲突,授权方名称应遵循 Java样式的命名惯例(如com.example.provider.cartoonprovider)。通常,它是实现提供程序的 ContentProvider 子类的名称。没有默认值。必须至少指定一个授权方。
-
android:enabled
系统是否可以实例化内容提供程序。如果可以,则设为“true”;如果不能,则设为“false”。默认值为“true”。
<application>
元素具有自己的 enabled 属性,该属性适用于所有应用组件,包括内容提供程序。 和 属性必须都为“true”(这正是它们两者的默认设置),才会启用内容提供程序。如果其中任一属性为“false”,就会停用提供程序;无法将其实例化。
- android:directBootAware
内容提供程序是否可感知直接启动 (direct-boot);即,它是否可以在用户解锁设备之前运行。
注意:在直接启动期间,应用中的内容提供程序只能访问设备保护存储空间内的数据。默认值为 “false”。
- android:exported
内容提供程序是否可供其他应用使用: true:提供程序可供其他应用使用。任何应用均可使用提供程序的内容 URI 来访问它,但需依据为提供程序指定的权限进行访问。 false:提供程序不可供其他应用使用。设置 android:exported=”false” 可仅限您的应用访问提供程序。只有与提供程序具有相同的用户 ID (UID) 的应用或者通过 android:grantUriPermissions 元素被临时授予对提供程序的访问权限的应用才能访问提供程序。
-
android:grantUriPermissions
是否可以向一般无权访问内容提供程序的数据的组件授予访问这些数据的权限,从而暂时克服由 readPermission、writePermission、permission 和 exported 属性施加的限制。
-
android:icon
内容提供程序的图标。
-
android:initOrder
应按什么顺序实例化内容提供程序,这是相对于由同一进程托管的其他内容提供程序的顺序。当内容提供程序之间存在依赖关系时,为每个提供程序设置此属性可确保按这些依赖关系要求的顺序创建这些提供程序。值是一个简单的整数,数值越高,初始化顺序越靠前
-
android:label
所提供内容的用户可读标签。如果未设置此属性,则改用为整个应用设置的标签(请参阅 元素的 label 属性)。 应将标签设为对字符串资源的引用,以便可以像界面中的其他字符串一样进行本地化。不过,为了方便您开发应用,也可以将其设为原始字符串。
-
android:multiprocess
如果应用在多个进程中运行,则此属性决定了是否会创建内容提供程序的多个实例。如果设为 true,则每个应用进程都有自己的内容提供程序对象。如果设为 false,则应用的进程仅共享一个内容提供程序对象。默认值为 false。 将此标志设为 true 可以通过减少进程间通信的开销来提高性能,但也会增加每个进程的内存占用量。
-
android:name
实现内容提供程序的类的名称,它是 ContentProvider 的子类。这应该是一个完全限定类名(如“com.example.project.TransportationProvider”)。不过,作为一种简写形式,如果名称的第一个字符是句点,则会将其附加到 元素中指定的软件包名称.没有默认值。必须指定相应名称。
-
android:permission
客户端为了读取或写入内容提供程序的数据而必须具备的权限的名称。使用此属性可以方便地设置适用于读取和写入的单一权限。不过,readPermission、writePermission 和 grantUriPermissions 属性优先于此属性。如果也设置了 readPermission 属性,则该属性控制对查询内容提供程序的访问权限。如果设置了 writePermission 属性,则该属性控制对修改提供程序的数据的访问权限。
-
android:process
一个进程的名称,内容提供程序应在该进程中运行。通常,应用的所有组件都在为应用创建的默认进程中运行。它与应用软件包的名称相同。 元素的 process 属性可以为所有组件设置不同的默认值。但是,每个组件都可以使用自己的 process 属性来替换默认值,从而允许您让应用跨越多个进程。 如果为此属性分配的名称以冒号(“:”)开头,则会在需要时创建一个应用专用的新进程,并且 Activity 将在该进程中运行。如果进程名称以小写字符开头,则 Activity 将在采用该名称的全局进程中运行,前提是它具有相应权限。这样,不同应用中的组件就可以共享进程,从而减少资源使用量。
-
android:readPermission
客户端要查询内容提供程序而必须具备的权限。如果提供程序将 android:grantUriPermissions 设为 true,或者如果给定的客户端满足 子元素的条件,则客户端可以获得对内容提供程序的数据的临时读取访问权限。
-
android:syncable
由内容提供程序控制的数据是否要与服务器上的数据同步。如果要同步,则设为“true”;如果不同步,则设为“false”。