Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
REPORTE Universidad Veracruzana Sistemas operativos Miguel Ángel Ortigoza Clemente Callback y Procesos en Android Daniela Morales Sixto Lunes 18 de octubre de 2021 Índice 1. Callback y Procesos en Android 2 1.1. ¿Qué es un callback? 2 1.2. Caso de uso de un callback 2 2. ¿Qué es un proceso en Android? 3 2.1. ¿Qué es un subproceso en Android? 4 2.2. Comunicación entre procesos 5 3. Referencias 5 2 1. Callback y Procesos en Android 1.1. ¿Qué es un callback? Un callback es una función que se pasa a otra función como argumento, que luego se invoca dentro de la función externa para completar algún tipo de rutina o acción. 1.2. Caso de uso de un callback Son una solución elegante para un problema de comunicación que en realidad es bastante complicado, y nuestro lenguaje de programación de elección los hace fáciles de implementar con lambdas. El concepto de devoluciones de llamada es informar a una clase sincrónica / asincrónica si se realiza algún trabajo en otra clase. Algunos lo llaman el principio de Hollywood: "No nos llames, te llamamos". He aquí un ejemplo: 3 La clase A llama a la clase B para realizar algún trabajo en un subproceso. Si el subproceso terminó el trabajo, informará a la clase A sobre la devolución de llamada y proporcionará los resultados. Entonces no hay necesidad de hacer una votación o algo así. Obtendrá los resultados tan pronto como estén disponibles. En Android, las devoluciones de llamada se utilizan entre Actividades y Fragmentos. Debido a que los fragmentos deben ser modulares, puede definir una devolución de llamada en el fragmento para llamar a métodos en la actividad. 2. ¿Qué es un proceso en Android? De manera predeterminada, todos los componentes de la misma aplicación se ejecutan en el mismo proceso, y la mayoría de las aplicaciones no deben cambiar 4 esto. No obstante, si necesitas controlar a qué procesos pertenece un componente determinado, puedes hacerlo en el archivo de manifiesto. La entrada de manifiesto de cada tipo de elemento de componente (<activity>, <service>, <receiver> y <provider>) admite un atributo android:process que puede especificar un proceso en el que debe ejecutarse el componente. Puedes establecer este atributo para que cada componente se ejecute en su propio proceso o para que algunos componentes compartan un proceso y otros no. También puedes establecer android:process para que los componentes de diferentes aplicaciones se ejecuten en el mismo proceso (si las aplicaciones comparten el mismo ID de usuario de Linux y están firmadas con los mismos certificados). Cuando decides qué procesos cancelar, el sistema Android pondera su importancia relativa para el usuario. Por ejemplo, cierra más rápido un proceso que aloja actividades que ya no se ven en la pantalla que un proceso que aloja actividades visibles. La decisión de si se debe finalizar un proceso, por lo tanto, depende del estado de los componentes que se ejecutan en él. 2.1. ¿Qué es un subproceso en Android? Cuando se inicia una aplicación, el sistema crea un subproceso de ejecución, que se denomina "principal". Este subproceso es muy importante porque está a cargo de distribuir eventos a los widgets correspondientes de la interfaz de usuario, incluidos los eventos de dibujo. También es casi siempre el subproceso en el que tu aplicación interactúa con los componentes del kit de herramientas de la IU de Android (componentes de los paquetes android.widget y android.view). Por esto, el subproceso principal también se suele denominar subproceso de IU. Sin embargo, en circunstancias especiales, es posible que el subproceso principal de una app no sea el de la IU. El sistema no crea un subproceso separado para cada instancia de un componente. Se crean instancias de todos los componentes que se ejecutan en el mismo proceso del subproceso de IU, y las llamadas del sistema a cada componente se distribuyen desde ese subproceso. Por lo tanto, los métodos que responden a las devoluciones de llamada del sistema (como onKeyDown() para informar acciones del usuario o un método de devolución de llamada de ciclo de vida) siempre se ejecutan en el subproceso de IU del proceso. Por ejemplo, cuando el usuario toca un botón en la pantalla, el subproceso de IU de la aplicación distribuye el evento de toque al widget, que, a su vez, establece su estado presionado y publica una solicitud de invalidación en la cola de 5 eventos. El subproceso de IU saca de la cola la solicitud y notifica al widget que debe volver a dibujarse. 2.2. Comunicación entre procesos Android ofrece un mecanismo para comunicación entre procesos (IPC) con llamadas de procedimiento remoto (RPC), en el que una actividad u otro componente de la aplicación llama a un método, pero este se ejecuta de manera remota (en otro proceso), y los resultados se devuelven al emisor. Esto implica la descomposición de una llamada a un método y sus datos a un nivel en el que el sistema operativo pueda comprender; su transmisión desde el proceso y el espacio de dirección locales hacia el proceso y el espacio de dirección remotos; y, a continuación, el reensamble y la recreación de la llamada allí. Los valores de retorno se transmiten en la dirección opuesta. Android proporciona todo el código para realizar estas transacciones de IPC de manera que tú puedas centrarte en definir e implementar la interfaz de programación de RPC. 3. Referencias Descripción general de los procesos y subprocesos. (s. f.). Android Developers. Recuperado 18 de octubre de 2021, de https://developer.android.com/guide/components/processes-and- threads?hl=es#IPC Sanson, J. (2021, 25 mayo). Android Then and Now: Callbacks - Default to Open. Medium. Recuperado 18 de octubre de 2021, de https://medium.com/default-to-open/android-then-and-now-callbacks- b0fe9f756b20 What is callback in Android? (s. f.). Stack Overflow. Recuperado 18 de octubre de 2021, de https://stackoverflow.com/questions/18054720/what-is- callback-in-android 1. Callback y Procesos en Android 1.1. ¿Qué es un callback? 1.2. Caso de uso de un callback 1. Callback y Procesos en Android 1.1. ¿Qué es un callback? 1.2. Caso de uso de un callback 1. Callback y Procesos en Android 1.1. ¿Qué es un callback? 1.2. Caso de uso de un callback 1. Callback y Procesos en Android 1.1. ¿Qué es un callback? 1.2. Caso de uso de un callback
Compartir