Eu tenho usado o dardo / flutter em alguns projetos e estou gostando muito.
Li que, ao criar um aplicativo móvel, o dart cria um aplicativo nativo com código nativo. Mas também li que o dart tem sua própria VM para desempenho.
O que estou tentando entender é se essa VM éo que é usado quando você cria um aplicativo móvel ou está construindo outro código que ele compila para o aplicativo nativo. E se estiver fazendo outra coisa, para que a VM dardo ainda é usada?
Respostas:
17 para resposta № 1Resposta curta: sim, o Dart VM ainda está sendo usado quando você cria seu aplicativo móvel.
Agora resposta mais longa: o Dart VM possui dois modos de operação diferentes, um JIT e AOT.
No modo JIT, o Dart VM é capaz de dinamicamentecarregando a fonte do Dart, analisando-a e compilando-a no código da máquina nativa em tempo real para executá-la. Esse modo é usado quando você desenvolve seu aplicativo e fornece recursos como depuração, recarga a quente, etc.
No modo AOT, o Dart VM não suporta carregamento / análise / compilação dinâmicos do código-fonte do Dart. Ele suporta apenas o carregamento e a execução pré-compilado Código da máquina. No entanto, mesmo o código de máquina pré-compilado ainda precisa da VM para ser executada, porque a VM fornece sistema de tempo de execução que contém coletor de lixo, vários métodos nativos necessários para dart:*
bibliotecas para funcionar, informações sobre o tipo de tempo de execução, pesquisa dinâmica de métodos etc. Esse modo é usado no aplicativo implantado.
De onde vem o código de máquina pré-compilado para o modo AOT? Esse código é gerado pela (um modo especial da) VM do seu aplicativo Flutter quando você cria seu aplicativo no modo de liberação.
0 para resposta № 2
A Dart VM é perfeitamente adequada para aplicativos do lado do servidor, principalmente usando dart:io
para acessar arquivos, processos e soquetes locais.