Del 7 al 8 de diciembre, se clausuró una conferencia para desarrolladores de dispositivos móviles Mobius 2019 Moscú. Se leen los informes, se alimenta a los invitados, se sortean los premios, y aquí está el análisis de las preguntas más interesantes de los tres quiz'ov del stand hh.ru.

Pregunta 1
¿Qué cantidad física mide el sensor de luz en un teléfono inteligente?

Estadísticas de respuesta
Pregunta 2
El problema principal que JMM resuelve

La respuesta¿Qué leerá una lectura particular en un programa multiproceso?
ExplicaciónDesafortunadamente, el JMM no responde la pregunta "Cómo escribir programas multiproceso correctamente", pero nos da información sobre cómo está diseñado el modelo de memoria en Java para que podamos tomar las decisiones correctas.
"¿Qué escribirá una escritura en particular en un programa multiproceso?" no es la respuesta correcta porque, como programadores, generalmente estamos interesados en el resultado de esta entrada.
"Ser o no ser" es un extracto del famoso monólogo de Shakespeare Hamlet y, quien hubiera pensado, no tiene nada que ver con programas multiproceso.
La última opción permanece: "Lo que una lectura en particular leerá en un programa multiproceso", que es la respuesta correcta.
Sobre el tema de JMM, le recomendamos que vea el informe de Alexei Shipilev "JMM pragmático"
Estadísticas de respuesta
Pregunta 3
El resultado del próximo bloque de código será ...
Observable.create<Int> { emitter -> try { throw Exception("whoa") } finally { emitter.onNext(1) } }.subscribe { print("onNext $it + ") }

La respuestaonNext 1 + OnErrorNotImplementedException
ExplicaciónDentro de la función de creación, llamamos a un bloque try-finally en el que lanzamos una excepción de excepción ("whoa"). Como no hay un bloque catch, una excepción debe interrumpir la ejecución de la cadena, y el control se pasa al controlador onError de la interfaz Observer, donde debería haber obtenido la excepción ("whoa"). Pero hay dos puntos importantes.
Primero: finalmente tenemos un bloque que debe ejecutarse. En él, enviamos la cadena "onNext 1" al controlador onNext, que muestra esta cadena en la consola con la adición del carácter "+".
Y el segundo: el controlador onError no está definido en la función de suscripción, por lo que RxJava lanza una excepción "io.reactivex.exceptions.OnErrorNotImplementedException", y también se envía a la consola. Entonces obtenemos la cadena "onNext 1 + OnErrorNotImplementedException".
Estadísticas de respuesta
Pregunta 4
¿Qué versión de Android enumerada a continuación es la menos utilizada por developer.android.com?

Estadísticas de respuesta
Pregunta 5
¿Qué biblioteca NO tiene realmente 2 en el nombre?

Estadísticas de respuesta
Pregunta 6
¿De qué tipo será el resultado de la expresión en Kotlin?
mutableListOf<Any>() + mutableListOf()

ExplicaciónLa respuesta no es obvia, a primera vista es lógico que el resultado sea una MutableList. Nosotros mismos notamos recientemente una característica de la biblioteca estándar de Kotlin. Entendemos por qué esto es así.
En Kotlin, puede realizar operaciones binarias en colecciones utilizando la sintaxis a + b, que se traduce en a.plus (b) . El método plus para MutableList de las fuentes de Kotlin:
public operator fun <T> Collection<T>.plus(elements: Array<out T>): List<T> { .. }
Es decir, el tipo de retorno es List <T>, en nuestro caso List <Any>. En este caso, el tipo de la segunda mutableListOf es opcional; Kotlin inferirá el tipo de acuerdo con el primer argumento de adición.
Estadísticas de respuesta
Pregunta 7
¿Qué marco para las aplicaciones de Android de prueba de IU NO existe?

