【问题标题】:How to indicate that an Android app only supports ARM CPUs?如何表明 Android 应用程序仅支持 ARM CPU?
【发布时间】:2013-05-15 04:49:07
【问题描述】:

我有一个只能在 ARM CPU 上运行的 Android 应用程序。这是因为我在 APK 中包含了一个 ARM 可执行文件。然而,经过相当多的搜索,我无法找到任何方法来表明(在清单文件或类似文件中)该应用程序不会在其他架构上运行

通常,想要包含本机代码的应用程序包括一个共享库。在这种情况下,只有具有兼容 CPU 的用户才会在 Play 商店中显示该应用。但是,我的应用不能选择使用共享库。

项目的清单文件或其他地方是否有我可以明确指出应用支持的 CPU 架构的地方?

【问题讨论】:

标签: android arm cpu-architecture


【解决方案1】:

但是,我的应用不能选择使用共享库。

理论上应该是这样。使用 NDK 创建一个无操作的小型 JNI 兼容库,并且只为您的打包二进制支持的架构(例如 ARMv5 和 ARMv7)构建它。您甚至可能不必使用该库(尽管我设置了一个引用它的 Java 类以确保安全,至少在初始测试期间如此)。这应该足以触发 Play 商店过滤器,即使您从未在运行时实际调用过代码。

IOW,使用 NDK 的东西只是为了过滤。

就个人而言,出于性能原因,我会将您的命令行二进制文件重写为 NDK 构建的 JNI 兼容库,但这只是我个人的想法。

【讨论】:

  • 嘿 - 现在这很聪明!好主意!
  • @NathanOsman:测试这一理论的一种方法是查看摩托罗拉 RAZR i 是否被列为支持的设备,因为这是我能想到的基于 x86 的手机绝对支持 Play 商店。
【解决方案2】:

这可能就是你要找的东西

TextView tv_showArch_View = (TextView)findViewById(R.id.ShowCPUArch);
        String CPU_ABI = Build.CPU_ABI;

        tv_showArch_View.setText(CPU_ABI);

它还给我

ARMeabi 用于在 ARM processor 上运行的模拟器

X86 用于在Intel processor 上运行的模拟器

欲了解更多详情,请联系Google's Official Documentation

【讨论】:

  • 是的,但这并不妨碍应用在 Play 商店中显示给使用 x86 或 MIPS CPU 的用户。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-14
  • 1970-01-01
  • 1970-01-01
  • 2013-11-29
  • 1970-01-01
  • 2021-08-26
相关资源
最近更新 更多