3

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

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

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

4

2 回答 2

2

但是,使用共享库不是我的应用程序的选项。

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

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

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

于 2013-05-14T20:49:07.470 回答
0

这可能是您正在寻找的

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 的官方文档

于 2013-05-14T19:22:42.620 回答