我有一个仅在ARM CPU上运行的Android应用程序。这是因为我在APK中包含了一个ARM可执行文件。但是,经过相当多的搜索,我一直无法找到任何方式来指示(在清单文件或类似的东西中)应用程序将无法在其他体系结构上运行。
通常,想要包含本机代码的应用程序包括共享库。在这种情况下,应用程序仅在具有兼容CPU的用户的Play商店中显示。但是,使用共享库不是我的应用程序的选项。
项目的清单文件或其他地方是否有一些地方可以明确指出应用程序支持的CPU架构?
答案 0 :(得分:1)
但是,使用共享库不是我的应用程序的选项。
从理论上讲,它应该是。使用NDK创建一个与Java无关的小JNI兼容库,并且仅为您的打包二进制支持的体系结构(例如,ARMv5和ARMv7)构建它。您可能甚至不必使用该库(尽管我设置了一个引用它的Java类是安全的,至少在初始测试期间)。 应足以触发Play Store过滤器,即使您从未在运行时实际调用过代码。
IOW,使用NDK的东西只是为了过滤。
就个人而言,出于性能原因,我会将命令行二进制文件重写为NDK构建的JNI兼容库,但这只是我。
答案 1 :(得分: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's Official Documentation