是否有可能为ARMV6和VFP选择编译Android库?

时间:2013-08-14 07:56:44

标签: android android-ndk armv6

我目前使用-mfloat-abi=softfp -mfpu=vfp

我认为上述行需要ARMV6设备支持真正的VFP。

如果我使用-mfloat-abi=soft该怎么办?如果没有真正的VFP支持,它会在ARMV6设备上运行,但是比甚至不指定mfloat-abi更快吗?

(我不想用2 .so文件创建胖二进制文件)

1 个答案:

答案 0 :(得分:0)

gcc信息页面说:

  

指定soft会导致GCC生成包含库的输出   调用浮点运算。 softfp允许   使用硬件浮点指令生成代码,但是   仍然使用soft-float调用约定。 hard允许   生成浮点指令并使用FPU特定的   召集会议。

因此,对于具有FPU的目标,使用soft并不是您想要的。

目前大多数设备都有ARMv7-A或更好的CPU,因此,除非您针对特定设备,否则我不确定构建两个共享库有多大价值。

更新:实际上有很多设备都附带较旧的CPU。所有高端产品都是ARMv7-A,但低端设备的数量很多。

ARMv6 + VFP不是Play商店支持的配置 - 目标是使配置集尽可能小。您需要使用胖二进制文件,或者(因为它听起来像你正在做的)仔细配置您的构建并在Play商店中列出特定设备。