Gostaria de saber por que os aplicativos Android não poderão ser executados nativamente no Ubuntu Touch . Quero dizer, não é tudo apenas Linux?
Gostaria de saber por que os aplicativos Android não poderão ser executados nativamente no Ubuntu Touch . Quero dizer, não é tudo apenas Linux?
Respostas:
A resposta curta é não."
A rigor, o kernel do Linux fornece pouco mais do que uma interface direta para o hardware em que está sendo executado. Existe uma pilha inteira de APIs, programas, aplicativos, etc. específicos de telefones Android, dos quais os aplicativos Android dependem. Além disso, o Android não roda em um kernel Linux genérico, mas em um que foi altamente personalizado pelo Google com o objetivo específico de executar o SO.
Mesmo que seja tecnicamente possível reproduzir toda a pilha necessária para a execução de aplicativos Android em outro sistema, ela será inchada e extremamente ineficiente.
O Nokia n900 roda maemo witch, que é um sistema operacional linux e, no entanto, ele pode executar o aplicativo do Android através do ambiente dalvik que foi desenvolvido para ele, mas que nunca foi colocado no mercado ou em repositórios. Por quê? Somente a sociedade que desenvolveu o dalvik para o ano 900 sabe. Agora havia outra iniciativa chamada apkenv. Parece que não havia muita coisa a acrescentar para fazer o n900 rodar alguns jogos para Android e não importa o poder da gpu ou da cpu ou o desktop do maemo, os aplicativos rodam lá em algum lago, como em qualquer emulação, mas alguns rodam perfeitamente, outros não. Então, sobre o ubuntu touch, não é uma questão de técnica (pode estar errado, mas um telefone de toque oficial do ubuntu é um xiaomi que é usado para o Android também, portanto, o hardware não é um problema neste caso), mas a vontade e a lei são que o google ganhou '
A resposta para sua pergunta é um GRANDE NÃO.
O Android é completamente diferente do Ubuntu Touch, embora o Android seja baseado no kernel do Linux, mas isso não significa que os aplicativos nativos do Android possam ser executados no Linux e vice-versa.
A semelhança no kernel entre diferentes sistemas operacionais não torna seus aplicativos executáveis nesses diferentes sistemas operacionais. Kernel é a camada de software mais baixa de um sistema. Acima do kernel está o espaço do usuário, que consiste no software do sistema e na interface do aplicativo .
O SO com o mesmo kernel pode ter espaços de usuário totalmente diferentes e aplicativos nativos executados em um espaço de usuário específico.
Além disso, aplicativos Android são desenvolvidos geralmente usando java e aplicativos Android executados em um ambiente de tempo de execução ( Dalvik ou ART ), que utiliza o bytecode da JVM como entrada, enquanto os aplicativos linux são convertidos diretamente em código de máquina durante a compilação.
Os aplicativos desenvolvidos para Android usando C ++ não podem ser executados diretamente no ambiente Linux, mas precisam ser compilados primeiro para sistemas Linux.