Android 设备上不同CPU的架构兼容性如下图所示:
但是需要指出的是,以兼容模式运行会存在一些问题:
一般情况下,当我们确认Native库运行时为“性能不敏感”且“无运行时异常”的时候,建议使用兼容模式提供Native库,能有效降低Apk包的体积。
lib库结构如下:
另外,我们可以在上述基础上,做Native库的动态加载。将部分占体积较大的so库,存放在CDN上,在使用的时候进行动态加载Native库。
这块的方案思路有点类似 TBS 的动态内核加载,在加载完成之前,使用原生的WebView。
目前应用市场支持根据当前设备的CPU架构进行同一应用不同CPU架构的分包下发。
那么我们在打包的时候,如何进行配置,可以参考以下:
splits {
abi {
enable true
reset()
include ‘arm64-v8a‘,‘armeabi-v7a‘
// exclude ‘armeabi‘
universalApk true
}
}
这里的参数我们都一一说明一下:
补充:构建时分包方案,不仅仅可以通过cpu架构进行区分,也可以根据分辨率等其他条件进行分包。
splits {
density {
enable true
exclude "ldpi", "tvdpi", "xxxhdpi"
compatibleScreens ‘small‘, ‘normal‘, ‘large‘, ‘xlarge‘
}
}
原文:https://www.cnblogs.com/renhui/p/14429624.html