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文件;
posted on 2017-09-04 12:59  janehlp  阅读(6451)  评论(0编辑  收藏  举报