4. armeabi,armeabi-v7a,arm64-v8a

最近,我们公司的APP,要做包体积的优化,其中一个方面就是so包的优化。
对于so包的知识点,不是很清楚,特地来整理下。

ndk {
    // 设置支持的SO库架构
    abiFilters 'armeabi' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
}
1. Android支持的CPU处理器架构
  • mips
  • mips64
  • x86
  • x86_64
  • armeabi
  • armeabi-v7a
  • arm64-v8a
2. 什么是ABI?
  • ABI: Application Binary Interface 应用二进制接口
3. 什么是abiFilters?
  • 一种指定生成特定模式ABI包的过滤器
4. 大厂是如何适配不同CPU架构的?
  • 微信(arm64-v8a)
  • 淘宝(armeabi-v7a)
  • 支付宝,手机QQ(armeabi)
5. 主ABI和辅ABI适配流程
6. 我们该如何适配呢?
  • 方案一: 只适配armeabi

    • 优点: 基本上适配了所有的CPU架构
    • 缺点: 性能低,相当于在绝大多数手机上都是需要辅助API或者动态转码来完成
  • 方案二: 只适配armeabi-v7a

    • 同理方案一,只是过滤了一些老旧的设备,在性能和兼容二者中比较平衡。
  • 方案三: 只适配arm64-v8a

    • 优点: 性能最佳
    • 缺点: 只能运行在arm64-v8a设备上,要放弃部分老旧设备用户。

这三种方案都是可以的,现在的大厂APP适配中,这三种都有,大部分是前两种。

具体选择哪一种,就看我们的考量了,要性能就是arm64-v8a,要兼容就是armeabi,要性能和兼容的平衡就是armeabi-v7a。

2021-06-01 晚安
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容