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

我试图找出作为我的客户端应用程序(使用android:process =“:remote”)的一部分编写android远程服务的利弊与使之成为一个单独的服务应用程序。

在这两种情况下,服务将在其自己的独立进程中运行,并有自己的堆等。但是,我们使它成为一个单独的应用程序,因为它将有自己的应用程序沙箱,必须有一些差异。 我发现他们的使用情况和首选方法的例子很多,但我想了解它的内部技术细节。

有关这方面的任何好的信息来源?

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

Solutions Collecting From Web of "Android应用程序内的远程服务与单独的应用程序"

你的问题以前已经部分回答了。 在这里检查:

  • 使用android:process =“:remote”重新创buildandroid应用程序对象

但是,如果你仍然想着在后台运行某个东西的想法,你可以看看这个参考:

  • 开发具有后台服务的应用程序

让事情在后台运行显然不是一个好的select。 除非你以任何理由真的需要它。 所以,请注意不要让用户不必要的后台服务,而是由用户自己的意愿激活。 在这种情况下,制作一个单独的应用程序,或者是由用户激活的一种function是更聪明,更安全的方法。

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