我可以在我的 android 应用程序中包含 linux 可执行文件吗?

Can i include linux executables in my android application?

我创建了一个 python 应用程序,它在 windows 上调用 7z.exe 的子进程,在 linux 上调用 7z 并且它工作正常。

subprocess.run('7z x ...')

android 7z 的 linux 可执行版本呢? 在 android?

上使用我的 python 脚本

这取决于 phone 的 CPU 架构。 android smartphone 最常见的 CPU 处理器类型是 arm、arm64、x86。

当您在 linux 系统(debian,ubuntu)上构建 linux 二进制文件时,您必须考虑,既没有完整的标准 C 库,例如glibc, nor a faster smaller embedded libc like dietlibc 在 android。

因此,您必须编译一个包含所有链接库的静态二进制文件,并可能使用 gcc 为几个最常见的 android cpus 交叉编译二进制文件。

Java vm 抽象是 android 应用程序的标准。 当您从 android 应用程序执行 linux 二进制文件时,例如 SDMaid does it,请注意,二进制文件将位于应用程序数据分区内(具有该分区的所有安装限制)并且它将在 Android 应用程序的 UserId 和 GroupId 下 运行。 (UserId 和 GroupId 通常在任何 android phone 上都是不同的,因为它们取决于特定应用程序的安装顺序以及从 android phone 供应商预装的应用程序数量).