UNA ENTREVISTA EN ANDROID, MEJOR RESPUESTA.
Raj tiene, 0 – 2 años, experiencia como programador, en Android
Está teniendo una ronda técnica, veamos cuán claramente responde a las preguntas.
Entrevistador Comenzó preguntando: “Explique la arquitectura Aplatform de Android”.
RAJ RESPONDIÓ “
Android es una pila de software de código abierto, basada en Linux.
Android es una pila de software de código abierto basado en Linux. Se compone de Linux Kernal, Capa de abstracción de hardware. Bibliotecas nativas, Android RunTime, API de Java, aplicaciones del sistema.
Debajo de la pila está: El kernel de Linux: el kernel de Linux proporciona controladores para conectarse al hardware.
La capa de abstracción de hardware (HAL) proporciona interfaces estándar, que interactúan con los controladores Kernal, para acceder a las funciones de hardware.
Android Run Time, está escrito, para ejecutar múltiples máquinas virtuales, en dispositivos con poca memoria, mediante la ejecución de archivos DEX.
Para los dispositivos con Android versión 5.0 (API nivel 21) o superior, cada aplicación se ejecuta en su propio proceso y con su propia instancia de Android Runtime (ART).
Antes de Android versión 5.0 (API nivel 21), Dalvik era el tiempo de ejecución de Android
Bibliotecas nativas de C / C ++
Los componentes de Android, como ART y HAL, se crean a partir de código nativo que requiere bibliotecas nativas escritas en C y C ++. Android proporciona API de Java para usar la funcionalidad de las bibliotecas nativas de las aplicaciones. Marco de API de Java Las API de Java forman los componentes básicos que necesita para crear aplicaciones de Android al proporcionar componentes y servicios. Aplicaciones del sistema
Android viene con un conjunto de aplicaciones principales para correo electrónico, mensajes SMS, calendarios, navegación por Internet, contactos y más. “
InterViewer: “¡bien! Muy bien explicado. ¿Puedes explicar el ciclo de vida de la actividad?”
Raj respondió “
Si seguro..
Una actividad tiene esencialmente cuatro estados:
Si una actividad está en primer plano de la pantalla, está activa o ejecutándose.
Si una actividad ha perdido el foco, pero aún es visible (como en el caso del diálogo, aparece en primer lugar), entonces está en pausa.
Si una actividad está completamente oscurecida por otra actividad, se detiene. Todavía conserva toda la información del estado y de los miembros.
Si una actividad se detiene o detiene, el sistema puede eliminar la actividad de la memoria pidiéndole que finalice o simplemente eliminando su proceso.
Entonces, cuando la actividad se crea por primera vez, se llama a su método onCreate ().
onStart () recibe una llamada después de onCreate () cuando la actividad se vuelve visible para el usuario.
Después se llama a onResume () cuando la actividad comenzará a interactuar con el usuario.
Se llama a onPause () cuando el sistema está a punto de comenzar a reanudar otra actividad o cuando pierde el foco, como cuando aparece un cuadro de diálogo.
onStop () llamó cuando la actividad ya no es visible para el usuario, porque otra actividad se ha reanudado y está cubriendo esta.
Se llama a onRestart () si esta actividad vuelve a interactuar.
Si la actividad ha finalizado, la actividad de llamada final que se recibirá es onDestroy ().
Eso completa todo el ciclo de actividad “.
Entrevista: “¡Eso es excelente!”
Entrevista: “
Digamos, hay tres actividades A, B, C, cada una con un botón para comenzar la actividad sin terminar en orden
Un comienzo es B,
B comienza C,
C comienza con A.
¿Me puede mostrar cómo se llama todo el conjunto de métodos lyfecycle durante la navegación desde
De la A, a la B,
B a C
C a A
“
Raj respondió:
“
Okay.
Cuando se inició la Actividad A, se llama a onCreate (), onStart (), onResume (), en orden
Cuando comenzó la actividad B, se llama a A: onPause (), luego se llama a B: onCreate (), onStart (), onResume () en orden
Cuando se inició la actividad C, se llama a B: onPause (), luego se llama a C: onCreate (), onStart (), onResume () en orden, luego B: onStop ()
Cuando nuevamente la Actividad A comenzó desde C, como A no fue destruida, entonces se llama primero a C: onPause (), luego se llama a A: onRestart (), onStart (), onResume (), luego C: onStop (). “
InterViewer: “¡Eso es excelente!”
InterViewer: “¿Qué es el Servicio en Android y cuáles son sus tipos?”
Raj respondió:
“Un servicio es un componente de aplicación que puede realizar operaciones de larga duración en segundo plano y no proporciona una interfaz de usuario.
Estos son los tres tipos diferentes de servicios: programados, iniciados, vinculados
Un servicio se programa cuando una API, como JobScheduler, inicia el servicio.
Un servicio se inicia cuando un componente de la aplicación (como una actividad) llama a startService ().
Una vez iniciado el servicio, puede ejecutarse en segundo plano indefinidamente, incluso si el componente que lo inició se destruye.
Se detiene mediante el método stopService (). El servicio puede detenerse llamando al método stopSelf ().
Un servicio está vinculado cuando un componente de la aplicación se une a él llamando a bindService ().
Un servicio vinculado ofrece una interfaz cliente-servidor que permite que los componentes interactúen con el servicio, envíen solicitudes y reciban resultados.
El cliente puede desvincular el servicio llamando al método unbindService ().
El servicio no se puede detener hasta que todos los clientes lo desvinculan. “
Entrevistador: “Bien, bien explicado”.
Entrevistador: “¿Puede explicar mediante un ejemplo en tiempo real cuándo utilizar bindservice o iniciar el servicio?”
Raj respondió:
” Si seguro ! ,
Supongamos que quiero reproducir música en segundo plano, así que llame al método startService ().
Pero quiero obtener información de la canción actual que se está reproduciendo,
Enlazaré el servicio que proporciona información sobre la canción actual. “
InterViewer: “¡Ohh! Muy, buen ejemplo”
InterViewer: “Ok Dime, ¿Cuál es la diferencia entre, Servicio y Servicio Intencional?”
Raj respondió:
“El servicio es la clase base para todos los servicios.
Una vez que se inicia el servicio, se llama al método onStartCommand del servicio.
Pasa el objeto Intent desde la llamada startService (intento).
Si se llama a startService (intent) mientras el servicio se está ejecutando, también se llama a su onStartCommand ().
Por lo tanto, es importante crear un nuevo subproceso cada vez en onStartCommand en el que el servicio puede completar todo su trabajo para esa intención particular recibida.
Si bien IntentService es una subclase de servicio, crea una cola de trabajo, que pasa, una intención a la vez, a su implementación onHandleIntent (), por lo que nunca tendrá que preocuparse por los subprocesos múltiples. “
InterViewer: “Muy bien. Ahora dime, ¿qué es una intención en Android?”
Raj respondió
: “Una intención es un objeto de mensajería, que se utiliza para solicitar una ACCIÓN a realizar por un componente de la aplicación, como Activy, Service, Broadcast Reciever, etc.”
InterViewer: “Muy agradable. ¿Y cuál es la diferencia entre la intención implícita y la intención explícita?”
Raj respondió:
“Las intenciones explícitas especifican el componente para comenzar por su nombre (es decir, nombre de clase completo)
por ejemplo: puede iniciar una actividad nueva por su nombre o iniciar un servicio por su nombre para descargar un archivo en segundo plano.
Los intentos implícitos no especifican directamente los componentes de Android a los que se debe llamar, solo especifica la acción a realizar, lo que también permite que un componente de otra aplicación lo maneje. “
InterViewer: “Muy bien. ¿Qué es Broadcast Reciever en Android?”
Raj respondió:
“Los receptores de transmisión son componentes de la aplicación que escuchan las transmisiones y toman alguna medida.
por ejemplo, construir un receptor de transmisión para escuchar si la batería tiene poca transmisión para informar al usuario que los datos no guardados deben guardarse rápidamente
.
“
InterViewer: “¡Bien! ¿Y de cuántas maneras la aplicación puede enviar Broadcast?”
Raj respondió:
“Android ofrece tres formas para que las aplicaciones envíen difusión:
primero es sendOrderedBroadcast,
el segundo es el método sendBroadcast,
el tercero es a través del método LocalBroadcastManager sendBroadcast.
El método sendOrderedBroadcast envía transmisiones a un receptor a la vez.
A medida que cada receptor se ejecuta a su vez, puede propagar un resultado al siguiente receptor, o puede abortar completamente la transmisión para que no se pase a otros receptores.
El método sendBroadcast envía transmisiones a todos los receptores en un orden indefinido.
El método localBroadcastManager sendBroadcast, envía transmisiones a receptores que están en la misma aplicación que el remitente. Si no necesita enviar transmisiones a través de aplicaciones, use transmisiones locales.
“
Ver completo en: entrevista en Android, Android InterView Pregunta y respuesta