Android sutdio / eclipse添加.so库

 Android studio 添加.so库有2中个方式。

    1、在你的项目的src/main中创建jniLibs文件夹 ,在jniLib文件加下创建你所需要的架构例如armeabi,把.so复制进去即可。

        Android sutdio / eclipse添加.so库_第1张图片

        之所以可以将.so直接放到新建的jniLibs文件夹下,而不需要配置gradle文件是因为系统默认就会到这个目录下找。

    2、如果你想把so包放在一个你喜欢的地方,比如app/中新建libs文件夹libs文件加下创建你所需要的架构例如armeabi,把.so复制进去

            Android sutdio / eclipse添加.so库_第2张图片

        这个时候需要在app/build.gradle中添加以下脚本即可(以下脚本意思是会把libs文件夹当成jniLibs文件夹,可以直接用so库了)

            Android sutdio / eclipse添加.so库_第3张图片

eclipse添加.so库

        1、在项目的libs文件加下创建你所需要的架构例如armeabi,把.so复制进去即可。

            Android sutdio / eclipse添加.so库_第4张图片

   

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'

armeabi 
第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构架,其出发点是高性能,主要用于路由器、猫等



你可能感兴趣的:(Android sutdio / eclipse添加.so库)