Generalidades

Preguntas comunes de la entrevista de Android | Por Shumilova Svitlana | Marzo de 2022

He recopilado algunas preguntas frecuentes para entrevistas con desarrolladores junior de Android. Espero que los encuentre útiles.

Q1. ¿Qué es el manifiesto de Android?

AndroidManifest es el archivo de inicio de la aplicación, que describe la aplicación del sistema. Consta de componentes básicos, permisos, icono, nombre de la aplicación.

Q2. ¿Cómo se especifica qué actividad es la actividad inicial?

Q3. ¿Qué es un APK?

APK (paquete de Android) es un formato de archivo utilizado para distribuir e instalar aplicaciones móviles en el entorno de Android. Es un archivo que contiene archivos dex, recursos, manifiestos, bibliotecas nativas, recursos, etc.

Q4. ¿Cuál es la intención?

Intent es una clase utilizada para invocar componentes de aplicaciones. La intención puede ser explícita (invocar una actividad específica) e implícita (invocar una acción, que abre una aplicación que admite esa acción).

Puede haber casos en los que se invoque una intención implícita y ninguna aplicación en el teléfono pueda manejarlo. En este caso, puede llamar al método de clase resolveActivity Intent y usarlo para verificar si hay una aplicación en el teléfono que pueda manejar tal intención. En SDK 30, se introdujeron nuevos permisos. Estos permisos requieren que los desarrolladores soliciten acceso a una lista de aplicaciones en el teléfono.

P5. ¿Qué son los cambios de configuración?

Eso es todo lo que puede conducir a que se utilicen diferentes recursos de la aplicación: rotación de pantalla, cambios de configuración regional, cambios de tema. Los cambios de configuración hacen que se produzca el onDestroy de la actividad activa.

P6. ¿Cuál es la última versión de Android?

A partir de marzo de 2022, Android 12, lanzado el 21 de octubre de 2021, es la última versión estable de Android disponible.

La vista previa de Android 13 ya está disponible

Pregunta 7. ¿Cuáles son los componentes principales de una aplicación de Android?

Los componentes principales de una aplicación de Android son Actividad, Servicio, BroadcastReceiver y ContentProvider. Cada componente principal se declara en el manifiesto de Android y puede servir como punto de entrada para la aplicación.

La actividad representa la interfaz de usuario y la funcionalidad visible para el usuario.

Los servicios se utilizan para realizar operaciones de ejecución prolongada que no requieren la interacción del usuario.

BroadcastReceiver recibe y procesa eventos de transmisión enviados dentro de una aplicación o desde otras aplicaciones.

ContentProvider se utiliza para compartir datos con otras aplicaciones.

P8. ¿Qué es Gradle?

Gradle es una herramienta de automatización de compilación. Los scripts de Gradle especifican la versión de la aplicación, la biblioteca, la versión de Kotlin/Java, el nombre del paquete, la configuración de ProGuard, la firma y la ofuscación.

Pregunta 9. ¿Cuál es la diferencia entre minSdkVersion VS targetSdkVersion VS compileSdkVersion

Estas versiones siempre están relacionadas de la siguiente manera:

minSdkVersion <= targetSdkVersion <= compileSdkVersion.

SDK mínimo — La versión mínima de la aplicación que se puede instalar. Si el minsdk es 21, la aplicación no mostrará versiones inferiores a 21 en Google Play.

Compilar SDK — Cree la versión de la aplicación. Si compileSdk es 29, la funcionalidad de 30 no estará disponible. Si intenta usar funciones de SDK 30 con compilesdk 29, la aplicación no se compilará correctamente.

SDK de destino — Al migrar al nuevo SDK, Google tiene nuevos requisitos para las aplicaciones, como restricciones de acceso a archivos, etc. Siempre que el targetSdk de la aplicación sea 29, incluso para los usuarios de Android api 30, la aplicación se puede usar de acuerdo con las reglas anteriores. Después de aumentar la cantidad de targetSdks, debe seguir el nuevo límite.

Esto es necesario cuando se lanza un nuevo SDK y la mayoría de las aplicaciones no están listas para usarlo. Cuando la aplicación cumple con los requisitos de la nueva API, se puede aumentar targetSdk. targetSdk no debe tener más de tres versiones por detrás del último SDK publicado.

Pregunta 10. ¿Es posible tener dos actividades de lanzamiento?

Lo más probable es que necesite especificar filtros de intención en ambas actividades.

Pregunta 11. ¿Es posible hacer dos iconos para una actividad?

Lo más probable es que necesite usar un alias de actividad con el filtro de intención principal+iniciador.

Pregunta 12. ¿Cuándo se llamará onPause y no onStop?

Cuando la actividad está parcialmente cubierta por algunos elementos, por ejemplo, cuadros de diálogo, alertas, etc., pero al menos una parte de la actividad será visible pero no estará disponible para la interacción. onStop no se llama cuando la actividad es al menos parcialmente visible para el usuario.

