我想了解更多安卓手机上使用的CPU。原因是我们正在构建C库,它具有我们可以设置的特定CPU/数学处理器体系结构标志。
到目前为止,我们发现所有Android设备的CPU都是ARM设计的,或者是ARMV6(旧设备、低端设备、华为、中兴、小型SE)或者ARMV7(蜂窝式平板电脑和所有更昂贵的设备,几乎都具有WVGA和更高的分辨率),我已经检查了大约20个设备,并且都有这种类型的处理器。体育课。对吗?还有其他的吗?
现在,当涉及到多媒体和数学运算时,我认为有两个单元很重要——浮点运算的vfp和simd-neon。在测试了上述设备组之后,我发现几乎所有设备都支持vfp,而neon不支持。对此有何评论?
我不知道armv6和armv7的区别到底是什么(除了一般的速度)。现在我们正在建立一个多媒体C库,它有两个标志用于构建。我的问题是,如何瞄准一侧最大数量的设备,以及如何允许更好设备的用户使用其硬件。我的建议是准备3个不同的版本:ARMV6/VFP、ARMV7/VFP和ARMV7/VFP/Neon。其他建议?
我认为ARMV6/VFP应该在所有配置上运行,除了缺少VFP的设备(例如旧的HTC WildFire),但这些配置将保持不受支持。
这是个好方法吗?欢迎发表任何评论。
当做,
斯坦
最佳答案
没错。目前有两种类型-ARMV6和ARMV7。很可能在最近的将来会有额外的x86目标。最新的NDK已经支持它的构建。
vfp在armv7上是强制的,但在armv6上不是。霓虹灯是可选的,并非所有设备都支持它。最明显的例子是Nvidia Tegra 2。它部署在大多数高端平板电脑和手机上,但不支持霓虹灯。Nvidia Tegra 3支持霓虹灯。
我认为您应该坚持使用带浮点仿真的ARMV6、ARMV7+VFP、ARMV7+Neon。
准确地说,所有ARMV6设备都不支持VFP。所以不要在那里使用它。默认情况下,ndk构建armeabi目标,该目标用于armv6设备,不使用vfp。armeabi-v7a为armv7构建并使用vfp。