Googleplay不会过滤x86设备

时间:2016-02-25 02:33:42

标签: android android-ndk x86 google-play native

我生成了一个使用ndk-build命令构建的.so文件。在Application.mk文件中,我写了这些:APP_ABI:= armeabi。然后,我在另一个应用程序中使用了这个.so文件,但我发现该应用程序在使用x86设备的Google Play中可见。

来自文档(http://developer.android.com/google/play/filters.html):包含使用Android NDK构建的本机库,这些库针对特定的CPU架构(例如ARM EABI v7或x86)。

现在我很困惑,我该怎么办才能让我的应用对GooglePlay中的x86设备不可见?

我们在GooglePlay上发布了一个应用程序,该应用程序将在x86设备中崩溃。因此,我们希望在GooglePlay中使应用程序对x86设备不可见。现在我们将.so文件放在jniLibs目录下的armeabi目录中,但是x86设备仍然可以在GooglePlay中找到该应用程序。

1 个答案:

答案 0 :(得分:2)

Google Play可能取决于x86具有转换层的事实,该转换层将采用armeabi代码并转换为x86。请参阅:How does native android code written for ARM run on x86?

虽然我不知道为什么你的特定应用程序无法在x86上运行,但处理它的一种方法是在应用程序通过旧版本启动时检查CPU /架构

Build.CPU_ABI

或在API 21及以上

Build.SUPPORTED_ABI

http://developer.android.com/reference/android/os/Build.html#CPU_ABI

并阻止用户在遇到CPU体系结构等条件时运行您的应用程序。因此,在启动时,您将检查设备是否正确,并通过对话框降级和/或阻止用户访问将崩溃的功能。

修改

如果您需要阻止设备查看您的应用,则必须使用Google Play开发者控制台选择哪些设备可以看到您的应用。

请参阅:How to restrict android app to specific device make?

https://support.google.com/googleplay/android-developer/answer/1286017?hl=en

当然,随着新的x86设备上线,你也必须将它们删除。