¿Qué es "Stub" y "AIDL" para en java?
Pregunta 1:
Estoy estudiando el servicio de Android y muchas veces veo código como este:
- Android startService Synchronous?
- Comunicación de Android entre dos servicios
- ¿Por qué utilizar un servicio Android?
- Android - implementar startForeground para un servicio?
- Cómo establecer la prioridad de IntentService en Android
private ISampleService.Stub sampleServiceIf = new ISampleService.Stub(){}
¿Qué es .Stub
?
Pregunta 2:
Comprobé " AIDL ", pero quiero saber por qué tenemos que usar eso en lugar del archivo de interfaz de Java?
- Servicio remoto muerto mientras que el proceso principal está vinculado a él
- Java.io.IOException: SERVICE_NOT_AVAILABLE en el cliente de GCM
- Android: envía los datos de la ubicación en segundo plano periódicamente (cada 30 segundos) y solicita al servidor nuevos datos
- Servicio de Android en la biblioteca
- Cómo mantener un servicio de Intent funcionando
- ¿Cómo utilizo Android SpeechRecognizer como servicio?
- Cómo crear una actividad y un servicio de Android que utilicen procesos independientes
- Android Shared Service?
'Stub' es una clase que implementa la interfaz remota de una manera que puedes usarla como si fuera una local. Se encarga de marashalling datos / unmarshalling y envío / recepción a / desde el servicio remoto. El término "stub" se utiliza generalmente para describir esta funcionalidad en otros métodos RPC (COM, Java remoting, etc.), pero puede significar cosas ligeramente diferentes.
El IDL (Interface Definition Language) generalmente es independiente del lenguaje, y en teoría podría generar código C + + o Python. Sin embargo, el Android está basado en Java, por lo que la distinción es sutil. Una diferencia es que sólo puede tener una sola interfaz en un archivo .aidl, mientras que Java permite múltiples clases / interfaces por archivo .java. También hay algunas reglas para los tipos que se admiten, por lo que no es exactamente lo mismo que una interfaz de Java, y no se puede utilizar uno en lugar de AIDL.
Hey, por favor revise este http://developer.android.com/guide/components/aidl.html . Le ayudará a entender el talón y AIDL.
- Cordova: No se puede instalar apk después de actualizar android a 5.1.1 Nexus 5
- ¿Cuál es la diferencia entre 'textEmailAddress' y 'textWebEmailAddress'