2011-01-17 14 views
21

Estimados todos, Soy una nueva idea para Android. Había leído muchos artículos sobre el servicio de Android, pero no entiendo claramente qué diferencia hay entre el servicio local y el servicio remoto (a excepción del "servicio local ejecutado en el mismo proceso que la actividad de almorzar, los servicios remotos se ejecutan en su propio proceso": Guía de Coder Ocupado para el Desarrollo de Android - Mark L. Murphy).Servicio remoto vs. Servicio local

  1. Por favor, muéstreme qué diferencia hay entre el Servicio local y el Servicio remoto.
  2. ¿Cuál es la ventaja/desventaja de utilizar el servicio local?
  3. Cuál es la ventaja/desventaja de usar el servicio remoto.

Gracias & mejores deseos Dai Hijo

Respuesta

10

Su descripción es exactamente la diferencia entre un servicio local y remoto. No hay nada más que decir. Casi nunca querrá usar un servicio remoto.

+0

Estimado Falmarri, ¡Gracias por su útil respuesta! –

+3

¡Gracias por proporcionar una respuesta clara/concisa! He estado rastreando Internet para esto, ya que es una decisión de diseño importante y he visto tutoriales sobre IPC/AIDL para servicios remotos de Android, pero no es obvio por qué lo adoptarías. Con su respuesta, creo que ahora parece que estos servicios remotos solo son útiles si planea tener múltiples * aplicaciones * consultar un "servicio" de fondo común; de lo contrario, es mejor tener el servicio como local y usar el subprocesamiento para las tareas que consumen tiempo ... por favor corrígeme si mi entendimiento es incorrecto ya que estoy a punto de comenzar a codificar :) – sradforth

+1

@sradforth: 'estos servicios remotos solo son útiles si planeas tener múltiples aplicaciones consultar un" servicio "de fondo común. Esta es una de los casos de uso para un servicio remoto. La otra es si su servicio necesita iniciarse y detenerse mucho o ejecutarse continuamente en segundo plano (¡mal!), pero toda su aplicación requiere mucho RAM, puede ejecutar el servicio de forma remota para que sus mapas de memoria de proceso estén separados. Sé que el servicio push de la empresa usa esto. Pero, sinceramente, creo que es muy, muy, muy rara vez el "mejor" diseño. – Falmarri

2

La diferencia entre el servicio remoto y el servicio local es: el servicio local se ejecuta en el mismo proceso y el servicio remoto se ejecuta en un proceso diferente y puede estar en una aplicación diferente.

Puede acceder a un servicio remoto que se ejecuta en la aplicación diferente pero no puede acceder a un servicio local que se ejecuta en una aplicación diferente.

0

El servicio local significa que se ejecuta en el mismo proceso, probablemente en la misma aplicación. Puede iniciar un servicio utilizando el método startService() y puede detener el servicio utilizando el método stopService(). Estos dos métodos de ciclo de vida o Servicio y servicio remoto generalmente se ejecutan en una aplicación diferente. puede acceder a ellos escribiendo AIDL Interfaces y puede conectarse a un servicio remoto mediante el uso de la carpeta.

-1

Creo que eres realmente nuevo, y yo también ^^. pero lo explico tan bien como sé.

un servicio local se comunica con su actividad a través de la memoria del proceso. esto es rápido y simple. pero no puede implementar un programa multiproceso como complemento con el servicio local.

pero el servicio remoto se puede comunicar con otros procesos. para que pueda hacer programas como plug-in. pero no es tan rápido (pero tal vez sea suficiente). porque le preguntas al sistema operativo "Quiero comunicación con ...". y esto sucede a través del sistema de archivos (Pipe) o kernel memory (Binder) ... rutas variables,

así que esto no es rápido porque lee el archivo o el tráfico con otros procesos coummucations.

Cuestiones relacionadas