查看android的abi

阅读: 评论:0

查看android的abi

查看android的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库时会损失性能。

参考

本文发布于:2024-01-28 03:41:49,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063845154525.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:ABI API
标签:android   abi
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23