ABI:Application Binary Interface
android project的libs文件夹中包含了armeabi,armeabi-v7a,x86等文件夹。
我们的c代码编译成的.so文件都会放到这些文件夹当中。
armeabi,armeabi-v7a,x86等都表示cpu的类型,一般的手机或者平板都是arm的cpu(同时也存在mips的cpu),不同的cup的特性不一样,
armeabi针对普通的或者旧的arm v5 cpu,armeabi-v7a针对有浮点运算或者高级扩展功能的arm v7 cpu。
当编译时出现一些链接动态库的undefine错误,或你的apk运行时出现装载.so动态库错误时,注意下这个cpu类型的配置是否错误。
armeabi,armeabi-v7a,x86都是编译NDK库时,可以使用的三种支持应用的二进制接口(ABI)
armeabi-默认选项,将创建以基于ARM v5TE的设备为目标的库。具有这种目标的浮点运算使用软件浮点运算。使用此ABI创建的二进制代码
将可以在所有的ARM设备上运行。
armeabi-v7a-创建支持基于ARM*v7的设备的库,并将使用硬件FPU指令。
x86-生成的二进制代码可支持包含基于硬件的浮点运算的IA-32指令集。