为什么我不能在Linux上执行Android x86可执行文件

苏西·多加(Suici Doga)

我试图将Android应用程序移植到Linux(别笑了:),但遇到了一个问题。app_process添加可执行文件权限后,尝试执行Android可执行文件()时,该文件./app_process不存在,尽管cat ./app_process可以使用。

同样在我的文件管理器(Pantheon Files)中,可执行文件显示共享库图标。

有什么方法可以使它们在Linux上执行。

吉勒斯“别再邪恶了”

Android和Linux是两种不同的操作系统您不能只是从一个文件中获取可执行文件,然后在另一个文件上运行它。

第一个障碍是内核。Android和Linux基于相同的内核,但是它们具有一些不同的功能。特别是,Android提供了绑定器,该绑定器自3.19版以来仅存在于主流内核(在Linux发行版中找到的一种)中。纯粹的本机代码应用程序可能不使用活页夹,但大多数Java应用程序都使用活页夹。

第二个障碍是动态库。如果您具有动态链接的可执行文件,它将调用动态链接器。Android和Linux具有不同的动态链接器,并且如果不存在动态链接器,您将得到与没有可执行文件本身相同的错误

如果复制动态链接器及其所需的配置文件和本机库,则应该能够运行大多数本机程序。您需要复制大部分内容/system,并且副本必须位于/system

如果要运行Java应用程序,则更为复杂。您需要Java运行时环境(Dalvik / ART),并且大多数应用程序还需要一些Android守护程序(某些本机代码应用程序也需要那些恶魔)。

结果是,虽然两个系统可以共存于一个内核上,但是这需要是一个足够新的内核,或者是一个Android内核(一个Android内核可以运行大多数Linux应用程序),并且两个操作系统都需要安装-您不能只是彼此运行一个应用程序。

我不知道可以在Linux之上安装任何现成的Android安装程序。相反,有一些安装程序,特别是LinuxonAndroid

如果目标是在Linux系统上运行Android应用程序,那么到目前为止,最简单的方法是在模拟器中运行它,该模拟器是Android开发工具的一部分

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

运行x86可执行文件时出现错误“ 16434非法硬件指令./a.out”

来自分类Dev

单个 gcc 可以为 x86、arm、ppc 等多个目标生成可执行文件吗?

来自分类Dev

在 X86-64 Ubuntu 20.04 上,为什么我的 32 位可执行文件不是?

来自分类Dev

ARM Linux可执行文件神秘地在x86_64上运行

来自分类Dev

比较64位x86平台上的PIE,PIC代码和可执行文件有什么区别?

来自分类Dev

XORing可执行文件时,为什么我的XOR程序不能在Windows上运行

来自分类Dev

chmod + x与sudo可执行文件之间的区别

来自分类Dev

在 x86_64 系统上运行 x86-64 可执行文件无法执行二进制文件:Exec 格式错误

来自分类Dev

覆盖默认的/lib64/ld-linux-x86-64.so.2以调用可执行文件

来自分类Dev

如何运行可执行文件(应用程序/ x-可执行文件)?

来自分类Dev

哪个文件是可执行文件

来自分类Dev

为什么我的64位可执行文件比32位可执行文件大3倍?

来自分类Dev

为什么我不能使用gcc生成“ Hello World”可执行文件?

来自分类Dev

为什么我们不能删除正在运行的可执行文件

来自分类Dev

ELF可执行文件

来自分类Dev

运行可执行文件的语法?

来自分类Dev

无法加载可执行文件

来自分类Dev

包含数据的可执行文件

来自分类Dev

带可执行文件的RPMbuild

来自分类Dev

Git:使用可执行文件

来自分类Dev

Gitignore可执行文件

来自分类Dev

如何安装可执行文件

来自分类Dev

如何查找可执行文件

来自分类Dev

运行可执行文件

来自分类Dev

扫描Java可执行文件

来自分类Dev

可执行文件的路径

来自分类Dev

找不到可执行文件

来自分类Dev

qmake不是可执行文件

来自分类Dev

奇怪的cygwin可执行文件

Related 相关文章

热门标签

归档