Android studio 添加.so库有2中个方式。
1、在你的项目的src/main中创建jniLibs文件夹 ,在jniLib文件加下创建你所需要的架构例如armeabi,把.so复制进去即可。
之所以可以将.so直接放到新建的jniLibs文件夹下,而不需要配置gradle文件是因为系统默认就会到这个目录下找。
2、如果你想把so包放在一个你喜欢的地方,比如在app/中新建libs文件夹,在libs文件加下创建你所需要的架构例如armeabi,把.so复制进去
这个时候需要在app/build.gradle中添加以下脚本即可(以下脚本意思是会把libs文件夹当成jniLibs文件夹,可以直接用so库了)
eclipse添加.so库
1、在项目的libs文件加下创建你所需要的架构例如armeabi,把.so复制进去即可。
Android手机cpu的架构
不同CPU架构的Android手机加载时会在libs下找自己对应的目录,从对应的目录下寻找需要的.so文件;如果没有对应的目录,就会去armeabi下去寻找,如果已经有对应的目录,但是如果没有找到对应的.so文件,也不会去armeabi下去寻找了。 所以,这里需要注意工程配置哪几个so文件目录,需要加载对应的so文件,不然会报错。
如何适配各个目录,例如有一些第三方的类库只提供了armeabi下的.so文件,而工程配置不止armeabi一个目录,这就需要将armeabi下的.so文件复制到其他对应的目录下。果第三方提供了不同平台的.so文件,则复制不同平台的.so文件到项目中对应的文件夹下即可。
so文件也会影响编译出的apk大小(将apk解压出来,lib目录下就为so文件目录),所以只配置
armeabi和armeabi-v7a两个目录,既能适配各CPU架构的手机,也能精简apk大小。
针对不同手机.so库文件:
'armeabi' ,'armeabi-v7a', 'arm64-v8a''x86','x86_64','mips', 'mips64'
第5代 ARM v5TE,使用软件浮点运算,兼容所有ARM设备,通用性强,速度慢--只支持这个就够了
armeabi-v7a
第7代 ARM v7,使用硬件浮点运算,具有高级扩展功能--只支持这个就够了
arm64-v8a
第8代,64位,包含AArch32、AArch64两个执行状态对应32、64bit
x86
intel 32位,一般用于平板
x86_64
intel 64位,一般用于平板 ,向下兼容x86
mips 、mips64
是一种高性能的嵌入式CPU构架,其出发点是高性能,主要用于路由器、猫等