资料一

http://developer.android.com/intl/zh-CN/reference/android/app/Service.html

If we want to make this service run in a remote process (instead of the standard one for its .apk), we can useandroid:processin its manifest tag to specify one:

<service android:name=".app.MessengerService" android:process=":remote" />

Note that the name "remote" chosen here is arbitrary, and you can use other names if you want additional processes. The ':' prefix appends the name to your package's standard process name.(是不是这个remote 字符 都是没影响的

资料二

http://developer.android.com/intl/zh-CN/guide/topics/manifest/service-element.html

android:process
The name of the process where the service is to run. Normally, all components of an application run in the default process created for the application. It has the same name as the application package. The<application>element'sprocessattribute can set a different default for all components. But component can override the default with its ownprocessattribute, allowing you to spread your application across multiple processes.

If the name assigned to this attribute begins with a colon (':'), a new process, private to the application, is created when it's needed and the service runs in that process. If the process name begins with a lowercase character, the service will run in a global process of that name, provided that it has permission to do so. This allows components in different applications to share a process, reducing resource usage.代表在应用程序里,当需要该service时,会自动创建新的进程。而如果是android:process="remote",没有“:”分号的,则创建全局进程,不同的应用程序共享该进程。

可能大家看了还是不多明白在此我用个小例子为大家解释

Eg、二

当在清单中声明的是

有什么问题请指教,谢谢!



源码地址:http://csdn-qq282133-demo.googlecode.com/svn/trunk/ServiceTest2




以下是转载的:

这里的android:process=":remote",一开始我没有添加的,在同一个程序里使用IPC,即同一个程序作为客户端/服务器端,结果运行mRemoteService = IMyService.Stub.asInterface(service);时提示空指针异常。观察了人家的在不同程序里进行IPC的代码,也是没有这个android:process=":remote"的。后来在官方文档http://androidappdocs.appspot.com/guide/topics/manifest/service-element.html里了解到(留意第二段文字):
android:process
The name of the process where the service is to run. Normally, all components of an application run in the default process created for the application. It has the same name as the application package. The <application> element's process attribute can set a different default for all components. But component can override the default with its own process attribute, allowing you to spread your application across multiple processes.

If the name assigned to this attribute begins with a colon (':'), a new process, private to the application, is created when it's needed and the service runs in that process. If the process name begins with a lowercase character, the service will run in a global process of that name, provided that it has permission to do so. This allows components in different applications to share a process, reducing resource usage.
也就是说android:process=":remote",代表在应用程序里,当需要该service时,会自动创建新的进程。而如果是android:process="remote",没有“:”分号的,则创建全局进程,不同的应用程序共享该进程。

更多相关文章

  1. android开发2:eclipse 开发 Android(安卓)应用程序基础
  2. Android(安卓)创建与解析XML(六)—— 比较与使用
  3. 《Android和PHP开发最佳实践》一2.2 Android系统框架
  4. 3.4、Android(安卓)Studio 创建Android(安卓)库
  5. 10个常见的Android新手误区
  6. Android中线程的应用
  7. Android(安卓)音频 OpenSL ES PCM数据播放
  8. Android的ps命令介绍和技巧
  9. 守护进程通信之Socket

随机推荐

  1. Android横竖屏限制切换
  2. Android取消EditText自动获取焦点默认行
  3. Android设置View的点击次数的工具类
  4. 一网打尽Android-UI系列教程
  5. Android TextView 设置中划线 下划线
  6. android应用安全——通信安全(android htt
  7. 【起航计划 029】2015 起航计划 Android
  8. 创建Android工程时报错:Errors running b
  9. android程序获取WIFI的IP地址和MAC地址
  10. (Android(安卓)Studio)Android(安卓)手机