概述
在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体积
最后
以上就是柔弱短靴为你收集整理的Android的armeabi、armeabi-v7a和arm64-v8a的全部内容,希望文章能够帮你解决Android的armeabi、armeabi-v7a和arm64-v8a所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复