android:process=":remote"和android:process="remote"的区别
2015-12-10 13:30
801 查看
资料一
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 use
tag to specify one:
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
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
can set a different default for all components. But component can override the default with its own
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、一
当设置为如下是
[html] view
plaincopy
<span style="font-family: 'Microsoft YaHei'; "><span style="background-color: rgb(249, 249, 249);"> <service android:name=".MessengerService"
</span><span style="background-color: rgb(255, 0, 0);"> android:process=":remote"</span><span style="background-color: rgb(249, 249, 249);">
></service></span></span>
我们可以从DDMS中看到
在MessengerService中 的pid是新的一个 (484) 不同于 main 的478
请看好多了一个进程。(pid就代表一个进程。 )
Eg、二
当在清单中声明的是
[html] view
plaincopy
<span style="font-family:Microsoft YaHei;"> <service android:name=".MessengerService"
></service></span>
在activity和service在同一个进程中关于这个请详细参考 (他们都是在346中)
这里的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",没有“:”分号的,则创建全局进程,不同的应用程序共享该进程。
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 use
android:processin its manifest
tag to specify one:
<pre class="prettyprint" name="code" style="white-space: pre-wrap; word-wrap: break-word; font-size: 14px; margin-top: 1em; margin-bottom: 1em; color: rgb(0, 102, 0); line-height: 1.5; padding: 1em; overflow: auto; border: 1px solid rgb(221, 221, 221); background-color: rgb(247, 247, 247);"><span style="font-family: 'Microsoft YaHei';"><span class="tag" style="color: rgb(0, 0, 136);"><service</span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="atn" style="color: rgb(136, 34, 136);">android:name</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="atv" style="color: rgb(0, 136, 0);">".app.MessengerService"</span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="atn" style="color: rgb(136, 34, 136);">android:process</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="atv" style="color: rgb(0, 136, 0);">":remote"</span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="tag" style="color: rgb(0, 0, 136);">/></span></span>
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's
processattribute
can set a different default for all components. But component can override the default with its own
processattribute, 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、一
当设置为如下是
[html] view
plaincopy
<span style="font-family: 'Microsoft YaHei'; "><span style="background-color: rgb(249, 249, 249);"> <service android:name=".MessengerService"
</span><span style="background-color: rgb(255, 0, 0);"> android:process=":remote"</span><span style="background-color: rgb(249, 249, 249);">
></service></span></span>
我们可以从DDMS中看到
在MessengerService中 的pid是新的一个 (484) 不同于 main 的478
请看好多了一个进程。(pid就代表一个进程。 )
Eg、二
当在清单中声明的是
[html] view
plaincopy
<span style="font-family:Microsoft YaHei;"> <service android:name=".MessengerService"
></service></span>
在activity和service在同一个进程中关于这个请详细参考 (他们都是在346中)
Service详解(二)
这里的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",没有“:”分号的,则创建全局进程,不同的应用程序共享该进程。
相关文章推荐
- Android Studio配置AndroidAnnotations
- Android所有权限说明
- 正则表达式-理论基础篇
- Intent android基础二
- 每个Android开发者都应该了解的资源列表
- 每个Android开发者都应该了解的资源列表
- 每个Android开发者都应该了解的资源列表
- 每个Android开发者都应该了解的资源列表
- android中的所有activity间动画跳转(主要讲的是anim)
- Android应用Design Support Library完全使用实例
- Android开发技巧——高亮的用户操作指南
- Android开发技巧——高亮的用户操作指南
- 【Android】通过经纬度查询城市信息
- 【adb】如何在Android模拟器下添加busybox?
- Android 更改 Toast 的默认位置
- Android Service与Activity之间通信
- Android之Notification
- Android中的.9.png图形的机制及制作和使用方法
- Android的Media(录音,播放音乐,播放视频等)
- Android的Media(录音,播放音乐,播放视频等)