【问题标题】:Can i include linux executables in my android application?我可以在我的 android 应用程序中包含 linux 可执行文件吗?
【发布时间】:2021-11-14 00:00:17
【问题描述】:

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

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

android linux 可执行版本7z 会怎么样? 在 android 上使用我的 python 脚本?

【问题讨论】:

  • 只要存在依赖关系并且它是紧密的 CPU 架构,它就会。现在大多数 Android 设备都使用 ARM64,但也可能有 Intel x64 设备,可能还有其他设备......
  • 请注意,您提出的内容违反了 Play 商店分发规则的条款,可能还有其他应用分发渠道有类似限制。

标签: python android linux exe 7zip


【解决方案1】:

这取决于手机的 CPU 架构。 安卓智能手机最常见的 CPU 处理器类型是 arm、arm64、x86。

当您在 linux 系统(debian、ubuntu)上构建 linux 二进制文件时,您必须考虑到既没有完整的标准 C 库,例如glibc,也不是像 dietlibc 这样更快更小的嵌入式 libc 在 android 上。

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

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

【讨论】:

    猜你喜欢
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多