关于split分包和abiFilters过滤的打包问题

1、splits参数说明:

enable: 是否启用ABI拆分机制
reset():重置ABI列表为只空字符串,一半和include、exclude一起使用,如果要用必须在include和exclude前面
include:指明要包含哪些ABI,目前使用最多的伪64位处理器的arm64-v8a,其次才是armeabi-v7a
exclude:默认包含下所有ABI,可以移除一些ABI
universalApk:是否打包一个通用版本,包含所有的ABI,默认值为 false

举例:设置代码如下

splits {
    abi {
        enable true
        reset()
        include 'arm64-v8a','armeabi-v7a'
//      exclude 'armeabi'
        universalApk true
    }
}

 那么这种情况下打包会生成3个apk,我们把它们解压缩一探究竟,

第一个:app-arm64-v8a-release.apk,里面只会包含arm64-v8a文件夹中的so文件

第二个:app-armeabi-v7a-release.apk,里面只会包含armeabi-v7a文件夹中的so文件

第三个:app-universal-release.apk,里面会包含arm64-v8a和armeabi-v7a文件夹中的so文件

根据不同平台选择不同的apk

2、abiFilters过滤

先设置splits,不设置abiFilters的情况下,代码如下:

splits {
    abi {
        enable true
        reset()
        include 'arm64-v8a','armeabi-v7a','armeabi'
//      exclude 'armeabi'
        universalApk true
    }
}

 那么这种情况下打包会生成4个apk

第一个:app-arm64-v8a-release.apk,里面只会包含arm64-v8a文件夹中的so文件

第二个:app-armeabi-v7a-release.apk,里面只会包含armeabi-v7a文件夹中的so文件

第三个:app-armeabi-release.apk,里面只会包含armeabi文件夹中的so文件

第四个:app-universal-release.apk,里面会包含arm64-v8a、armeabi-v7a、armeabi文件夹中的so文件

再设置abiFilters过滤:

ndk {
    abiFilters 'arm64-v8a',"armeabi-v7a"
}

 

那么这种情况下仍然会打包会生成4个apk

第一个:app-arm64-v8a-release.apk,里面只会包含arm64-v8a文件夹中的so文件

第二个:app-armeabi-v7a-release.apk,里面只会包含armeabi-v7a文件夹中的so文件

第三个:app-armeabi-release.apk,里面只会包含armeabi文件夹中的so文件

第四个:app-universal-release.apk,里面会包含arm64-v8a和armeabi-v7a文件夹中的so文件

 

结论:abiFilters过滤就是在splits的基础之上,再选择打入universal中所包含的几种处理器架构的文件夹的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值