Estou tentando portar aplicativos Android para Linux (não ria :) e me deparei com um problema. Ao tentar executar um executável do Android ( app_process
) após adicionar a permissão do executável, ./app_process
ele diz que não existe, embora cat ./app_process
funcione.
Também no meu gerenciador de arquivos (Pantheon Files), o executável mostra o ícone da biblioteca compartilhada.
Existe alguma maneira de executá-los no Linux.
Responder1
Android e Linux são dois sistemas operacionais diferentes. Você não pode simplesmente pegar um executável de um e executá-lo no outro.
O primeiro obstáculo é o kernel. Android e Linux são baseados no mesmo kernel, mas possuem alguns recursos diferentes. Em particular, o Android fornecefichários, que só existe no kernel mainstream (aquele encontrado nas distribuições Linux) desde a versão 3.19. Um aplicativo de código nativo puro pode não usar fichários, mas a maioria dos aplicativos Java usa.
O segundo obstáculo são as bibliotecas dinâmicas. Se você tiver um executável vinculado dinamicamente, ele invocará o vinculador dinâmico. Android e Linux têm vinculadores dinâmicos diferentes e, se o vinculador dinâmico não estiver presente,você recebe o mesmo erro como se o próprio executável não estivesse presente.
Se você copiar o vinculador dinâmico, os arquivos de configuração necessários e as bibliotecas nativas, poderá executar a maioria dos programas nativos. Você precisará copiar a maior parte /system
e a cópia precisa estar localizada em /system
.
Se você deseja executar aplicativos Java, é mais complicado. Você precisa do ambiente de execução Java (Dalvik/ART), e a maioria dos aplicativos também exige alguns daemons Android (alguns aplicativos de código nativo também exigem esses demônios).
O resultado é que, embora os dois sistemas possam coabitar em um kernel, este precisa ser um kernel recente o suficiente ou um kernel Android (um kernel Android pode executar a maioria dos aplicativos Linux) eambos os sistemas operacionais precisam ser instalados— você não pode simplesmente executar um aplicativo de um para o outro.
Não conheço nenhum instalador pronto para Android em cima do Linux. Existem instaladores para o contrário, no entanto, em particularLinux no Android.
Se o objetivo é rodar um aplicativo Android em um sistema Linux, então a maneira mais fácil é executá-lo dentro do emulador que faz parte doFerramentas de desenvolvimento Android.