我试图将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] 删除。
我来说两句