如何在android中获得ABI(应用程序二进制接口)

这可能是一个重复的问题,但我无法找到它.
我想知道如何使用代码获得手机的ABI.我知道gradle文件中可能有不同的接口.但问题是如何才能准确获取某个设备的ABI,以便我可以使用SuperSU手动将其复制到system / lib /文件夹.
谢谢.
android.productFlavors {
        // for detailed abiFilter descriptions,refer to "Supported ABIs" @
        // https://developer.android.com/ndk/guides/abis.html#sa
        create("arm") {
            ndk.abiFilters.add("armeabi")
        }
        create("arm7") {
            ndk.abiFilters.add("armeabi-v7a")
        }
        create("arm8") {
            ndk.abiFilters.add("arm64-v8a")
        }
        create("x86") {
            ndk.abiFilters.add("x86")
        }
        create("x86-64") {
            ndk.abiFilters.add("x86_64")
        }
        create("mips") {
            ndk.abiFilters.add("mips")
        }
        create("mips-64") {
            ndk.abiFilters.add("mips64")
        }
        // To include all cpu architectures,leaves abiFilters empty
        create("all")
    }

解决方法

有两种方法可以做到这一点.一个已被弃用但仍然有效,而另一个则要求手机运行Android 5.0或更高版本.

贬值的方式

如果您想支持所有当前的手机,您可以使用:

import android.os.Build;
String ABI = Build.CPU_ABI;

更新的方式

更新的方式实际上将提供所有支持的ABI的列表,第一个索引是最喜欢使用的ABI(API Reference):

import android.os.Build;
String ABI = Build.SUPPORTED_ABIS[0];

两种方式都经过测试,可以在Android 5.1.1上运行,它们将返回以下内容之一:

> armeabi
> armeabi-v7a
> armeabi-v7a-hard
> arm64-v8a
> x86
> x86_64
> mips
> mips64

未来的ABI应列于此处:https://developer.android.com/ndk/guides/abis.html#sa

相关文章

Android 如何解决dialog弹出时无法捕捉Activity的back事件 在...
Android实现自定义带文字和图片的Button 在Android开发中经常...
Android 关于长按back键退出应用程序的实现最近在做一个Andr...
android自带的时间选择器只能精确到分,但是对于某些应用要求...