¿Qué preguntas se harían en una entrevista para un trabajo en el equipo de Android?

Esto depende principalmente de tu experiencia, ¿eres un nuevo graduado? Hacker mod de cianógeno? ¿Experto en kernel de Linux? Esto influirá con quién se entrevistará.

Su apuesta más segura es prepararse como si fuera una entrevista general de Google. Muy pocas personas en el equipo harán preguntas específicas de Android (dudo que las cosas hayan cambiado mucho desde que me fui). Solo ha habido uno o dos casos en los que hice una pregunta muy específica para Android, pero el candidato tenía una amplia experiencia en piratería de Android.

Probablemente no estaría de más escribir una aplicación simple de Hello World, por lo que está familiarizado con los conceptos de nivel superior de Actividades, Intenciones y Servicios.

Conozca su Java y C, la mayoría del equipo no se molestará en hacerle preguntas difíciles de C ++.

Me centraría más en escribir código sólido y / o problemas de optimización en lugar de algoritmos avanzados. No descartaría lo posterior, sin embargo, es probable que tenga menos probabilidades de recibir tales preguntas dado el equipo.

Por último, pero no menos importante, disfruta del almuerzo gratis 🙂

Si usted es un desarrollador experimentado de Android, le recomendaría que descargue las aplicaciones (los productos) de la compañía para la que está entrevistando. Pase unos 15-20 minutos en cada aplicación y analice qué componentes podría estar usando. Lea sobre esos. Es probable que las rondas técnicas se centren en cuestiones relacionadas con las características que ya están en uso o en desarrollo para un producto en particular en el que planean contratarlo para trabajar.

Algunas de las preguntas comunes que me hicieron durante mis entrevistas se centraron en los siguientes temas:

  1. Parcelable
  2. Serialización tanto en Java como en Android (Parcelable es la forma de Android)
  3. Desplazamiento horizontal de los grupos de vista
  4. Notificaciones push
  5. Ciclo de vida de la actividad, devoluciones de llamada cuando se presionan los botones de inicio / inicio

6. Estructura interna de Android (El kernel de Linux y lo que todos los componentes se encuentran encima)

Espero que esto ayude.

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