Análise do concurso de questionários Android do estande do HeadHunter no Mobius 2018 Moscow

Hoje, estamos desmontando o questionário Android da conferência para desenvolvedores móveis Mobius 2018 Moscow.

O formato era bastante padrão: 15 perguntas com 4 respostas possíveis. Prazo de 30 segundos para cada pergunta.



Vamos lá!


Pergunta 1


A resposta
Astra boy/Bender 


Explicações
Todo mundo sabe que cada nova versão do Android recebe um nome de código para doces e eles são atribuídos em ordem alfabética (Cupcake, Donut, Eclair, etc.).
No entanto, inicialmente, os desenvolvedores planejaram nomear as versões usando nomes de robôs fictícios. Portanto, as primeiras versões do Android foram chamadas Astra boy e Bender . Estes eram lançamentos internos antes do lançamento da versão 1.0 sem nome. No entanto, por certas razões, o vetor mudou e, na versão 1.1, foi decidido chamar Petit Four . Esta foi a primeira versão doce do Android. E já começando com a próxima versão (Cupcake 1.5), os nomes começaram a ser atribuídos em ordem alfabética.

Fonte

Estatísticas de resposta





Questão 2


A resposta
 Marshmallow 


Explicações
Com o lançamento da API 23 (Marshmallow), o Android introduziu o novo conceito de permissões de tempo de execução . Esse recurso deveria adicionar transparência para os usuários às permissões concedidas ao aplicativo. Antes do lançamento de “marshmallows”, as permissões eram emitidas no momento da instalação do aplicativo.

Fonte

Observe que o Android contém mais de 100 permissões exclusivas.


Estatísticas de resposta





Pergunta 3


A resposta
 measure() 


Explicações


measure () - chamado para determinar os requisitos de tamanho da View e de todos os seus filhos.

onMeasure () - chamado de measure () para realizar o trabalho real de dimensionamento da View.

onLayout () - chamado para colocar um elemento dentro de um contêiner

onDraw () - chamado para renderizar o conteúdo da exibição.

Mais informações sobre a renderização do View podem ser encontradas aqui .


Estatísticas de resposta





Pergunta 4



A resposta
 isUserSmell() 


Explicações
Não há método isUserSmell () no SDK. Talvez no futuro, com o advento de sensores apropriados nos dispositivos ...

Vamos ver o que o restante dos métodos faz:

isUserMonkey () - o método foi projetado para verificar se o usuário é um teste na estrutura do teste de macaco automatizado.

isUserAGoat () - a partir da API 21, verifica se o aplicativo Goat Simulator GoatZ está instalado. Nas versões abaixo, o método sempre retorna false. Localizado na classe android.os.UserManager .

isFinalCountdown () - o método abre o clipe da banda Europa “The Final Countdown”. Adicionado à API 26. Localizado na classe android.widget.Chronometer .


Estatísticas de resposta





Questão 5



A resposta
 private static final int mobius = 2018 


Explicações
Esse conhecimento testado da palavra-chave const , que é usado para declarar compile time constants . No mundo Java, isso corresponde a modificadores static final .


Estatísticas de resposta





Pergunta 6


A resposta
 sdpi 


Explicações
Enquanto os desenvolvedores ouviram xhdpi e mdpi , as coisas são diferentes com o tvdpi . Ele não ganhou popularidade e, portanto, existem muito poucos dispositivos na categoria tvdpi , mas eles eram. O mais famoso deles é o Nexus 7 (2012).

Fonte

Observe que tvdpi possui um coeficiente de 1,3 em relação a mdpi.


Estatísticas de resposta





Pergunta 7


A resposta
       apk 


Explicações
AAPT (Ferramenta de empacotamento de ativos Android) - Uma ferramenta Android para criar arquivos .APK.

Condicionalmente, o trabalho desse utilitário pode ser dividido em dois estágios:
Compilação. Nesta fase, os recursos estão sendo preparados: a classe R é gerada, os recursos XML são traduzidos para o formato binário, processamento PNG, etc.
- Embalagem (ligação). Todos os arquivos intermediários criados no estágio de compilação são compactados no APK.

Quanto às opções de resposta restantes:
- A ofuscação do código geralmente é feita por programa.
- Java bytecode é o resultado do Java Compiler, que converte o código-fonte em Java bytecode.
- Dalvik bytecode é o resultado do Dalvik Compiler (DX, D8), que converte .class (Java bytecode) em .dex (Dalvik bytecode). O código-fonte no bytecode Dalvik não é transmitido diretamente.

O processo de criação de um aplicativo Android é descrito na documentação .


Estatísticas de resposta





Pergunta 8



A resposta
 RIGHT OUTER JOIN 


Explicações
Acima, RIGHT OUTER JOIN não é suportado.

Fonte


Estatísticas de resposta





Pergunta 9



A resposta
 2x 


