您的位置:首页 > 移动开发 > Android开发

Android的armeabi、armeabi-v7a和arm64-v8a

2017-08-13 11:04 267 查看
在Android项目中,我们可能经常会使用到动态库文件(.so)。

通常,我们会在jniLibs下,放动态库文件,首先会有一个或者几个文件夹。

比如:armeabi、armeabi-v7a、arm64-v8a。这些文件夹名称是固定的,

那么这些名称分别代表什么意思呢?

其实这些是ABI(应用程序二进制接口),它们定义了二进制文件(尤其是.so文件)如何运行在相应的系统平台上。

armeabi—>ARM V5的CPU架构

armeabi-v7a—>ARM V7的CPU架构(支持硬件浮点运算)

arm64-v8a—>64位的ARM处理器

其中,armeabi和armeabi-v7a都是对应32位处理器的手机,而arm64-v8a是对应64位处理器的手机。

arm64-v8a向下兼容armeabi-v7a和armeabi。armeabi-v7a向下兼容armeabi。

对于一个CPU是64ARM架构的手机,它运行APP时,进入jniLibs去读取动态库文件时,先看有没有arm64-v8a文件夹,如果没有,就去找armeabi-v7a文件夹,如果还没有,就去找armeabi文件夹,如果连这个文件夹也没有,就抛出异常。如果有arm64-v8a文件夹,那么就去该文件夹下找对应的动态库文件,如果没有找到,不会再往下(armeabi-v7a)找了,而是抛出异常。

放动态库文件时,两个考虑因素:

一、兼容性和性能

二、APK体积
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: