我们在开发应用的时候,尤其是加密算法,音视频编解码等时,会需要引入so库,文档上就会让我们创建arm-v64,armeabi-v7a,armeabi等文件夹,如下:
目前Android系统主持7种不同的CPU架构:ARMv5,ARMv7(从2010年起),x86(从2011年起),MIPs(从2012年起),ARMv8,MIPs64和x86-64(从2014年起),每一种都关联着一个相应的ABI。应用程序二进制接口(Application Binary Interface)定义了二进制文件(尤其是.so文件)如何运行在相应的系统平台上,从使用的指令集、内存对齐到可用的系统函数库。ABI和CPU的关系
- 很多设备都支持多于一种的ABI
- 当一个应用安装到设备上,只有该设备支持的CPU架构对应的.so文件会被安装
你应该尽可能的提供专为每个ABI优化过的.so文件,这种情况下运行时就少了一个模拟层(例如x86设备上模拟arm的模拟层),从而得到更好的性能。也就是我们需要创建上面图片上所有的文件夹,每个文件夹都对应一种相应的