CPU架构名称梳理

起因

今天要出个mono测试包,发现在64位机型上无法运行。

分析

mono版本不能导出64位的版本,导出的工程中,只留下了armeabi-v7a的库文件。按理说,这样应该没问题,因为64位的架构是向下兼容的。后来发现,apk解压出来,居然自动加入了几个arm64-v8a的库文件。这就导致系统认为可以直接使用arm64-v8a的库,然而其他我们导入的库只在armeabi-v7a中才有,也就是在arm64-v8a找不到需要的库,就挂了。

解决

自动加入的arm64-v8a库文件不需要,删了就行了。

学习

  1. arm、x86、mips是三种不同的cpu架构系。arm和mips是精简指令集(RISC)处理器架构,x86是复杂指令集(CISC)处理器架构。前者能耗更低,后者性能更高,因此前者常用于手机。
  2. armeabi-v7a是支持32位系统的指令集,而arm64-v8a则支持64位,并且向下兼容32位。
  3. x86是支持32位系统的指令集,而x86_64则支持64位,并且向下兼容32位。
  4. Android 设备的CPU类型通常称为”ABIs”(Application Binary Interface 应用二进制接口)。

参考

Android 设备支持的7种CPU框架(ABIs)
我的Android进阶之旅------>Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题
手机arm架构是不是也有很多类吗?他们的区别是什么?
分不清ARM和X86架构,别跟我说你懂CPU!

posted @ 2022-02-08 20:48  尼克多摩雄  阅读(588)  评论(0编辑  收藏  举报