网站链接: element-ui dtcms
当前位置: 首页 > 技术博文  > 技术博文

查看android的abi

2021/6/26 10:27:44 人评论

目录什么是ABIABI架构查看模拟机的ABI信息查看真机的ABI信息ABI与CPU的联系参考什么是ABI ABI就是Application binary interface的意思,即应用程序二进制接口,定义了一套规则。允许编译好的二进制目标代码能在所有兼容该ABI的操作系统中无需改动就能运行…

目录

  • 什么是ABI
  • ABI架构
  • 查看模拟机的ABI信息
  • 查看真机的ABI信息
  • ABI与CPU的联系
  • 参考

什么是ABI

ABI就是Application binary interface的意思,即应用程序二进制接口,定义了一套规则。允许编译好的二进制目标代码能在所有兼容该ABI的操作系统中无需改动就能运行。不同的Android手机使用不同的CPU,因此需要提供对应的二进制接口交互规则(即对应的ABI文件)才能进行交互。目前,有部分CPU是能支持多种交互规则,但这是在牺牲性能的前提下所做的兼容。

ABI架构

  1. armeabiv-v7a: 第7代及以上的 ARM 处理器。2011年15月以后的生产的大部分Android设备都使用它.
  2. arm64-v8a: 第8代、64位ARM处理器,很少设备,三星 Galaxy S6是其中之一。
  3. armeabi: 第5代、第6代的ARM处理器,早期的手机用的比较多。
  4. x86: 平板、模拟器用得比较多。
  5. x86_64: 64位的平板。

查看模拟机的ABI信息

(kws-zy) cad-1@cad1-SYS-7048GR-TR:~$ adb devices
List of devices attached
emulator-5554   device

(kws-zy) cad-1@cad1-SYS-7048GR-TR:~$ adb shell
generic:/ $ cat /proc/cpuinfo
processor       : 0
model name      : ARMv7 Processor rev 1 (v7l)
BogoMIPS        : 125.00
Features        : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 evtstrm 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x2
CPU part        : 0xc0f
CPU revision    : 1
Hardware        : Dummy Virtual Machine
Revision        : 0000
Serial          : 0000000000000000
generic:/ $ 

generic:/ $ getprop ro.product.cpu.abi                                                                                                                          
armeabi-v7a
generic:/ $ 

查看真机的ABI信息

(kws-zy) cad-1@cad1-SYS-7048GR-TR:~$ adb devices
List of devices attached
IFU8ROOR99999999        device

(kws-zy) cad-1@cad1-SYS-7048GR-TR:~$ adb shell getprop ro.product.cpu.abi 
arm64-v8a

(kws-zy) cad-1@cad1-SYS-7048GR-TR:~$ adb shell  cat /proc/cpuinfo
Processor       : AArch64 Processor rev 2 (aarch64)
processor       : 0
BogoMIPS        : 26.00
Features        : fp asimd aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: AArch64
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 2
Hardware        : MT6750

ABI与CPU的联系

在Android手机上安装一个应用时,只有手机CPU架构支持的ABI架构对应的.so文件会被安装。如果支持多个ABI架构,会按照优先级进行安装。

CPU架构支持的ABI架构对应的.so文件安装优先级
ARMv5armeabi
ARMv7armeabi,armeabi-v7a
ARMv8armeabi,armeabi-v7a,arm64-v8a
MIPSmips
MIPS64mips,mips64
x86x86,armeabi,armeabi-v7a
x86_64armeabi,x86,x86_64

CPU大都是向前兼容的,但是会按优先级来选择ABI。如x86架构的CPU会优先选择x86目录下的.so包,当不存在时,才会选择armeabi-v7a目录下的.so包,如果仍然不存在,最后才会选择armeabi目录下的.so文件。
注:x86设备运行armeabi下的so库时会损失性能。

参考

  1. https://blog.csdn.net/weixin_40763897/article/details/103498675
  2. https://blog.csdn.net/qq_20613731/article/details/114677217
  3. https://blog.csdn.net/weixin_40763897/article/details/103498675

相关资讯

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?