应用程序内的 android 远程服务与单独的应用程序

标签 android android-service android-service-binding

我试图找出将 android 远程服务编写为我的客户端应用程序的一部分(使用 android:process=":remote")与使其成为一个单独的服务应用程序的优缺点。

在这两种情况下,服务都将在自己单独的进程中运行并拥有自己的堆等。但是,当我们将其作为单独的应用程序时,必须存在一些差异,因为它将有自己的应用程序沙箱。我根据场景找到了许多关于它们的用法和首选方法的示例,但我试图了解它的内部技术细节。

有什么好的信息来源吗?

编辑: 如果服务和客户端进程在同一个应用程序中运行,会对应用程序对象/上下文产生什么影响。它会被其中一个进程覆盖吗?或者每个进程都有两个应用程序对象,作为一个应用程序的一部分听起来不正确。

最佳答案

您的问题之前已得到部分回答。在这里检查:

但如果您仍然考虑让某些东西在后台运行的想法,您可以看看这个引用资料:

让事情在后台运行显然不是一个好的选择。除非你出于任何原因真的需要它。因此,请注意不要使用非用户自愿激活的不必要的后台服务来打扰用户。在这种情况下,制作一个单独的应用程序或某种将由用户激活的功能是一条更明智、更安全的道路。

如果您需要能够编写一个可以与客户端进行复杂通信的服务 remote processes (不仅仅是使用 Context.startService 向它发送命令),然后您可以使用 Messenger 类而不是编写完整的 AIDL 文件。如果你只需要远程服务,你应该按照这个 tutorial .

关于应用程序内的 android 远程服务与单独的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21175021/

相关文章:

java - Android WebView不显示本地IP地址

android - 按产品口味配置 applicationId 后找不到 R 类

Android M权限撤销——用 "dangerous"权限保护一个服务

android - 将 MediaPlayer 服务绑定(bind)到 Activity 时出错

android - 服务绑定(bind)链

android - 处理远程服务器断开连接的正确方法是什么?

android - Monodroid Google Maps v2 - "LinkAssemblies"任务意外失败

java - R.id 无法识别 xml id

Android AWS S3 SDK TransferUtility 在服务中不工作

android - 如何在另一个 IntentService 中从一个 IntentService 接收值?