Explicações
NomeDensidade
ldpi0,75
mdpi1
tvdpi1.3
hdpi1.5
xhdpi2
xxhdpi3 e 2.6
xxxhdpi4 e 3,5



Estatísticas de resposta





Pergunta 10


A resposta
 ART 


Explicações
ART (Android RunTime) é o novo tempo de execução do bytecode DEX que substitui o Dalvik. A diferença mais significativa entre Dalvik e ART é que Dalvik é baseado na compilação JIT ( Just-in-Time ), enquanto o ART é baseado em AOT ( Ahead-of-Time ). Em termos gerais, isso significa que a Dalvik converte o código de dalvik byte no código da máquina toda vez que o aplicativo é executado, e o ART faz isso uma vez, durante a instalação do aplicativo, armazenando o resultado na memória do dispositivo. Isso leva a um lançamento e execução mais rápidos de aplicativos no ART em comparação com o Dalvik, mas também aumenta o tempo de instalação do aplicativo. Além disso, o ART realizou a otimização do GC e também adicionou várias funções para melhorar o desenvolvimento e a depuração de aplicativos.

ART e Dalvik


Além disso, vale a pena notar que o ART também inclui um compilador JIT que complementa o AOT. Leia mais sobre isso aqui .


Estatísticas de resposta





Pergunta 11


A resposta
 YAGNI 


Explicações
BEIJO (Mantenha Simples, Estúpido) - não complique!

SECO (não se repita), MORRE (Duplicação É Mal) - não repita!

WTF (a quantidade de "chazan" por segundo) é uma unidade de medida da qualidade do código para uma revisão.

YAGNI (você não vai precisar) - você não vai precisar!


Estatísticas de resposta





Pergunta 12


A resposta
 Application Not Responding 


Explicações
ANR (Aplicativo Não Responde) - um problema que ocorre quando o encadeamento principal do aplicativo não pode processar eventos do usuário e redesenhar a interface do usuário.

No Android, a capacidade de resposta de um aplicativo é monitorada pelos serviços do sistema ActivityManager e WindowManager . Se uma das seguintes condições for verdadeira:

- não há reação aos eventos de entrada (eventos pressionados por teclas e teclas),
- BroadcastReceiver não é concluído dentro de 10 segundos,

o sistema notificará o usuário do problema, mostrando a caixa de diálogo ANR correspondente.


Estatísticas de resposta





Pergunta 13


A resposta
 Size & mode 


Explicações
O MeasureSpec foi projetado para transferir requisitos de tamanho dos componentes de exibição pai para filho. Esses requisitos são compilados em duas dimensões: largura e altura. Os valores para cada uma das medidas são compostos: a primeira parte contém informações sobre o espaço disponível (em pixels), a segunda parte contém restrições sobre o uso do espaço disponível. Essas restrições podem incluir o seguinte:

MeasureSpec.UNSPECIFIED - sem restrições, a visualização pode ter o tamanho que for necessário.

MeasureSpec.EXACTLY - tamanhos exatos são definidos, veja essas bordas serão fornecidas.

MeasureSpec.AT_MOST - tamanhos máximos determinados. A vista pode ser tão grande quanto desejar, mas até o tamanho especificado.


Estatísticas de resposta





Pergunta 14


A resposta
 Linux Kernel 


Explicações

Kernel do Linux (kernel do Linux) - essa camada fornece o funcionamento do sistema e é responsável pela segurança, gerenciamento de memória, processos e também fornece uma pilha de rede e um modelo de driver (driver de vídeo, driver de câmera e outros drivers).

Bibliotecas (bibliotecas) é uma camada intermediária de software projetada para fornecer funcionalidade básica para aplicativos como suporte a formatos de arquivo, informações de codificação e decodificação (por exemplo, codecs), renderização de gráficos e muito mais (Surface Manager, Media Framework, SQLite e outro).

Tempo de execução do Android - localizado no mesmo nível das bibliotecas. Os principais componentes aqui são a Dalvik VM e várias bibliotecas principais (principais bibliotecas).

Estrutura de Aplicação - nível da estrutura de aplicação. É através das estruturas de aplicativos que os desenvolvedores obtêm acesso às APIs que estão abaixo do nível. Eles incluem: ActivityManager, Gerenciador de Pacotes, Gerenciador de Janelas etc.

Aplicativos - o nível de aplicativos, básicos (pré-instalados no sistema operacional: navegador, calendário, contatos etc.) e instalados pelo usuário.

Observe que os autores do questionário são da velha escola, porque na documentação oficial, as camadas são destacadas de outra maneira: source.android.com/devices/architecture .


Estatísticas de resposta





Pergunta 15


A resposta
 invokeabstract 


Explicações
Ir para - pule para outra instrução.

invokeinterface - usado para chamar métodos de interface.

invokestatic - usado para chamar métodos estáticos.

Descrição de outras instruções .


Estatísticas de resposta



Source: https://habr.com/ru/post/pt434210/


All Articles