Nos dias 7 e 8 de dezembro, uma conferência para desenvolvedores móveis Mobius 2019 Moscow morreu. Os relatórios são lidos, os convidados são alimentados, os prêmios são sorteados e aqui está a análise das perguntas mais interessantes dos três questionários do estande hh.ru.

Pergunta 1
Qual a quantidade física que o sensor de luz em um smartphone mede?

Questão 2
A principal questão que o JMM resolve

A respostaO que uma leitura específica será lida em um programa multithread?
ExplicaçãoInfelizmente, o JMM não responde à pergunta "Como escrever programas multithread corretamente", mas fornece informações sobre como o modelo de memória em Java é projetado para que possamos tomar as decisões corretas.
"O que uma gravação específica gravará em um programa multithread?" não é a resposta correta, porque, como programadores, geralmente estamos interessados no resultado dessa entrada.
"Ser ou não ser" é um trecho do famoso monólogo shakespeariano Hamlet e, quem pensaria, não tem nada a ver com programas multithread.
A última opção permanece - “O que uma leitura específica lerá em um programa multithread”, que é a resposta correta.
Sobre o tema do JMM, recomendamos que você veja o relatório de Alexei Shipilev "Pragmatic JMM"
Pergunta 3
O resultado do próximo bloco de código será ...
Observable.create<Int> { emitter -> try { throw Exception("whoa") } finally { emitter.onNext(1) } }.subscribe { print("onNext $it + ") }

A respostaonNext 1 + OnErrorNotImplementedException
ExplicaçãoDentro da função create, chamamos um bloco try-finally no qual lançamos uma exceção Exception ("whoa"). Como não há bloco de captura, uma exceção deve interromper a execução da cadeia e o controle é passado para o manipulador onError da interface Observer, onde a exceção ("whoa") deveria ter recebido. Mas há dois pontos importantes.
Primeiro: temos um bloco finalmente que deve ser executado. Nele, enviamos a string "onNext 1" para o manipulador onNext, que exibe essa string no console com a adição do caractere "+".
E a segunda: o manipulador onError não está definido na função de assinatura, portanto, o RxJava lança uma exceção "io.reactivex.exceptions.OnErrorNotImplementedException" e também é gerado no console. Portanto, obtemos a sequência "onNext 1 + OnErrorNotImplementedException".
Pergunta 4
Qual versão do android listada abaixo é a menos usada pelo developer.android.com?

Questão 5
Qual biblioteca NÃO tem realmente 2 no nome?

Pergunta 6
Que tipo será o resultado da expressão no Kotlin?
mutableListOf<Any>() + mutableListOf()

ExplicaçãoA resposta não é óbvia; à primeira vista, é lógico que o resultado seja uma MutableList. Nós mesmos recentemente notamos esse recurso da biblioteca padrão do Kotlin. Entendemos por que é assim.
No Kotlin, você pode executar operações binárias em coleções usando a sintaxe a + b, que se traduz em a.plus (b) . O método plus para MutableList de fontes Kotlin:
public operator fun <T> Collection<T>.plus(elements: Array<out T>): List<T> { .. }
Ou seja, o tipo de retorno é Lista <T>, no nosso caso Lista <Any>. Nesse caso, o tipo do segundo mutableListOf é opcional; o próprio Kotlin inferirá o tipo de acordo com o primeiro argumento de adição.
Pergunta 7
Qual estrutura para teste de UI de aplicativos Android NÃO existe?

ExplicaçãoEspresso é uma biblioteca do Google. Foi lançado em 2013. Tem uma sintaxe detalhada, Kakao se ofereceu para resolver esse problema
O Kakao fornece uma sintaxe conveniente para escrever a interface do usuário usando o Kotlin DSL e o Espresso, permitindo que você use o padrão Objeto de Página .
A Kaspresso foi ainda mais longe e resolve os problemas de testes intermitentes, registro, uso de adb, trabalho com o sistema operacional Android, criação de capturas de tela. Artigo de revisão completa para Kaspresso
Mokko - não existe
Pergunta 8
Que tipo de modo de mesclagem é o PorterDuff.Mode mostrado na figura?


ExplicaçãoPorterDuff.Mode em homenagem a Thomas Porter e Tom Duff, que escreveram o artigo “Compositing Digital Images” em 1984, que apresentou 12 operações de sobreposição de uma imagem na outra. PorterDuff.Mode apenas permite que você obtenha os resultados dessas 12 operações.

Pergunta 9
Como é o DatePickerDialog padrão no Android 10?

Explicação1 do Android 4.4
2 do Android 6.0 e superior
3 do Android 5.0
4 - uma peça de mobiliário favorita em escritórios russos e um presente de sonho de Ano Novo - calendário de parede
Pergunta 10
O primeiro smartphone Google Android lançado em colaboração com fabricantes de telefones

ExplicaçãoO Google Nexus é uma série de smartphones do Google e de parceiros de fabricação.
O Nexus G1 não existe, mas pode ser confundido com o primeiro smartphone Android T-Mobile G1 ou HTC Dream .
O Nexus One também produziu HTC. O smartphone estava executando o Android 2.1.
O Galaxy Nexus é o terceiro smartphone da série Nexus desenvolvido em conjunto pelo Google e Samsung.
O Nexus 11 pro não existe.
Pergunta 11
Como, de acordo com a documentação, a abreviação wtf é decodificada no sistema de log do Android (Log.wtf ())?

ExplicaçãoDocumentação log.wtf
Wrestling Takedown Federation - O 10º episódio da 13ª temporada da série "South Park".
Wtf também é uma abreviação de gírias da Internet, cuja decodificação é contrária às regras do habr, mas você já sabe tudo perfeitamente.
Pergunta 12
Qual é a versão mais recente do Appcompat?

ExplicaçãoCom o lançamento do AndroidX, o Google compartilhou as bibliotecas de suporte e adicionou um novo pacote androidx, iniciando uma nova contagem a partir de 1. Isso significa que a versão mais recente do Appcompat agora está em androidx.appcompat: appcompat e tem a versão mais recente 1.1.0.
No pacote com.android.support:appcompat-v7 , a biblioteca foi atualizada apenas para a versão 28.0.0. Mas as versões 29.0.0 RC e 29.0.0 nunca foram lançadas.
Pergunta 13
É assim que o logotipo do Android é chamado pela equipe do Google Android.

Pergunta 14
Qual seção não está no aplicativo hh para candidatos a emprego?

ExplicaçãoNo final de 2018, uma grande reformulação do aplicativo foi feita. E a "pesquisa automática" foi renomeada para "pesquisar assinatura". Ou seja, no momento não há uma seção com o nome "pesquisa automática".

Pergunta 15
O símbolo do Android é um robô verde. O autor do logotipo é considerado Irina Block. O que a inspirou?

A respostaImagem do homem na porta do banheiro
Explicação“No final, ela se inspirou em uma fonte distintamente humana: os pictogramas do homem e da mulher universais que frequentemente aparecem nas portas dos banheiros.” The New York Times
A análise do questionário foi feita pelo nosso desenvolvedor Georgy Ryabykh georgyR