属性罗列

    . . .

android:description
就是一个描述,描述服务的作用,或者备注,随便写,无所谓

android:icon
图标呗

android:label
标签呗,没啥用,和description差不多

android:name
名字呗

android:enabled

能否被实例化。因为service标签包含在application中,必须两个都为true,才能被实例化并使用

android:exported
其他应用程序的组件是否可以调用服务或与其交互。
设置为false时,只有同一个应用程序的组件或带有相同用户ID的应用程序才能启动或绑定该服务。

pid就是进程id。一般而言,应用开启后,系统为其分配一个独一无二的pid,但是可以通过使用process属性而成为多进程应用(比如说service的process:remote)。

uid就是用户id。主要是用来数据共享。默认情况,Android为每个应用也分配了独一无二的uid,所以如果需要两个应用数据共享的话,就让他们的uid一样(条件之一,完整做法暂不研究,。好像如果两个应用都是自己开发的话,使用签名文件可以共享(所以如果不知道你的签名文件,直接可以查看你的shareduserid也没用)。而如果其中一个是系统应用的话则直接就可以)。做法:

android:exported的默认值,根据是否有intent-filter而不同。如果有,默认为true。如果没有,默认为false。

android:permission

android:process
默认情况下,服务是运行在该应用所在的进程中。可以通过这个属性,将服务声明运行在新的进程中。

命名的规则是有区别的。

假如是我们的进程名是com.example.a。如果process是":"冒号开头的。比如android:process=“:remote”。那么就会新开一个进程com.example.a.remote来运行service,但是这个进程仅对该应用私有。

如果不以冒号开头。比如android:process=“com.example.remote”,那就是新开一个全局进程com.example.remote来运行服务。。这将允许在不同应用中的各种组件可以共享一个进程,从而减少资源的占用。(好像还需要其他权限才能共享,再说)

远程服务的适用场景
一般适用于为其它应用程序提供公共服务的Service,这种Service即为系统常驻的Service(如:天气服务等)。
优点
1.远程服务有自己的独立进程,不会受到其它进程的影响;
2.可以被其它进程复用,提供公共服务;
3.具有很高的灵活性。
缺点
相对普通服务,占用系统资源较多,使用AIDL进行IPC也相对麻烦。

更多相关文章

  1. Android系统启动流程(2) —— 解析Zygote进程启动过程
  2. Android夸进程通信机制七:使用 Socket进行进程间通信
  3. Android应用程序结构
  4. android 进程与线程 - 开发文档翻译 - 进程
  5. android init 进程分析 (1 简介)
  6. android 进程与线程 - 开发文档翻译 - 线程
  7. Android应用程序的Activity启动过程简要介绍和学习计划

随机推荐

  1. Android中tools属性的使用
  2. Android 开发者该学点Linux 命令了
  3. Android startActivityForResult request
  4. android Gallery3D效果
  5. android中定制的dialog
  6. Android(安卓)Interface Definition Lang
  7. java中org.xml.sax不能读取xml回车换行的
  8. android之MultiAutoCompleteTextView
  9. Android——Hardware Acceleration
  10. Android LocalSocket / LocalServerSocke