Hoy estamos desarmando el cuestionario de Android de la conferencia para desarrolladores móviles Mobius 2018 Moscú.
El formato era bastante estándar: 15 preguntas con 4 respuestas posibles. Límite de tiempo de 30 segundos para cada pregunta.

Vamos!
Pregunta 1
ExplicacionesTodos saben que cada nueva versión de Android recibe un nombre en clave para los dulces y se asignan en orden alfabético (Cupcake, Donut, Eclair, etc.).
Sin embargo, inicialmente, los desarrolladores planearon nombrar las versiones usando nombres de robots ficticios. Por lo tanto, las primeras versiones de Android se llamaron Astra boy y Bender . Estos fueron lanzamientos internos antes del lanzamiento de la versión sin nombre 1.0. Sin embargo, por ciertas razones, el vector ha cambiado y la versión 1.1, se decidió llamar Petit Four . Esta fue la primera versión dulce de Android. Y ya comenzando con la próxima versión (Cupcake 1.5), los nombres comenzaron a asignarse en orden alfabético.
Fuente
Estadísticas de respuesta
Pregunta 2
ExplicacionesCon el lanzamiento de API 23 (Marshmallow), Android introdujo el nuevo concepto de permisos de tiempo de ejecución . Se suponía que esta característica agregaría transparencia para los usuarios a los permisos otorgados a la aplicación. Antes del lanzamiento de "malvaviscos", se emitieron permisos en el momento de la instalación de la aplicación.
Fuente
Tenga en cuenta que Android contiene más de 100 permisos únicos.
Estadísticas de respuesta
Pregunta 3
Explicaciones
measure () : se llama para determinar los requisitos de tamaño de la Vista y todos sus elementos secundarios.
onMeasure () : llamado desde measure () para hacer el trabajo real de dimensionar la Vista.
onLayout () : llamado para colocar un elemento dentro de un contenedor
onDraw () : llamado para representar Ver contenido.
Puede encontrar más información sobre la representación de Vista aquí .
Estadísticas de respuesta
Pregunta 4
ExplicacionesNo hay ningún método isUserSmell () en el SDK. Quizás en el futuro, con el advenimiento de sensores apropiados en dispositivos ...
Veamos qué hacen el resto de los métodos:
isUserMonkey () : el método está diseñado para verificar si el usuario es una prueba en el marco de la prueba de mono automatizada.
isUserAGoat () : a partir de API 21, comprueba si la aplicación Goat Simulator GoatZ está instalada. En las versiones a continuación, el método siempre devuelve falso. Ubicado en la clase android.os.UserManager
.
isFinalCountdown () : el método abre el clip de la banda de Europa "The Final Countdown". Se agregó a la API 26. Ubicado en la clase android.widget.Chronometer
.
Estadísticas de respuesta
Pregunta 5
La respuesta private static final int mobius = 2018
ExplicacionesEste conocimiento probado de la palabra clave const
, que se utiliza para declarar compile time constants
. En el mundo Java, esto corresponde a modificadores static final
.
Estadísticas de respuesta
Pregunta 6
ExplicacionesSi bien los desarrolladores han escuchado xhdpi y mdpi , las cosas son diferentes con tvdpi . No ganó popularidad y, por lo tanto, hay muy pocos dispositivos en la categoría tvdpi , pero lo fueron. El más famoso de ellos es Nexus 7 (2012).
Fuente
Tenga en cuenta que tvdpi tiene un coeficiente de 1.3 en relación con mdpi.
Estadísticas de respuesta
Pregunta 7
ExplicacionesAAPT (Herramienta de empaquetado de activos de Android) : una herramienta de Android para crear archivos .APK.
Condicionalmente, el trabajo de esta utilidad se puede dividir en dos etapas:
- Compilación En esta etapa, se están preparando recursos: se genera la clase R, los recursos XML se traducen a formato binario, procesamiento PNG, etc.
- Embalaje (enlace). Todos los archivos intermedios creados en la etapa de compilación se empaquetan en el APK.
En cuanto a las opciones de respuesta restantes:
- La ofuscación del código generalmente se realiza por proguard.
- El código de bytes de Java es el resultado del compilador de Java, que traduce el código fuente en código de bytes de Java.
- Dalvik bytecode es el resultado del compilador Dalvik (DX, D8), que traduce .class (Java bytecode) a .dex (Dalvik bytecode). El código fuente en el código de bytes de Dalvik no se transmite directamente.
El proceso de creación de una aplicación de Android se describe en la documentación .
Estadísticas de respuesta
Pregunta 8
ExplicacionesDe lo anterior, RIGHT OUTER JOIN no es compatible.
Fuente
Estadísticas de respuesta
Pregunta 9
ExplicacionesNombre | Densidad |
---|
ldpi | 0,75 |
mdpi | 1 |
tvdpi | 1.3 |
hdpi | 1,5 |
xhdpi | 2 |
xxhdpi | 3 y 2.6 |
xxxhdpi | 4 y 3.5 |
Estadísticas de respuesta
Pregunta 10
ExplicacionesART (Android RunTime) es el nuevo tiempo de ejecución de bytecode DEX que reemplaza a Dalvik. La diferencia más significativa entre Dalvik y ART es que Dalvik se basa en la compilación JIT ( Just-in-Time ), mientras que ART se basa en AOT ( Ahead-of-Time ). En términos generales, esto significa que Dalvik traduce el código de byte dalvik en el código de la máquina cada vez que se ejecuta la aplicación, y ART lo hace una vez, durante la instalación de la aplicación, almacenando el resultado en la memoria del dispositivo. Esto conduce a un lanzamiento y ejecución más rápidos de aplicaciones en ART en comparación con Dalvik, pero también aumenta el tiempo de instalación de la aplicación. Además, ART llevó a cabo la optimización de GC y también agregó una serie de funciones para mejorar el desarrollo y la depuración de aplicaciones.
ARTE y Dalvik

