Clique e receba as novidades quentinhas no Telegram

É um prazer revê-los!

Conhecimento é algo que se multiplica quando compartilhado. Certo? Então, há poucos dias o Alexandre me enviou uma correspondência solicitando que lhe explicasse como é possível a execução de aplicativos Android (Apk) no Windows 10 Mobile (AppX). Ele já tinha lido bastante sobre o assunto e não entendia com acontecia. Está querendo saber seu conteúdo?

Fofoqueiro, hein leitor!  Tudo bem. Afinal, essa publicação é para você mesmo. Delicie-se:

“Grande Márcio:
Recentemente fiz uma postagem no site sobre a tal emulação de apps do Android no Windows 10 Mobile, ou será que é um subsistema?
Meu, mesmo pesquisando muito não consigo entender como isso funcionará. Preciso da sua ajuda pra entender isso. Sei que você é O Cara para me ajudar a entender isso. Um post seu esclarecedor seria muito melhor, mas, se não der, me explicar já seria o máximo.
Abraços,
Alexandre Lima”
images.duckduckgo.com 2

Educadamente respondi:

“Alexandre:

Tenho lido sua publicação sim e percebo que está meio confuso. Relaxa… não é tão simples de entender mesmo e não há demérito algum.

O princípio dos subsistemas está nos programas navegadores de internet. Todo código-fonte de um browser traz consigo um interpretador de linguagens próprias da rede e que está escrito numa linguagem de programação diferente das compatíveis com o sistema operacional e seu kernel.

As linguagens de programação executadas no interior de alguns programas são as linguagens de script ou linguagem de scripting ou linguagem de extensão, com destaques a JavaScript, TypeScript e Lua.

A internet utiliza-se da linguagem HTML, a linguagem de marcação que produz as páginas da Web, arquivos escritos em HTML que são interpretados pelos programas navegadores de internet. O programa de navegação está escrito, geralmente, em linguagem C++ e o sistema operacional e o kernel também em C++. As funções que serão executadas por ele, em linguagem script. A internet em HTML.

Logo, é necessário que os navegadores saibam interpretar a linguagem da Web. Esse interprete da linguagem da Web é chamado de engenho, motor de engenho ou engine. A forma com ele deve realizar sua função, interpretar a linguagem da internet, está prevista e marcada no conjunto de instruções da linguagem de extensão, a script, daí a popular expressão, engine, na nossa língua motor, pois é ela que impulsiona esse tradutor automático.

Como diz um certo alguém: “Entende?”

Vamos a um exemplo prático:

Eu estou na Terra e você em Marte. Eu sou americano (falo inglês) e você brasileiro (fala português). Ok? Para nos comunicarmos é necessário algo capaz de viajar pelo Universo (a linguagem da Web) e um veículo (o browser com motor de linguagem script).

Você em Marte me envia seu pensamento (o documento Html) através do veículo (linguagem script). Eu, na Terra, recebo sua mensagem (Html) de forma compreensível (Script). Logo, sua mensagem necessita do veículo que possa ser entendido (Sistema Operacional em C++) de forma compreensível (ao Kernel em C++). Ou seja, a cada mudança de linguagem eu uso um tradutor de linguagem tornando a comunicação compreensível.

Temos:

  • Remetente: Html (Internet) <=> Script (Browser – Engine)  <=> C++ (OS) <=> C++ (Kernel) <=> Hardware …
  • Destinatário: … Hardware <=> C++ (Kernel) <=> C++ (OS) <=> Script (Browser – Engine) <=> Html (Internet).

images.duckduckgo.com3


Ah, tá a Microsoft.

Ok, o que fez a Microsoft no Windows 10?

Aplicou esse mesmo princípio, só que diretamente em seu sistema operacional. O Windows Runtime em sua versão para telefones traz consigo um tradutor de códigos Java e C++, linguagens usadas para a criação de aplicativos Android, (uma engine Android). Como todos podem visualizar não há emulação, há execução de códigos fonte originalmente programados para outra plataforma.

Se fizer uso do Edge você pode ativar ou desativar o Flash nativo (engine nativa para Flash embutida no Edge), mesmo princípio. O uso de engenho nativo é bastante diferente de emulação, a classe, nível da estrutura de programação, está diretamente sobre o Kernel em igualdade com o OS. Emulador está sobre o OS é uma classe entre o OS e o programa em execução.

  • Windows 10: Kernel > OS e Engine > App Android e App Windows
  • Emulação: Kernel > OS > Software > App de outra plataforma

E não é o único engenho, já que o engenho do Edge também está integrado nativamente ao sistema operacional Windows, afinal como você acha que o sistema executa nativamente os aplicativos compilados no Visual Studio a partir das páginas de Internet?

Tcham, tcham, tcham, tcham!

E não é a única, pois a Canonical fez o mesmo com o Ubuntu e os aplicativos Web em JavaScript e multiplataforma em C++, ou não?

Marcio.”

E dava para recusar?

Pessoalmente, sou contrário à Ponte para o Android e totalmente favorável à Ponte para iOS, Web e Programas Clássicos do Windows. Não por seu objetivo, atrair a atenção de programadores para sua plataforma, mas pela sua execução.

Porém… vida que segue.