这可能是一个重复的问题,但我无法找到它.
我想知道如何使用代码获得手机的ABI.我知道gradle文件中可能有不同的接口.但问题是如何才能准确获取某个设备的ABI,以便我可以使用SuperSU手动将其复制到system / lib /文件夹.
谢谢.
我想知道如何使用代码获得手机的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