Android Studio指定引用jnilibs 特定CPU架构的so库文件

Posted 勇者工作室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Studio指定引用jnilibs 特定CPU架构的so库文件相关的知识,希望对你有一定的参考价值。

稍微大一些的项目都会用到第三方库,所以不可避免的会有针对不同手机cpu架构的.so库文件

‘x86‘, ‘x86_64‘, ‘mips‘, ‘mips64‘  ‘armeabi‘ ,‘armeabi-v7a‘,  ‘arm64-v8a‘

但是不是所有的第三方库都会适配所有的cpu架构,本人亲测采用一种降低性能却减少库文件的方式

就是只用armeabi-v7a库;有armeabi-v7a就把其他的都删掉,没有armeabi-v7a,把armeabi的文件移到armeabi-v7a中,把其他的都删除

下面就告诉大家怎么适配特定的cpu架构库 在主module .gradle加 ndk{},依赖的module也要添加

 

android{
    ...
    defaultConfig {
    applicationId "XXXXXXX"
    minSdkVersion 11
    targetSdkVersion 21
    versionCode 126
    versionName "1.2.6"
  
    ndk {
        //选择要添加的对应cpu类型的.so库。   // 还可以添加 ‘x86‘, ‘x86_64‘, ‘mips‘, ‘mips64‘  
        abiFilters ‘armeabi‘ //‘armeabi-v7a‘,  ‘arm64-v8a‘
        moduleName "app"
    }
    
    }
} 

abiFilters 就是过滤.so文件的方法;

如上配置就能让你的项目只打包armeabi的库文件;其他依赖module同样配置,最终效果就是你的app只适配armeabi CPU的机型;
打包的APK文件 libs下只有 armeabi的so文件;

以上是关于Android Studio指定引用jnilibs 特定CPU架构的so库文件的主要内容,如果未能解决你的问题,请参考以下文章

android studio的lib和jniLibs

C++学习(四一六)android studio引用动态库

在Android Studio中调用so中的方法

android studio怎么引入.so文件

Android Studio2.2.3 通过JNI引用ffmpeg库小结

android studio so文件放在哪