Además, vale la pena señalar que ART también incluye un compilador JIT que complementa a AOT. Lea más sobre esto aquí .
Estadísticas de respuesta
Pregunta 11
ExplicacionesKISS (Keep It Simple, Stupid) - ¡no lo compliques!
SECO (no se repita), MUERE (la duplicación es malvada): ¡no repita!
WTF (la cantidad de "chazan" por segundo) es una unidad de medida de la calidad del código para una revisión.
YAGNI (No lo necesitarás): ¡no lo necesitarás!
Estadísticas de respuesta
Pregunta 12
La respuesta Application Not Responding
ExplicacionesANR (la aplicación no responde) : un problema que ocurre cuando el hilo principal de la aplicación no puede procesar eventos del usuario y volver a dibujar la interfaz de usuario.
En Android, los servicios del sistema ActivityManager
y WindowManager
controlan la capacidad de respuesta de una aplicación. Si una de las siguientes condiciones es verdadera:
- no hay reacción a los eventos de entrada (eventos táctiles y pulsaciones de teclas),
- BroadcastReceiver no se completa en 10 segundos,
entonces el sistema notificará al usuario del problema mostrando el cuadro de diálogo ANR correspondiente.
Estadísticas de respuesta
Pregunta 13
ExplicacionesMeasureSpec está diseñado para transferir requisitos de tamaño de los componentes de vista principal a secundario. Estos requisitos se compilan en dos dimensiones: ancho y alto. Los valores para cada una de las mediciones son compuestos: la primera parte contiene información sobre el espacio disponible (en píxeles), la segunda parte contiene restricciones sobre el uso del espacio disponible. Estas restricciones pueden incluir lo siguiente:
MeasureSpec.UNSPECIFIED : sin restricciones, la vista puede tomar cualquier tamaño que necesite.
MeasureSpec.EXACTLY : se definen tamaños exactos, se verán estos bordes.
MeasureSpec.AT_MOST - Tamaños máximos determinados. La vista puede ser tan grande como quiera, pero hasta el tamaño especificado.
Estadísticas de respuesta
Pregunta 14
Explicaciones
Kernel de Linux (kernel de Linux) : esta capa proporciona el funcionamiento del sistema y es responsable de la seguridad, la gestión de la memoria, los procesos y también proporciona una pila de red y un modelo de controlador (controlador de pantalla, controlador de cámara y otros controladores).
Las bibliotecas (bibliotecas) son una capa intermedia de software diseñada para proporcionar funcionalidad básica para aplicaciones, como soporte para formatos de archivo, información de codificación y decodificación (por ejemplo, códecs), gráficos de representación y mucho más (Surface Manager, Media Framework, SQLite y otro)
Android Runtime : ubicado en el mismo nivel que las bibliotecas. Los componentes clave aquí son Dalvik VM y varias bibliotecas principales (bibliotecas principales).
Marco de aplicación: nivel de marco de aplicación. Es a través de los marcos de aplicación que los desarrolladores obtienen acceso a las API que se encuentran por debajo del nivel. Estos incluyen: ActivityManager, Package Manager, Window Manager, etc.
Aplicaciones : el nivel de aplicaciones, tanto básicas (preinstaladas en el sistema operativo: navegador, calendario, contactos, etc.) como instaladas por el usuario.
Tenga en cuenta que los autores del cuestionario son de la vieja escuela, porque en la documentación oficial, las capas se resaltan de otra manera: source.android.com/devices/architecture .
Estadísticas de respuesta
Pregunta 15
Explicacionesgoto : salta a otra instrucción.
invokeinterface : se usa para llamar a métodos de interfaz.
invokestatic : se usa para llamar a métodos estáticos.
Descripción de otras instrucciones .
Estadísticas de respuesta