假设大多数 android 处理器都是 ARM 类型,但为了测试,模拟器大多是 x86 类型。我的 native 库仅在 ARM 上运行,我只想为 x86 放置虚拟代码以创建单元测试。我知道简单的 try/catch 就足够了,但问题是我想为单元测试创建带有虚拟代码的接口(interface)。
我试过了,
System.Reflection.PortableExecutableKinds peKind;
System.Reflection.ImageFileMachine machine;
typeof(object).Module.GetPEKind(out peKind, out machine);
我为 .net 找到了各种答案,但在 Android 中,我总是得到 x86,虽然我在设备上运行应用程序,但它没有给我正确的答案。
type(object).Assembly.GetName().ProcessorArchitecture
始终返回 x86。
最佳答案
您可以使用 Android.OS.Build Class帮助您确认设备是 ARM 还是 Intel x86 ( Intel ) armeabi-v7a
或 x86
等
IList<string> abis = Android.OS.Build.SupportedAbis;
或者
您可以使用 Java.Lang.JavaSystem.GetProperty Method获取操作系统架构,armv71
和i686
等
string osArchitecture = Java.Lang.JavaSystem.GetProperty("os.arch");
关于android - 如何识别 Xamarin.Android 中的处理器架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37112544/