Pregunta 13. Hay una actividad con un botón que llama a una segunda actividad al hacer clic. ¿Cuál es el orden en que se llaman las devoluciones de llamada del ciclo de vida en las dos actividades? ¿Qué pasa si vuelves a la primera actividad?

Actividad1 en Crear

Actividad1 al inicio

Actividad1 en reanudar

haga clic en el botón

Actividad1 pausas

Actividad2 en Crear

Actividad2 al inicio

Actividad2 en reanudar

Actividad1 onStop

clic en el botón Atrás

Actividad2 pausas

Actividad 1 al reiniciar

Actividad1 al inicio

Actividad1 en reanudar

Actividad2 onStop

Actividad2 en Destruir

Devolución de llamada con actividad transparente (translúcida)

Actividad1 en Crear

Actividad1 al inicio

Actividad1 en reanudar

haga clic en el botón

Actividad1 pausas

Actividad2 en Crear

Actividad2 al inicio

Actividad2 en reanudar

Activity1 onStop se omite porque la actividad es visible para el usuario

clic en el botón Atrás

Actividad2 pausas

Actividad1 en reanudar onRestart y onStart se omiten (porque Activity1 no desaparece de la vista)

Actividad2 onStop

Actividad2 en Destruir

Pregunta 14. ¿Cómo guardar el estado activo cuando se gira la pantalla?

Puede especificar cambios de configuración en el manifiesto que son manejados por la propia actividad. Luego, con estos cambios, se llama al método de actividad onConfigurationChanged, donde puede manejar los cambios usted mismo.

Pregunta 15. ¿Qué son las tareas en Android?

La tarea es una pila de actividades separada en la pila de aplicaciones. Cuando se crea una nueva actividad, la actividad anterior va al backstack y la nueva actividad estará encima de ella. Una aplicación puede tener múltiples tareas. Las tareas están controladas por launchMode a través de un manifiesto o mediante programación.

Pregunta 16.ciclo de vida de la actividad

El ciclo de vida de la actividad consta de seis devoluciones de llamada genéricas llamadas por el sistema.

enCrear() Se llama cuando se crea una actividad. En onCreate() debes llamar al método setContentView().

Comienzo() Se llama cuando la actividad se representa y es visible para el usuario.

En resumen() Se llama antes de que la actividad esté disponible para la interacción del usuario.

pausa() Se llama cuando el usuario ya no puede interactuar con la actividad, pero la actividad es parcialmente visible para el usuario.

detener() Se llama cuando la actividad ya no es visible para el usuario.

destruir() Se llama antes de que el sistema operativo destruya la actividad.

Pregunta 17. Si su aplicación solo admite la orientación vertical, ¿debe considerar guardar el estado?

Si. La rotación de pantalla es un caso especial de cambios de configuración. Otro ejemplo es cambiar el idioma del sistema, cambiar el tema, etc.

Adicionalmente, el sistema operativo puede destruir la actividad para utilizar los recursos que ocupa. En este caso, el estado se guarda y restaura cuando se vuelve a crear la actividad.

Pregunta 18. ¿Cuál es la diferencia entre contexto de actividad y contexto de aplicación?

El contexto de actividad se crea cuando la actividad se crea y se destruye junto con la actividad. El contexto es un objeto pesado y puede causar pérdidas de memoria, es decir, cuando el contexto de la actividad se almacena después de llamar a Activity.onDestroy(). No pase el contexto de la actividad a otro objeto a menos que sepa cuánto tiempo estará el objeto.

El contexto de la aplicación es un singleton. El contexto de la aplicación se crea cuando se crea el objeto de la aplicación y persiste mientras el proceso de la aplicación esté activo. Por esta razón, el contexto de la aplicación se puede inyectar de forma segura en otros singletons de la aplicación.

Pregunta 19. ¿Qué es una pérdida de memoria? Cómo los evitas?

Una fuga de memoria es una situación en la que un objeto ya no está en uso, pero el recolector de elementos no utilizados no puede eliminar el objeto de la memoria porque otros objetos hacen referencia a él.

Si se llama al método onDestroy() en una actividad que aún tiene referencias externas, se producirá una pérdida de memoria.

La actividad es un objeto pesado que ocupa mucho espacio en la memoria, por lo que la fuga de objetos de actividad es un gran problema para las aplicaciones de Android. Las fugas de actividad frecuentes muestran OutOfMemoryError y bloqueos de aplicaciones.

Leakcanary es una biblioteca que ayuda a eliminar las fugas de memoria en las aplicaciones de Android. Es muy útil y fácil de usar.

Q20. ¿Qué es un archivo .dex?

Los archivos DEX son el resultado de compilar el código de la aplicación de Android. DEX significa Dalvik Executable, pero no obstante, también se usa en dispositivos con el tiempo de ejecución ART.

En un programa Java, cada archivo .java se compila en un archivo .class separado. Un DEX es similar a un archivo .class, pero contiene código de bytes para toda la aplicación (o parte de una aplicación en el caso de Multidex) en lugar de una sola clase.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba