gradle 文件中对abi的配置
Android手机支持的abi:
mips, mips64, X86, X86–64, arm64-v8a, armeabi, armeabi-v7a
各个abi的含义
android abi
通过配置支持的abi,能够让apk文件减到合适的体积,减少应用占用手机的空间。
一般来说,有两种方式来配置abi,相当于两种思路,一个是通过设置ndk的abiFilters字段,使apk能够兼容多种abi,但是这样会使得apk体积增大,所以,这种方式只适合配置主流的abi,使apk能在市场上的大部分手机成功安装使用。
配置方式如下:
android {
... // 其它配置
defaultConfig {
... // 默认配置
ndk {
//选择要添加的对应cpu类型的.so库。
abiFilters 'armeabi', 'armeabi-v7a'
// 还可以添加
// 'arm64-v8a', 64 bit ARM architecture,it can use v7 version
// unless you are too much concerned about performance
// mips,mips64, There are no devices with MIPS
// x86_64, No android devices and anyway it can use X86 version
// armeabi, very old architecture. Unsupported after Android 4.4
// 'x86', Intel based devices
}
}
... // 其它配置
}
另一种方式是,splits的abi属性下面,定义好支持的abi,然后打包的时候,会根据不同的架构,打不同的包,每个包支持一种架构,这样能让不同架构的设备上安装最合适的apk,但是因为一个apk仅支持一种架构,所以互不兼容。
配置如下:
android {
... // 其它配置
splits {
abi {
reset()
enable true // 设为true,才能在打包时根据架构生成不同的apk文件
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86" // 设置所有要支持的abi类型
}
}
}
参考链接:
https://android.jlelse.eu/controlling-apk-size-when-using-native-libraries-45c6c0e5b70a
网友评论