如何在Xamarin.Android中识别处理器架构?

时间:2016-05-09 09:46:58

标签: android .net xamarin

让我们说大多数Android处理器都是ARM类型,但是对于测试,仿真器大多数是x86类型。我只在ARM上运行的本机库,我只想为x86添加虚拟代码以创建单元测试。我知道简单的try / catch就足够了,但问题是我想用单元测试的虚拟代码创建接口。

我试过了,

        System.Reflection.PortableExecutableKinds peKind;
        System.Reflection.ImageFileMachine machine;
        typeof(object).Module.GetPEKind(out peKind, out machine);

我为.net找到了各种答案,但在Android中,我总是得到x86,虽然我在设备上运行app,但它没有给我正确答案。

  type(object).Assembly.GetName().ProcessorArchitecture 

始终返回x86。

1 个答案:

答案 0 :(得分:3)

您可以使用Android.OS.Build Class来帮助您确认设备是ARM还是Intel x86(Intelarmeabi-v7ax86等。

IList<string> abis = Android.OS.Build.SupportedAbis;

<强>替代地

您可以使用Java.Lang.JavaSystem.GetProperty Method来获取操作系统架构,armv71i686等。

string osArchitecture = Java.Lang.JavaSystem.GetProperty("os.arch");