Os aplicativos Android poderiam ser executados no Ubuntu touch nativamente?

28

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?

user287536
fonte
1
O ambiente de área de trabalho é um grande fator no qual um aplicativo é compatível.
Patrick C. James
8
Esta é realmente uma boa pergunta. Nooby de fato, mas muito válido. Tenha um voto positivo.
don.joey
Concordo com @ don.joey, já que isso não é algo facilmente pesquisável além de um tipo de conclusão "sim" ou "não".
MGodby
Houve alguma discussão interessante sobre o ubuntu live mais recente, que abordou grande parte deste tópico: youtube.com/watch?feature=player_embedded&v=etMduYRRwDc 25:00 27:10 52:45 54:47 55:20 <carimbos de data e hora relevantes pontos
Mateo
Também não é um problema que eles provavelmente tenham CPUs diferentes?
quer

Respostas:

24

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.

MGodby
fonte
3
Correto - executar um conjunto de bibliotecas de telefone em um desktop 10 vezes mais poderoso é extremamente ineficiente ? Estamos executando emuladores de telefones celulares em desktops há uma década.
MSalters 10/10
3
Eu respondi com a premissa de que o autor da pergunta quis dizer nativamente, ou seja, sem emuladores ou virtualização.
MGodby
5
@MSalters Um emulador usaria mais recursos para produzir a mesma saída em comparação com um programa nativo. Essa é praticamente a definição de ineficiência. E os emuladores do Android são particularmente lentos na minha experiência.
Jthew # 11/14
1
@jmathew Do ponto de vista de um desenvolvedor (pelo menos o meu), um benefício é que, se um aplicativo for razoavelmente bem em um emulador em uma máquina lenta, ele terá um desempenho razoavelmente bom nas pilhas de telefones baratos por aí.
zxq9
2
@jmathew Acho que o que os MSalters estavam tentando dizer era que, quando há muitos anos é prático usar um emulador, não há como executar a mesma coisa nativamente ser ineficiente.
kasperd
1

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 '

patrick
fonte
1

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.

Faizan Akram Dar
fonte