Questão de Sistemas Operacionais — Sistemas Operacionais para Dispositivos Móveis (IOS, Android, etc.) — FGV 2024
Sistemas Operacionais›Sistemas Operacionais para Dispositivos Móveis (IOS, Android, etc.)
Código
fg165641
Banca
FGV
Órgão
ALETO
Ano
2024
Cargo
Ana Leg ( )
A partir do Android 5.0 ocorreram mudanças na Máquina Virtual do Android.
Em relação a essas mudanças, é correto afirmar que
Aa máquina virtual ART (Android Runtime) foi substituída pela nova versão Dalvik.
Ba compilação passou a ser Ahead-of-time (AOT).
Ca compilação passou a ser Just-In-Time (JIT).
Do bytecode (.class) passou a ser complicado e convertido no formato .apk (Android Package File).
Eos aplicativos ART e aplicativos nativos passam a ser executados em diferentes ambientes de segurança fora do Application Sandbox.
Revelar gabarito e comentário▾
GabaritoB — a compilação passou a ser Ahead-of-time (AOT).
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Máquina Virtual Android: Dalvik → ART
Gabarito: letra B. A partir do Android 5.0 (Lollipop), a máquina virtual Dalvik foi substituída pela ART (Android Runtime), e a compilação dos aplicativos passou a ser Ahead-of-Time (AOT) — ou seja, o bytecode é compilado para código nativo no momento da instalação, em vez de ser interpretado/compilado em tempo de execução como fazia o Dalvik com JIT. Essa é a mudança central que a questão cobra.
A máquina virtual é o componente do Android responsável por executar o código das aplicações. Até o Android 4.4, o sistema usava a Dalvik VM, que interpretava o bytecode Dalvik (.dex) e utilizava compilação JIT (Just-In-Time): o código era compilado para código de máquina apenas durante a execução, o que gerava um custo de desempenho a cada execução do aplicativo. A partir do Android 5.0, a Dalvik foi substituída pela ART (Android Runtime), que introduziu a compilação AOT (Ahead-of-Time): o aplicativo é compilado para código nativo no momento da instalação, eliminando a necessidade de compilação em tempo de execução e melhorando o desempenho e o consumo de bateria.
Na prática, o fluxo de execução mudou: antes, o bytecode .dex era interpretado pela Dalvik com JIT; depois, o bytecode .dex é compilado pela ART em código nativo na instalação (AOT). Isso significa que a primeira execução de um aplicativo pode ser mais lenta (devido à compilação na instalação), mas as execuções subsequentes são mais rápidas, pois o código já está em linguagem de máquina. Essa é a distinção fundamental entre JIT e AOT que a banca explora.
A pegadinha da questão está em inverter os conceitos: a alternativa C afirma que a compilação passou a ser JIT, mas isso era o comportamento anterior (Dalvik), não o novo. A alternativa A inverte a ordem, dizendo que a ART foi substituída pela Dalvik, quando o correto é o oposto. A alternativa D mistura formatos de arquivo (.class, .apk) de forma incorreta, e a alternativa E inventa uma separação de ambientes de segurança que não corresponde à mudança.
Guarde a fronteira entre JIT (compilação em tempo de execução — Dalvik) e AOT (compilação na instalação — ART): é exatamente nela que as alternativas se dividem.
1Dalvik VM (até 4.4)
2JIT — compila em execução
3ART (desde 5.0)
4AOT — compila na instalação
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Afirma que a ART foi substituída pela Dalvik, invertendo a ordem histórica. Na verdade, a Dalvik foi a máquina virtual original do Android, e a ART a substituiu a partir do Android 5.0. A banca troca os papéis para confundir o candidato.
Alternativa B — ✅ Correta ⟵ GABARITO
A compilação passou a ser Ahead-of-Time (AOT) com a introdução da ART no Android 5.0. O aplicativo é compilado para código nativo no momento da instalação, em vez de ser compilado em tempo de execução (JIT). Essa é a mudança central da nova máquina virtual.
Alternativa C — ❌ Incorreta
Afirma que a compilação passou a ser Just-In-Time (JIT), mas o JIT era o mecanismo da Dalvik (anterior ao Android 5.0). A mudança foi justamente a adoção do AOT, que substitui o JIT. A banca usa o conceito antigo como se fosse o novo.
Alternativa D — ❌ Incorreta
Mistura formatos de arquivo de forma incorreta. O bytecode Java (.class) é convertido para bytecode Dalvik (.dex), e não para .apk. O .apk é o pacote de instalação do aplicativo (contém o .dex, recursos, manifest, etc.), não um formato de bytecode. A conversão descrita não existe.
Alternativa E — ❌ Incorreta
Inventa uma separação de ambientes de segurança entre aplicativos ART e nativos, fora do Application Sandbox. Na verdade, todos os aplicativos Android (sejam Java/ART ou nativos) são executados dentro do Application Sandbox, que é o mecanismo de isolamento de segurança do Android baseado em processos Linux. Não há ambientes separados como descrito.
NÃO CAIA NESSA!
A banca adora inverter os conceitos de JIT e AOT. Lembre-se: Dalvik = JIT (compilação em tempo de execução) e ART = AOT (compilação na instalação). Se a alternativa disser que o Android 5.0 passou a usar JIT, está errada — o JIT era o mecanismo antigo. Com treino, você enxerga essas trocas de longe 💪