ExplicaciónEspresso es una biblioteca de Google. Fue lanzado en 2013. Tiene una sintaxis detallada, Kakao se ofreció para resolver este problema.
Kakao proporciona una sintaxis conveniente para escribir UI usando Kotlin DSL y Espresso, le permite usar el patrón de Objeto de Página .
Kaspresso fue aún más lejos y resolvió los problemas de las pruebas de flasheo, el registro, el uso de adb, el trabajo con el sistema operativo Android y la creación de capturas de pantalla. Artículo de revisión completa para Kaspresso
Mokko - no existe
Estadísticas de respuesta
Pregunta 8
¿Qué tipo de modo de fusión se muestra PorterDuff.Mode en la imagen?


ExplicaciónPorterDuff.Mode lleva el nombre de Thomas Porter y Tom Duff, quienes escribieron el artículo "Compositing Digital Images" en 1984, que incluía 12 operaciones de superposición de una imagen sobre otra. PorterDuff.Mode solo le permite obtener los resultados de estas 12 operaciones.

Estadísticas de respuesta
Pregunta 9
¿Cómo se ve el DatePickerDialog estándar en Android 10?

Explicación1 de Android 4.4
2 de Android 6.0 y superior
3 de Android 5.0
4 - un mueble favorito en las oficinas rusas y el regalo soñado de Año Nuevo - calendario de pared
Estadísticas de respuesta
Pregunta 10
El primer teléfono inteligente Google Android lanzado en colaboración con fabricantes de teléfonos

ExplicaciónGoogle Nexus es una serie de teléfonos inteligentes de Google y socios de fabricación.
Nexus G1 no existe, pero podría confundirse con el primer teléfono inteligente con Android T-Mobile G1 o HTC Dream .
Nexus One también produjo HTC. El teléfono inteligente ejecutaba Android 2.1.
El Galaxy Nexus es el tercer teléfono inteligente de la serie Nexus desarrollado conjuntamente por Google y Samsung.
Nexus 11 pro no existe.
Estadísticas de respuesta
Pregunta 11
¿Cómo, según la documentación, la abreviatura wtf se decodifica en el sistema de registro de Android (Log.wtf ())?

ExplicaciónDocumentación log.wtf
Wrestling Takedown Federation - El décimo episodio de la temporada 13 de la serie "South Park".
Wtf también es una abreviatura en la jerga de Internet, cuya decodificación es contraria a las reglas de habr, pero ya lo sabes todo perfectamente.
Estadísticas de respuesta
Pregunta 12
¿Cuál es la última versión de Appcompat?

ExplicaciónCon el lanzamiento de AndroidX, Google compartió bibliotecas de soporte y agregó un nuevo paquete androidx, comenzando un nuevo recuento desde 1. Esto significa que la última versión de Appcompat ahora se encuentra en androidx.appcompat: appcompat y tiene la última versión 1.1.0.
En el paquete com.android.support:appcompat-v7 , la biblioteca se actualizó solo a la versión 28.0.0. Pero las versiones 29.0.0 RC y 29.0.0 nunca salieron.
Estadísticas de respuesta
Pregunta 13
Así es como el equipo de Android de Google llama al logotipo de Android.

Estadísticas de respuesta
Pregunta 14
¿Qué sección no está en la solicitud hh para solicitantes de empleo?

ExplicaciónA finales de 2018, se realizó un gran rediseño de la aplicación. Y se ha cambiado el nombre de "búsqueda automática" a "suscripción de búsqueda". Es decir, en este momento no hay una sección con el nombre "búsqueda automática".

Estadísticas de respuesta
Pregunta 15
El símbolo de Android es un robot verde. El autor del logotipo se considera Irina Block. ¿Qué la inspiró a ella?

La respuestaImagen del hombre en la puerta del baño
Explicación"Al final, se inspiró en una fuente claramente humana: los pictogramas del hombre y la mujer universales que a menudo aparecen en las puertas de los baños". The New York Times
Estadísticas de respuesta El análisis de la prueba fue realizado por nuestro desarrollador Georgy Ryabykh georgyR