1. 程式人生 > >Android Studio指定引用jnilibs 特定CPU架構的so庫文件

Android Studio指定引用jnilibs 特定CPU架構的so庫文件

文件 jni adl 性能 沒有 1.2 x86_64 apk andro

稍微大一些的項目都會用到第三方庫,所以不可避免的會有針對不同手機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庫文件